Java Mac OS X套接字超时
我的OSX(约塞米蒂)机器有一个奇怪的问题:网络通信似乎比同一网络的其他Windows机器慢,超时时间似乎更短 当我尝试运行Java应用程序时,每个超过15秒的事务都会返回:Java Mac OS X套接字超时,java,macos,sockets,timeout,Java,Macos,Sockets,Timeout,我的OSX(约塞米蒂)机器有一个奇怪的问题:网络通信似乎比同一网络的其他Windows机器慢,超时时间似乎更短 当我尝试运行Java应用程序时,每个超过15秒的事务都会返回: java.sql.SQLRecoverableException: IO Error: Operation timed out at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:876)
java.sql.SQLRecoverableException: IO Error: Operation timed out
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:876)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
at dome.dbComponents.dataModels.rowSet.StatementStatus.executeQuery(StatementStatus.java:71)
at com.dome.dCell.common.services.enterprise.types.Infusr.loadSQLFieldList(Infusr.java:976)
at dome.util.xml.converter.typeSQLManager.ThreadLoadSqlField.run(ThreadLoadSqlField.java:103)
Caused by: java.net.SocketException: Operation timed out
at java.net.SocketInputStream.socketRead0(Native Method)
INFO [28 Aug 2015 14:35:32,427] DomeEnterpriseService.loadAll(true) executed in 19724 ms
当我们的企业服务从数据库中加载所有企业所需的时间超过15秒时,就会发生超时(这不是一个糟糕的查询,只是有很多信息要存储在内存中)
这可能与我们的软件配置与OS X不兼容没有直接关系。我曾尝试在同一iMac上的Windows 7 VM(带VirtualBox)中运行相同的应用程序,但问题仍然存在
我检查了与数据库机器(Linux服务器)的连接,一切正常
我还在/etc/sysctl.conf
(net.inet.tcp.msl
)中尝试了不同的配置,但似乎没有太大区别。此外,我没有找到类似于Linux的net.ipv4.tcp\u syn\u重试配置的东西,也许我在谷歌上搜索了错误的关键字,但我没有找到多少关于调整OS X超时的内容
我不记得以前在这台机器上有过这个问题。我将JDK1.7更新为最新版本(1.7.0_79),所有操作系统都更新了,没有任何改进。
我们尝试了不同的机器(Linux和Windows,它是唯一的Mac),但没有人能够复制这一点
有什么想法吗