【问题标题】:Spring disconnecting from Derby弹簧与 Derby 断开连接
【发布时间】:2011-03-12 00:05:24
【问题描述】:

我在 Tomcat 上运行的 Web 应用程序中使用 Apache Derby 和 Spring JdbcTemplate。

Spring 正在管理数据源。我注意到,如果我更新 .war 文件并且 Tomcat 取消部署/重新部署应用程序,我会收到此错误:

java.sql.SQLException: Another instance of Derby may have already booted the database /tmp/manager_db/manager.

重新启动 Tomcat 可以解决问题,但作为一个纯粹主义者,我想在取消部署 webapp 时正确清理。

嵌入式驱动程序似乎没有“关闭”方法来放入“销毁方法”下的 bean 声明中。我知道关闭通常是使用“关闭”连接 URL“jdbc:derby:;shutdown=true”来实现的。

有什么建议吗?

这是我的数据源在 Spring 配置文件中的声明(数据库不会在 /tmp/ 下,现在就在那里)。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver"/>
    <property name="url" value="jdbc:derby:/tmp/manager_db/manager;create=true"/>
    <property name="username" value=""/>
    <property name="password" value=""/>
</bean>

【问题讨论】:

  • 你知道了吗,我在码头下也遇到了同样的问题。
  • 我改变了它,以便 Tomcat 进行连接池。

标签: spring tomcat derby embedded-database


【解决方案1】:

我认为更好的答案是将 Tomcat JNDI data source pool 与 Spring 一起使用。 Spring 的 JDBC 模板将在完成后将连接返回到池中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2011-05-19
    • 2021-11-30
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多