【问题标题】:DB2 Mainframe: queryTimeout does not work on SqlTransactionRollbackException: SQLCODE=-911, SQLSTATE=40001DB2 大型机:queryTimeout 对 SqlTransactionRollbackException 不起作用:SQLCODE=-911,SQLSTATE=40001
【发布时间】:2015-06-26 05:51:18
【问题描述】:

我们从 DB2 Mainframe 中看到了以下异常。我们确实设置了 CallableStatement.querytimeout,但在这种情况下它永远不会真正起作用。有什么建议?谢谢。

DB2 SQL 错误: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: UNSUCCESSFUL 由不可用的资源引起的执行。原因 00E30083,类型 资源 00000802 和资源名称绑定

【问题讨论】:

    标签: db2 mainframe callable-statement query-timeout


    【解决方案1】:

    等待锁(BINDLOCK01 到 20)解锁的超时。

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

    IBM Knowledge Center 建议尽可能增加频繁的 COMMIT 操作。

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

    建议:ACQUIRE(USE) 和 RELEASE(DEALLOCATE) 提供良好的 使用页或行锁定并最大化时的并发性 性能。

    保持排他锁的时间尽可能短,这是可取的 在主机中将 INSERT、UPDATE 和 DELETE 语句组合在一起 语言程序后跟 COMMIT。如果这些 SQL 语句是 散布着宿主语言代码,锁被持有而 执行宿主语言代码。

    作为最后的手段,如果你不想优化你的查询,并且假设它没有死锁,你可以disable lock timemouts:

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

    欢迎来到 Stack Overflow。

    【讨论】:

    • 感谢您的回复,jabolotai。
    • 不客气,希望它能帮助您解决问题。如果是,请不要忘记将其标记为正确答案。
    • 感谢您的回复,jabolotai。从 Java 应用程序开发人员的角度来看,我想我的问题是,执行查询时是否会发生这些异常?如果是,为什么不考虑我们从 Java 应用程序设置的 querytimeout 设置。这里的查询是使用存储过程调用来读取数据。
    • 是的,在尝试获取资源时。 Statement.getQueryTimeout() 是客户端(JDBC 驱动程序),locktimeout 是服务器端(需要足够的权限才能设置)。有许多超时选项,但 queryTimeout 至少应该覆盖客户端限制。检查您的服务器设置为什么。查看database.ittoolbox.com/groups/technical-functional/db2-l/… 了解更多信息,如果卡住了,请检查它不是驱动程序-服务器版本不匹配之类的奇怪现象。
    • 非常感谢您的快速回复。我无权设置锁定超时。但是我想我仍然很困惑,如果在执行查询时会发生抛出的异常,并且 querytimeout 设置为大约 10 秒,为什么查询没有超时并运行一些 X ( X > 10) 秒.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2011-11-20
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多