DB2大型机:queryTimeout在SqlTransactionRollbackException上不工作异常:SQLCODE=-911,SQLSTATE=40001

DB2大型机:queryTimeout在SqlTransactionRollbackException上不工作异常:SQLCODE=-911,SQLSTATE=40001,db2,mainframe,callable-statement,query-timeout,Db2,Mainframe,Callable Statement,Query Timeout,我们在DB2大型机中看到了以下异常。我们确实设置了CallableStatement.querytimeout,但在这种情况下它从来都不起作用。有什么建议吗?谢谢 DB2SQL错误:SQLCODE=-911,SQLSTATE=40001, SQLERRMC=00C9008E;00000801;NULLID.SYSSTAT.5359534C564C3031, 驱动器=3.61.109;嵌套异常是 com.ibm.db2.jcc.am.SqlTransactionRollbackException:

我们在DB2大型机中看到了以下异常。我们确实设置了CallableStatement.querytimeout,但在这种情况下它从来都不起作用。有什么建议吗?谢谢

DB2SQL错误:SQLCODE=-911,SQLSTATE=40001, SQLERRMC=00C9008E;00000801;NULLID.SYSSTAT.5359534C564C3031, 驱动器=3.61.109;嵌套异常是 com.ibm.db2.jcc.am.SqlTransactionRollbackException:db2 SQL错误: SQLCODE=-911,SQLSTATE=40001, SQLERRMC=00C9008E;00000801;NULLID.SYSSTAT.5359534C564C3031, 驾驶员=3.61.109

以下异常情况也是如此。查询超时不起作用

嵌套异常为com.ibm.db2.jcc.am.SqlException:未成功 由不可用资源导致的执行。原因00E30083,类型 资源00000802和资源名称BINDLOCK


等待锁(BINDLOCK01到20)解锁是一个超时

检查您尝试加载的表是否未被执行更新/插入/删除查询的另一个长时间运行的作业锁定

建议尽可能增加频繁的提交操作

提供了一些优化锁定时间的进一步策略:

建议:获取(使用)和释放(释放)提供良好的 使用页或行锁定时的并发性和最大化 表演

建议尽可能短的时间内持有独占锁 在主机中将INSERT、UPDATE和DELETE语句分组 语言程序,后跟提交。如果这些SQL语句 在宿主语言代码中穿插着锁,锁在 执行主机语言代码

作为最后的手段,如果您不想优化查询,并且假设它不是死锁,您可以:

在DB2for*NIX/Windows上,将“LOCKTIMEOUT”参数更改为“-1”。(不确定它对z/OS是什么,或潜在的影响。)


欢迎使用Stack Overflow。

谢谢您的回复,jabolotai。不客气,希望这有助于解决您的问题。如果答案正确,别忘了将其标记为正确答案。谢谢你的回复,jabolotai。从Java应用程序开发人员的角度来看,我想我的问题是,在执行查询时是否会发生这些异常?如果是,为什么不考虑我们在Java应用程序中设置的querytimeout设置。这里的查询是使用存储过程调用读取数据。是的,在尝试获取资源时。getQueryTimeout()是客户端(JDBC驱动程序),locktimeout是服务器端(需要足够的权限来设置)。有许多超时选项,但queryTimeout至少应该覆盖客户端限制。检查服务器的设置。查看更多信息,如果卡住了,请检查这不是像驱动程序服务器版本不匹配这样的奇怪现象。非常感谢您的快速响应。我没有设置锁定超时的权限。但我想我仍然感到困惑,如果在执行查询时抛出的异常会发生,并且querytimeout设置为大约10秒,那么为什么查询没有超时并运行一些X(X>10)秒。