我创建连接Connection con = ds.getConnection();
(其中,ds是数据源)在开放的阅读器的和在靠近其关闭()的,如果连接在读者关闭关闭关闭错误()读者。JSR 352:连接是在分配步骤
但是当我运行多个分区作业,在作业过程中,我得到关闭连接错误
Caused by: java.sql.SQLException: [jcc][t4][10335][10366][3.58.82] Invalid operation: Connection is closed. ERRORCODE=-4470, SQLSTATE=08003 DSRA0010E: SQL State = 08003, Error Code = -4,470
我认为当隔壁一个完成这种情况发生。
所以我的问题是,为什么会发生这种情况?如何处理连接?或者Java是否关注关闭连接?
我使用Java批次在WebSphere自由 UPDATE:
}
完整的错误消息 [ERROR ] J2CA0024E: Method rollback, within transaction branch ID {XidImpl: formatId(57415344), gtrid_length(36), bqual_length(40), data(0000015645eff4470000000915937ff85f46c3ed056b19010aa5147e1183f8d3ae81c04c0000015645eff4470000000915937ff85f46c3ed056b19010aa5147e1183f8d3ae81c04c00000001)} of resource pool connectionManager[Pool], caught com.ibm.ws.exception.WsException: DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: [jcc][t4][10335][10366][3.58.82] Invalid operation: Connection is closed. ERRORCODE=-4470, SQLSTATE=08003. with SQL State : 08003 SQL Code : -4470
您可以发布您的说明连接和ResultSet中使用的一些示例代码?你不是跨线程共享吗?你能也从server.xml中显示您的数据源/ JDBC配置和还提到,无论您是使用[这个问题]提到的“非共享连接”的方式(http://stackoverflow.com/questions/36935252/in-a-自由分批块步得到-结果集-IS-闭合时滚动个#)。 –
是的,我正在使用Unshared Connections方法。只有当我在close()中关闭连接时,问题才会发生。如果我删除它,它工作正常。 –
您正在关闭ResultSet之前的Connection。您应该先关闭ResultSet。 –