我每天收到这个错误或我的jsp页面:
java.net.SocketException
消息:管道破损
堆栈跟踪:
java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) at com.MysqL.jdbc.MysqLIO.send(MysqLIO.java:2637) ....
解决方法
I get this error or my JSP page every day (…)
我要推测一下,但是如果每天早晨发生这种情况(即在一个不活动的夜晚之后),那么这可能与MysqL默认关闭8小时之后的空闲连接(wait_timeout
)有关.
如果是这样的话:
>配置tomcat以在数据源配置中使用validationQuery来测试借用的连接:
<parameter> <name>validationQuery</name> <value>select 1</value> </parameter>
>通过my.cnf / my.ini增加MysqL的wait_timeout,或通过与命令行sql客户端连接并输入SET GLOBAL wait_timeout = 86400或其他合适的秒数.
我不知道第二个选项的所有后果,并没有真正推荐它,至少没有得到更多的MysqL专家的反馈.