Excepcion:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
...
Caused by: java.net.SocketException: Broken pipe
我已经阅读了很多与此类似的问题。 所以,在宣布这个问题“不值得”之前,让我澄清一些事情
我的JDBC链接完全正常工作。
max_connections
,即300,永远不会到达我的具体问题是:
谢谢
答案 0 :(得分:2)
Broken pipe
消息表示另一端关闭了连接,可能是因为收到的数据包顺序错误,或者因为客户端和服务器之间的状态未同步或类似的情况。也许你的应用程序和服务器之间有一个防火墙可以杀死持久连接?或者也许管道(连接)上没有任何东西发生了一段时间,服务器关闭了它?在任何情况下,如果您使用连接池机制(you should!),则应该可以将此类情况的处理委托给它。
或者,如果您打算始终使用MySQL,可以尝试将failOverReadOnly=false&maxReconnects=10&autoReconnect=true
添加到连接字符串中。这是MySQL JDBC驱动程序特有的,因此,我建议您配置连接池机制,以便在将连接交付给应用程序之前测试连接。