首页 > 解决方案 > 是否可以让 DriverManager.setLoginTimeout(int value) 以毫秒为单位接受超时时间?

问题描述

我正在尝试编写一个 java 代码,它使用以下类型的代码创建到数据库的 Oracle JDBC 连接:

DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); 
con = DriverManager.getConnection(url, user, pass);

现在我想关闭或终止这个连接,如果它需要超过 200 毫秒。我发现他们有一种方法,setLoginTimeout(int seconds)即只需要几秒钟的时间,有可能以setLoginTimeout毫秒为单位吗?如果没有,还有其他选择吗?

标签: javaoraclejdbcojdbc

解决方案


DriverManager.setLoginTimeout为应用程序中的所有 JDBC 驱动程序指定一个全局默认值。不可能以毫秒为单位进行设置,给定DriverManager.setLoginTimeout(int seconds)定义为

设置识别驱动程序后尝试连接数据库时驱动程序将等待的最长时间(以秒为单位)。

参数:
   seconds - 登录时间限制,以秒为单位;零表示没有限制

您将需要使用特定于驱动程序的配置属性(如果可用)。

我不确定 Oracle 是否有这个,因为oracle.net.CONNECT_TIMEOUT正如 Karol 所建议的那样 - 据我所知 - 也是在几秒钟内定义的(基于sqlnet.ora 文档中的 TCP.CONNECT_TIMEOUT


推荐阅读