现在的位置: 首页 > 综合 > 正文

在WebSphere环境下如果没有正确处理数据库连接State:STATE_TRAN_WRAPPER_INUSE

2013年09月30日 ⁄ 综合 ⁄ 共 596字 ⁄ 字号 评论关闭

在WebSphere环境下如果没有正确处理数据库连接,SystemOut.log文件中会打出以下错误:
[06-5-9 17:02:07:458 GMT+08:00] 1ae9f948 SharedPool I J2CA0086W: 在本地事务包含边界中使用的资源 jdbc/unicall 的可分享连接 MCWrapper id 1df4f943 Managed connection com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl@17feb94d State:STATE_TRAN_WRAPPER_INUSE
在出现大量这种信息后,系统可能会宕机.
详细可参见IBM文档说明
WebSphere使用了本地事务管理的规则,在Websphere环境下一般要按照如下的规则编写数据库处理逻辑

  • get connection
  • use connection
  • close connection
  • commit transaction
    如果使用了以下方式则有可能会导致死锁
    get con1;
    use con1;
    get con2; // a new connection is created.
    // we can't reuse con1 because
    // it hasn't been closed.
    use con2;
    close con1;
    close con2;
    解决办法有两种:
  • 增加连接池大小
  • 严格按照LocalTransaction的规范编写程序
  • 抱歉!评论已关闭.