代码之家  ›  专栏  ›  技术社区  ›  oneself

Oracle的JDBC查询超时是如何实现的?

  •  21
  • oneself  · 技术社区  · 15 年前

    我很好奇Oralce JDBC瘦客户端如何实现查询超时。 方法。

    这是在客户端的驱动程序本身中实现的吗?是一个 向Oracle发送一个参数,然后它强制超时?

    数据库被释放了,哪些被挂起了?甲骨文还会继续吗 结束?客户端上还有游标对象吗?

    非常感谢。

    4 回复  |  直到 15 年前
        1
  •  12
  •   Gary Myers    15 年前

    塔内尔·波德写了一篇文章 article 我想JDBC也做了类似的事情。如果您使用的是胖驱动程序,那么可以通过OCI尝试跟踪会话(通过设置sqlnet.ora)并查看记录的内容。

        2
  •  15
  •   Henrik Aasted Sørensen    10 年前

    根据 Oracle JDBC FAQ

    无论有多少语句或连接,都只创建一个线程。 此线程将持续VM的整个生命周期。

        3
  •  2
  •   Nivas    15 年前

    当查询在使用setTimeOut方法时实际超时时,会出现SQL异常,并显示Oracle错误代码 ORA-01013 - user requested cancel of current operation 从oracle服务器抛出。

    这意味着操作已被取消 优雅

        4
  •  1
  •   Kevin    15 年前

    我知道当达到超时时,查询不会在服务器端继续。在达到超时之前或之后,会向服务器发送一些意图/信号选项,以指示服务器应该停止。我通过查看服务器上的各种V$表来验证这一点,以查看查询是否正在运行(V$SESSION、V$SQL等)