命令行agument扩展jdbc超时



我必须维护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.

我认为这个程序正在做它应该做的事情。实际上,处理sql调用的完整返回值需要2个小时!我已经写了一个补丁来修复超时问题和其他问题,但我们还需要一个月的时间才能将其发布到生产服务器。

同时,有没有一种方法可以将JDBC配置为使用更长的超时窗口?我不能触摸代码,但有没有任何方法可以使用属性文件或命令行参数来配置默认JDBC超时?

这可以通过更新用于连接到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(以秒为单位)

最新更新