【问题标题】:How to Timing out java.sql.ResultSet如何超时 java.sql.ResultSet
【发布时间】:2009-06-23 19:29:51
【问题描述】:

PL/SQl 光标由于某种原因被挂起,这使我的应用程序在尝试循环通过 ResultSet 时挂起。

有没有办法处理这个问题,比如如果数据库挂起,则使结果集超时?

【问题讨论】:

    标签: java database plsql timeout


    【解决方案1】:

    在 java.sql.Statement 接口上有一个 setQueryTimeout(int)。您应该在调用 executeQuery() 之前调用它。

    您也可以通过在 Statement 上调用 cancel() 来异步取消正在运行的查询。

    编辑:Oracle jdbc 驱动程序版本 6 肯定支持这些方法,因为我在我的一个项目中使用它。

    【讨论】:

    • 但请检查您的 JDBC 驱动程序是否真的支持此功能,因为它对于 ResultSets 是可选的
    • @GáborHargitai 我该如何检查?特别是对于 DB2 通用 JDBC 驱动程序提供程序,我正在疯狂地搜索,但没有找到对我有帮助的文档:(
    • 使用queryTimeout 并不适用于所有情况。例如,如果ResultSet 作为StoredProcedure 中的输出参数返回。超时仅在 CallableStatement.execute() 方法中受到尊重
    猜你喜欢
    • 2011-07-05
    • 1970-01-01
    • 2017-08-14
    • 2010-10-16
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多