gpt4 book ai didi

java - 间歇性 JDBC 管道损坏和链接失败

转载 作者:行者123 更新时间:2023-11-29 07:16:44 29 4
gpt4 key购买 nike

 Excepcion:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
...
Caused by: java.net.SocketException: Broken pipe

我已经读过很多与此类似的问题。因此,在宣布这个问题“不值得”之前,让我先澄清一些事情

我的 JDBC 链接完全正常工作。

  • 身份验证没有问题
  • Sql 已启动并正在运行
  • max_connections 为 300,从未达到
  • 并发线程连接数始终在 5 到 9 之间
  • 我正在使用 MySQL 5.0.95(是的...我知道,我无法控制服务器资源)
  • 和Mysql-connector-java 5.1.5
  • mysql性能变量已基于Percona Toolkit配置

我的具体问题是:

  • 此错误是由网络引起的吗?因为它看起来完全是随机的。
  • 这是适合该 mysql 版本的 mysql 连接器还是这可能是所有错误的根源?

谢谢

最佳答案

Broken pipeline 消息意味着另一端关闭了连接,可能是因为接收到的数据包顺序错误,或者因为客户端和服务器之间的状态不同步或类似的原因。也许您的应用程序和服务器之间存在防火墙来终止持久连接?或者也许一段时间内管道(连接)上没有任何 Activity ,并且服务器关闭了它?无论如何,如果您使用连接池机制(you should!) ,应该可以将此类情况的处理委托(delegate)给它。

或者,如果您打算始终使用 MySQL,则可以尝试将 failOverReadOnly=false&maxReconnects=10&autoReconnect=true 添加到连接字符串中。这是特定于 MySQL JDBC 驱动程序的,因此,我强烈建议您配置连接池机制来测试连接,然后再将连接传递到应用程序。

关于java - 间歇性 JDBC 管道损坏和链接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707104/

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