java - 连接空闲后出现 SQLException

标签 java jdbc db2 sqlexception

我正在将 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/

相关文章:

java - Dagger + retrofit 。在运行时添加身份验证 header

database - 执行列排序的 Cassandra 数据模型?

java - Hibernate 忽略自动提交错误设置。创建本地连接

java - 使用java程序执行Mysql查询包含汉字

java - R-项目 : xlsx package installation failure (due to java issues)

java - Android 无法启动 Activity - java.lang.RuntimeException : Unable to start activity ComponentInfo

oracle - IBM 的 SYSIBM.SYSTABLES 在 Oracle 中的等效项是什么?

ASP.NET -- IIS7 -- IBM DB2 问题

java - 插入日期和时间

sql - 限制 SQL 中的最大值