首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.net.SocketException:破裂的管道

问java.net.SocketException:破裂的管道
EN

Stack Overflow用户
提问于 2010-07-22 14:19:28
回答 2查看 15.2K关注 0票数 9

我每天都会收到这个错误或jsp页面:

代码语言:javascript
复制
java.net.SocketException

消息:破裂的管道

步骤:

代码语言:javascript
复制
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)
        ....

重新启动tomcat服务后,它可以正常工作。(我使用hibernate连接到mysql数据库)

EN

回答 2

Stack Overflow用户

发布于 2010-07-23 05:53:46

JSP我每天都会收到这个错误或者

页面(...)

我要推测一下,如果这发生在每天早上(例如,在一夜不活动之后),那么这可能与MySQL在默认情况下在8小时后关闭空闲连接( wait_timeout)有关。

如果是这种情况,请执行以下任一操作:

  • 使用数据源配置中的validationQuery将tomcat配置为在借用时测试连接:

validationQuery通过my.cnf/my.ini选择1

  • 增加MySQL的wait_timeout,或者通过连接命令行SQL客户端并输入SET GLOBAL wait_timeout=86400,或其他合适的秒数。

我没有意识到第二种选择的所有后果,也不真正推荐它,至少在没有从MySQL专家那里获得更多反馈的情况下是这样。

票数 17
EN

Stack Overflow用户

发布于 2010-07-22 14:39:09

看起来您(部分地)松开了与数据库的连接。MySQL尝试发送某些内容,但连接丢失。

另一位报告了类似问题的mysql/tomcat用户,被建议使用连接池,如c3p0。用户回答说,他想首先使用mysqls reference manual中描述的Mysql/tomcat连接池。

This is original post (german language)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3306244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档