1

我不时引发此异常,导致我的 mysql 调用失败。

   Caused by: java.lang.StackOverflowError
           at java.net.SocketOutputStream.socketWrite0(Native Method)
           at java.net.SocketOutputStream.socketWrite(Unknown Source)
           at java.net.SocketOutputStream.write(Unknown Source)
           at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
           at java.io.BufferedOutputStream.flush(Unknown Source)
           at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3251)
           at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1932)
           at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
           at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
           at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4916)
   .....

我正在使用带有 c3p0 的 mysql jdbc 5.1.7。JVM 在 linux 64 服务器上运行。我在 mysql jdbc 3.0.7 中发现了一个在 3.0.8 版本中修复的相关错误。所以我想这不是我的情况。

这似乎是随机行为,因为对于大多数执行没有错误,但它经常每周发生。这可能是由于mysql服务器通信失败引起的吗?欢迎任何想法

4

1 回答 1

2

找到了问题的原因。似乎这是由于 mysql 服务器中的空闲连接丢失所致。autoReconnect=truein mysql url 为我解决了这个问题。

于 2012-05-31T16:04:03.407 回答