Dev Zone
偏执狂才能生存,人生/事业的路上需要再坚持一下
但是又怎么说得清坚持的结果,道得尽坚持的含义
现状:在我们的项目中使用了Ofbiz2.1,TransactionFactory配置为JotmFactory,数据库是Oracle9i,lifeTime设置为120000(2分钟)在大并发测试的时候发现经常Closed Connection的异常。
 
原因:Oracle数据库会检查physical connection的idle时间和使用次数并关闭长时间idle的physical connection,如果应用对从连接池中
获取的connection不进行检查,或者连接池仔返回可用连接之前不进行检查,在使用过程中就会Closed Connection的异常。大多数数据库都会检查physical connection的idle时间。
 
解决办法:调用StandardPoolDataSource或者StandardXAPoolDataSource的setCheckLevelObject(int)方法设置连接检查级别,参数取值如下:
  1. 0:不检查
  2. 1:对unlocked池中获取的连接进行Closed检查
  3. 2:对unlocked池中获取的连接进行sql测试,需要设置setJdbcTestStmt(Test SQL)
  4. 3:对所有unlocked池中的连接进行Closed检查
  5. 4:对所有unloked池中的连接进行测试,需要设置setJdbcTestStmt(Test SQL)
 
 
posted on 2005-05-17 22:04 dev 阅读(1133) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: