gpt4 book ai didi

Spring 与 Derby 断开连接

转载 作者:行者123 更新时间:2023-11-28 22:00:46 25 4
gpt4 key购买 nike

我在 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 可以解决问题,但作为纯粹主义者,我想在取消部署 web 应用程序时正确清理一切。

Embedded 驱动程序似乎没有“close”方法可以放入“destroy-method”下的 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 JNDI data source pool与 Spring 。完成后,Spring 的 JDBC 模板会将连接返回到池中。

关于Spring 与 Derby 断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com