程序如果长时间没有操作 Destroying connection

图片说明

14:46:25,137 WARN org.jboss.jca.core.connectionmanager.pool.strategy.OnePool IJ000612: Destroying connection that could not be successfully matched: org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@744c99f4[state=DESTROYED managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@5d83082d connection handles=0 lastUse=1429770682906 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@2c4aa07c pool internal context=SemaphoreArrayListManagedConnectionPool@2007b607[pool=HTMotMainDS] xaResource=LocalXAResourceImpl@510f9dd2[connectionListener=744c99f4 connectionManager=797cbd21 warned=false currentXid=null] txSync=null]
14:46:30,143 WARN org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory Destroying connection that is not valid, due to the following exception: oracle.jdbc.driver.T4CConnection@4ff84c65: java.sql.SQLException: pingDatabase failed status=-2

java.sql.SQLException: pingDatabase failed status=-2

长时间不操作可能会发生:
1:服务端建立的连接被判定为长时间空闲(太久没有心跳或数据收发动作);
2:连接异常,或者已经僵死,没有优雅关闭。

处于系统的资源有效利用。会对长时间空闲连接和僵死连接进行销毁释放。

如果你不想这样:
1:在你的客户端增加连接诊断(比如心跳)能力,如果死了。就销毁,然后重建连接;
2:在你的服务端调整maxIdleTimeout等超时或空闲市场的参数。

用keep alive保持连接