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

标签 java oracle jdbc timeout

我很好奇 Oralce JDBC 瘦客户端如何实现查询超时。 这可以通过调用 java.sql.Statement 的 setQueryTimeout(int seconds) 来设置 方法。

这是否在客户端的驱动程序本身中实现?是一个 新线程产生并加入?或者只是简单的JDBC驱动 向Oracle发送一个参数,然后它会强制超时?

达到超时后,客户端上的哪些资源和 数据库都发布了,还有哪些闲逛?甲骨文是否继续 运行查询,即使客户端放弃了它或者是它 终止?客户端还有游标对象吗?

谢谢

最佳答案

根据Oracle JDBC FAQ

语句超时线程。如果您执行任何带有超时的语句,则会创建此线程。 无论有多少语句或连接,都只创建一个线程。该线程持续 VM 的生命周期。

关于java - Oracle的JDBC查询超时是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376615/

相关文章:

java - JDBC 中的 PACKAGE.TABLENAME%ROWTYPE

java - 新对象中的 Spring-instrument 和自动注入(inject)

sql - REGEXP_SUBSTR 查找组

java - 将 Ms Access 连接到 java

oracle - 如何在 Oracle 中一个接一个地运行多个脚本?

oracle - 命令 : "GRANT EXECUTE ON USERNAME.PKG.PROCEDURE TO OTHERUSER;" 的语法错误

java - 在多个进程中使用 sqlitejdbc

Java套接字API : How to tell if a connection has been closed?

java - 在测试 JUnit 中强制私有(private)方法返回值

java - 音频流 - 捕获和读取麦克风数据