我正在将 DB2 与 JDBC 结合使用,当我在连接闲置几分钟后首次尝试运行时,下面的代码会抛出 SQLException。从第二次开始,它将完全按照它必须的方式工作。
ResultSet.next()
关于什么会导致异常有什么想法吗?
异常跟踪:
FFDC Exception:com.ibm.db2.jcc.am.lo SourceId:com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next
ProbeId:2624 Reporter:
com.ibm.ws.rsadapter.jdbc.WSJccResultSet@b080b08
com.ibm.db2.jcc.am.lo: The current transaction was rolled back because of error "-30108".. SQLCODE=-1476, SQLSTATE=40506, DRIVER=3.57.110
at com.ibm.db2.jcc.am.bd.a(bd.java:663)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.am.b(am.java:3760)
at com.ibm.db2.jcc.t4.eb.h(eb.java:278)
at com.ibm.db2.jcc.t4.eb.a(eb.java:239)
at com.ibm.db2.jcc.t4.eb.c(eb.java:31)
at com.ibm.db2.jcc.t4.u.a(u.java:32)
at com.ibm.db2.jcc.t4.j.Zb(j.java:259)
at com.ibm.db2.jcc.am.am.X(am.java:3554)
at com.ibm.db2.jcc.t4.d.f(d.java:1881)
at com.ibm.db2.jcc.am.gc.a(gc.java:200)
at com.ibm.db2.jcc.t4.d.a(d.java:109)
at com.ibm.db2.jcc.am.am.c(am.java:366)
at com.ibm.db2.jcc.am.am.next(am.java:293)
at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next(WSJdbcResultSet.java:3120)
最佳答案
“外部”SQL Code, -1476
,表示事务由于“内部”SQL Code, -30108
而被回滚,其中表示:
A connection failed but has been re-established. Special register settings might have been replayed. Host name or IP address of the new connection: host-name. Service name or port number of the new connection: service-name. Reason code: reason-code.
我猜你的连接超时了,然后就掉线了。
关于java - 连接空闲后出现 SQLException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14738682/