java - 是否可以让 DriverManager.setLoginTimeout(int value) 以毫秒为单位接受超时时间?
问题描述
我正在尝试编写一个 java 代码,它使用以下类型的代码创建到数据库的 Oracle JDBC 连接:
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
con = DriverManager.getConnection(url, user, pass);
现在我想关闭或终止这个连接,如果它需要超过 200 毫秒。我发现他们有一种方法,setLoginTimeout(int seconds)
即只需要几秒钟的时间,有可能以setLoginTimeout
毫秒为单位吗?如果没有,还有其他选择吗?
解决方案
DriverManager.setLoginTimeout
为应用程序中的所有 JDBC 驱动程序指定一个全局默认值。不可能以毫秒为单位进行设置,给定DriverManager.setLoginTimeout(int seconds)
定义为
设置识别驱动程序后尝试连接数据库时驱动程序将等待的最长时间(以秒为单位)。
参数:
seconds
- 登录时间限制,以秒为单位;零表示没有限制
您将需要使用特定于驱动程序的配置属性(如果可用)。
我不确定 Oracle 是否有这个,因为oracle.net.CONNECT_TIMEOUT
正如 Karol 所建议的那样 - 据我所知 - 也是在几秒钟内定义的(基于sqlnet.ora 文档中的 TCP.CONNECT_TIMEOUT)
推荐阅读
- python - 为什么 TensorFlow 和 Scipy 之间的 Pearson 相关性不同
- sublimetext3 - 默认情况下在 Sublime 中打开所有 Grid Engine .e、.o、.pe 和 .po 文件?
- c++ - 在 0x00007FF74F27A526 处遇到未处理的异常:堆栈内存溢出
- c# - 为什么我的代码只允许我在列表视图框中拖放最上面的重复项
- android - 如何在Android中使用MPAndroidChart使用两组数据绘制图形
- reactjs - React Antd 在 array.map 上显示多个模式
- matlab - 4D分散数据的Matlab插值
- apache - 将 IIS htaccess 转换为 Apache htaccess 拆分 URL
- r - 计算列值之间的差异
- powershell - 如何按特定顺序启动多个服务,如果没有可用的服务,它将跳到下一个可用的服务?