2010-07-05 66 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

回答