Tomcat池连接到复制数据库

时间:2014-07-08 06:35:39

标签: java sql-server database tomcat jdbc

我有一个在我的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>

0 个答案:

没有答案