我正在尝试使用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);
}
我得到的异常是:
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
我相信这与抽象方法有关(请参见AbstractMethodError)。可能导致此错误的原因是我只实现了我认为已经在Java中定义的方法,因此不拒绝编译。
注意:如果有抽象方法,Java不允许编译具体的类。
setNetworkTimeout()
是JDBC 4.1中引入的,而JDBC 4.0中没有。
您将需要ojdbc7,因为如果要使用setNetworkTimeout()
method,则JDBC 4.1仅随Java 7一起提供。
潜在的问题是,在更高规格的接口中添加方法到接口会导致这些接口的较早实现因错误而中断。即将到来的Java 8默认方法的新功能之一,有望使这个问题减少一些。
显然,Oracle也有一个JDBC驱动程序属性,可以修改套接字超时。
如果使用瘦驱动程序,也可以尝试使用此Oracle
JDBC属性
设置套接字超时:
Properties props = new Properties();
props.setProperty("user", "dbuser");
props.setProperty("password", "dbpassword");
props.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT, "2000");
Connection con = DriverManager.getConnection("<JDBC connection string>", props);
3.a. 您可以不联网安装, 不过... 谁可以不用联网? 取决于您先前选择的用以安装 gentoo 的媒介, 您将可以或不可以不联网安装. 我们可没和您开玩笑哦 =) 普遍而言, 您需要配置网络连接. 不过呢, Gentoo 也提供了离线安装的可能性. 只要您选择使用 Gentoo Universal LiveCDs. 我为啥需要联网? 联网安装的一大好处就是您可以得到一个最新的系统. 您会得到
问题内容: 我正在尝试通过网络连接到MySQL数据库。我已经安装了MySQL,并且该服务在默认端口上运行。我还将SQL连接器安装到jar文件中,并将Java JDK添加到服务器计算机中。我可以使用以下代码连接到本地数据库: 但是,当我尝试通过IP地址(例如:192.168.1.45)通过网络连接到它时: 我收到连接错误: 有人知道这个问题是什么吗?我需要添加其他地址吗?我已经使用地址添加了默认端口
我的Spring Hibernate Web应用程序在MySQL上运行,这给我带来了麻烦。 我四处寻找并尝试了不同的配置,在这个网站上阅读了相当多的帖子,但它仍然会弹出微笑的头像。 错误消息是:由:com.mysql.jdbc.exceptions.jdbc4.通信异常:从服务器成功接收到的最后一个数据包是63,313,144毫秒前。最后一个成功发送到服务器的数据包是63,313,144毫秒前。比
Hi想知道是否有办法设置套接字的超时,以及在连接握手之前重试的次数。我在非常糟糕的连接模式下测试了我的应用程序,我为我在Volley中的请求设置了重试策略为10秒,但SSL握手似乎是个问题,因为它有一个默认的超时设置为60秒,而Volley超时只被触发当套接字由于尝试次数或超时而失败时。 下面是我的方法: 我正在使用截击来提出我的请求,我实现这一点的方法是: 我还尝试设置了这样的超时:
问题内容: 我刚刚在跟随他们的网页时安装了Docker- Toolbox 我开始看下面 但是当我尝试表演时,这就是我所看到的 怎么了? 问题答案: 今天早上我遇到了同样的问题,以下内容为我解决了这个问题: 看来这是由于Docker虚拟机进入了一种奇怪的状态。这里有一个开放的github问题