相关疑难解决方法(0)

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

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

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

达到超时后,客户端和数据库上的哪些资源被释放,哪些存在?即使客户端放弃了查询还是终止,Oracle是否继续运行查询?客户端是否还有游标对象?

谢谢

java oracle timeout jdbc

21
推荐指数
2
解决办法
3万
查看次数

设置JDBC连接的网络超时

我正在尝试使用Java设置网络超时我的Oracle数据库连接.但是,我收到了一个错误.下面是示例代码,它是相应的例外.

try{
    conn = new Database("oracle").connect();
    conn.setNetworkTimeout(null, 30000); //I don't have an Executor, so the field is set to null
    System.out.println(Switch.date() + " -> Database Connection Initialized");
}
catch(SQLException ex){
    Logger.getLogger(Switch.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)

我得到的例外是:

Exception in thread "main" java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V
   at ke.co.smart.Switch.<init>(Switch.java:524)
   at ke.co.smart.Switch.main(Switch.java:161)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)

我认为它与抽象方法有关(读取AbstractMethodError).什么可能导致这个错误,因为我只实现了我认为已经在Java中定义的方法,因此,不拒绝编译.

注意:如果有抽象方法,Java不允许编译具体类.

java database oracle jdbc

14
推荐指数
1
解决办法
7万
查看次数

标签 统计

java ×2

jdbc ×2

oracle ×2

database ×1

timeout ×1