我必须维护使用sql调用超时的java代码。错误是:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: communications link failure
The last packet successfully received from the server was 7706,043 milliseconds ago. The last packet sent succesfully to the server was 2 milliseconds ago.
我认为该计划正在按计划进行。它实际上需要2个小时来处理来自sql调用的完整返回值!我已经编写了一个补丁来解决超时问题以及其他问题,但是我们可以在将它发布到生产服务器之前一个月。
与此同时,有一种方法可以将JDBC配置为使用更长的超时窗口吗?我无法触及代码,但有没有办法可以使用属性文件或命令行参数来配置默认的JDBC超时?
答案 0 :(得分:0)
这可以通过更新用于连接到SQL的URL来完成。用于扩展URL的确切参数取决于连接到哪个DB,但此网页会详细介绍它们:
http://www.cubrid.org/blog/dev-platform/understanding-jdbc-internals-and-timeout-configuration/
以下是相关事实的副本;
mysql:jdbc:mysql://xxx.xx.xxx.xxx:3306 / database?connectTimeout = 60000& socketTimeout = 60000(以毫秒为单位) mysql(jtds)jdbc:jtds:sqlserver:// server:port / database; loginTimeout = 60; socketTimeout = 60(以秒为单位)