2012-08-27 106 views
1

我有一个简单的web应用程序,使用tomcat 7部署的Spring 3和Hibernate 3开发。我的应用程序工作正常,直到数据库服务器关闭。数据库服务器再次打开后,我预计该应用程序可以工作,但我需要重新启动tomcat才能使应用程序再次工作。如果没有,我会得到以下例外应用程序需要在数据库重新启动时重新部署

org.springframework.web.util.NestedServletException:请求处理失败;嵌套>异常是org.springframework.jdbc.UncategorizedSQLException:Hibernate操作:可以?>不执行查询;对于SQL

使用的数据库性能的快照未分类的SQLException低于

<bean id="OradataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy- method="close"> 
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/> 
    <property name="url" value="xyz"/> 
    <property name="username" value="xyz"/> 
    <property name="password" value="xyz"/>  
</bean> 
<bean id="OraDbHibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="properties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 
      <prop key="log4j.logger.net.sf.hibernate">trace</prop> 
     </props> 
    </property> 
</bean> 

任何帮助理解。谢谢

回答

1

您需要再添加2个属性。

<property name="validationQuery" value="SELECT 1" /> 
<property name="testOnBorrow" value="true" /> 
  1. 验证查询 - 他们返回给调用方之前验证从池中的连接。
  2. testOnBorrow - 如果设置为true,连接将在从池中借用之前进行验证。如果连接无效,它将从池中删除,并且将借用另一个连接。
相关问题