由于Oracle设置了session失效时间,如果连接空闲一段时间,就自动断开了,需要重新启动tomcat,现在我使用的是proxool连接池 + hibernate请教各位有什么解决方案。

解决方案 »

  1.   

    连接池都是能配置ping方案或是自动保持连接的特性吧!
    proxool我没用过。     <!--在使用之前测试-->  
            <test-before-use>true</test-before-use>  
            <!--用于保持连接的测试语句 -->  
            <house-keeping-test-sql>select 1 from xxx</house-keeping-test-sql>  
      

  2.   

    <Resource name="jdbc/mydb"    type="javax.sql.DataSource"  password="mypwd"   driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"  maxIdle="2"  maxWait="5000"  validationQuery="select 1"  username="sa"   url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"  maxActive="4"/>    关键注意这里validationQuery="select 1"
      

  3.   

    配置
    <property name="houseKeepingTestSql" value="${db.houseKeepingTestSql}"/>
    houseKeepingTestSql=select 1
    这样配置就行了
      

  4.   

    两种方式:1,使用之前检查连接的有效性;2,定时执行一个SQL语句正如楼上说的,那个连接池应该支持的