gpt4 book ai didi

java - 通过 JDBC Driver Manager 运行 mysql 准备好的语句(慢于 10 秒)时,Tomcat 6 没有得到任何响应

转载 作者:行者123 更新时间:2023-11-29 00:45:58 24 4
gpt4 key购买 nike

我在使用现有的基于 servlet 的应用程序(有点旧)时遇到了一个奇怪的问题。

如果 mysql 准备语句运行速度低于 10 秒,我无法让任何 servlet 完成操作(我在此应用程序中只有准备语句)。

我对更快的查询(少于 10 秒)没有问题。

catelina.out 没有任何痕迹,也没有浏览器界面。当我通过 fiddler 检查浏览器请求时,它显示

"This session is not yet complete. Press F5 to refresh when session is complete for updated statistics. Request Count: 1 Bytes Sent:
437 (headers:437; body:0) Bytes Received: 0 (headers:0; body:0)"

MySQL“SHOW FULL PROCESSLIST”命令显示特定套接字连接(慢速查询)运行约 12 秒,COMMAND="Execute"和 STATE="Sending Data",然后更改为 COMMAND="Sleep"和 STATE =""并保持这种状态很长时间(超过 500 秒)。理想情况下,此连接不应保持如此长时间的 hibernate 状态,而是在发送数据完成后关闭。

netstat -ab 命令显示与 tomcat6.exe 和 mysqld.exe 下的 ESTABLISHED 相同的连接。理想情况下,一旦查询执行完成,这应该保持为 TIME_WAIT,直到“TcpTimedWaitDelay”值。

此查询的预期负载非常小(大约 2kbytes)。

MySQL connect_timeout=100 和 Tomcat connectionTimeout="100000"(对于我运行应用程序的端口 8000)。

我没有尝试更改的一件事是 JDBC DriverManager.setLoginTimeout 属性,因为它只关心获得连接。

此应用在几天前运行良好。但我没有任何关于那几天查询执行时间的统计数据。

我运行的是 windows 2008 R2 标准版、tomcat 6 和 MySQL 5.5。

我无法查明此行为的任何原因。非常感谢您的帮助。

最佳答案

这似乎是与 MySQL 连接器相关的问题。我们使用的是旧连接器(版本 3.1.x)。最新稳定版(5.1.20)修复了该问题。

关于java - 通过 JDBC Driver Manager 运行 mysql 准备好的语句(慢于 10 秒)时,Tomcat 6 没有得到任何响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com