我有一个在我的context.xml中注册了连接的tomcat。这将连接到作为生产数据库复制的数据库。此数据库每3小时恢复一次,然后tomcat中的连接管理器将丢失此连接。这意味着我每3个小时就必须重新启动应用程序以检索新的数据库连接。 这是我得到的例外
Caused by: java.sql.SQLException: Already closed.
at org.apache.tomcat.dbcp.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
我有一种方法可以在我的tomcat中配置其他连接类型,这样每次恢复数据库都不会丢失我的连接吗?
context.xml中的db connection config
<Resource name="jdbc/db"
auth=""
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username=""
password=""
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://server:1433;DatabaseName=db"/>
web.xml中的jndi配置
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/db</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
spring config中的jpa连接管理器
<jee:jndi-lookup id="datasource"
jndi-name="jdbc/db"
expected-type="javax.sql.DataSource"/>
<bean id="emf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="datasource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
</property>
<property name="persistenceUnitName" value="firaPU"/>
</bean>