java.net.SocketException: Broken pipe

2019-06-26 06:23发布

问题:

I am getting this for all the database connections from my app server..
This exception occured for couple of hours, then got fixed by itself.
Something to do with network connection from the appserver?

java.net.SocketException: Broken pipe
com.inet.tds.SQLException: java.net.SocketException: Broken pipe
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 com.inet.tds.a.a(Unknown Source)
    at com.inet.tds.a.a(Unknown Source)
    at com.inet.tds.a.commit(Unknown Source)
    at com.inet.pool.a.commit(Unknown Source)

回答1:

For MySQL, "By default, the server closes the connection after eight hours if nothing has happened." And, MySQL has a reconnect feature that supports auto-reconnect after the closed connection is detected on the client side.

Eight hours? With the use of connection pooling or a long-running background job, that is possible.

http://dev.mysql.com/doc/refman/5.0/en/gone-away.html



回答2:

It means you client has disconnected from the server; check if it is running. See here



回答3:

During a write the connection was severed, this can be due the the destination closing the connection or the destination process has terminated. Its not an error with your implementation.