2010-07-05 59 views
2

我在Tomcat上运行的Web应用程序内部使用Apache Derby和Spring JdbcTemplate。与Derby断开连接的弹簧

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

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

重启动Tomcat的解决了这个问题,但作为一个纯粹的,我想干净的东西当Web应用程序被取消部署时正常启动。

嵌入式驱动程序似乎没有'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> 
+0

你知道吗,我在码头遇到同样的问题。 – 2011-04-10 19:01:07

+0

我改变了它,以便Tomcat执行连接池。 – 2011-04-14 14:19:39

回答