com.mysql.jdbc.exceptions.jdbc4.CommunicationsException||java.net.SocketException: Broken pipe
描述:
用jpa(hibernate實現)做應用時,程序中報以下錯誤:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
The last packet successfully received from the server was 79,221,885 milliseconds ago.
The last packet sent successfully to the server was 79,221,885 milliseconds ago.
is longer than the server configured value of 'wait_timeout'.
You should consider either expiring and/or testing connection validity before use in your application,
increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
解釋及解決辦法:
如果連接閑置8小時 (8小時內沒有進行數據庫操作), mysql就會自動斷開連接, 得刷新應用才行.
不用hibernate的話, connection url加參數: autoReconnect=true
用hibernate的話, 加如下屬性:
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
要是還用c3p0連接池:
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">0</property>
<property name="hibernate.c3p0.timeout">0</property>
<property name="hibernate.c3p0.validate">true</property>
用jpa(hibernate實現)做應用時,程序中報以下錯誤:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
The last packet successfully received from the server was 79,221,885 milliseconds ago.
The last packet sent successfully to the server was 79,221,885 milliseconds ago.
is longer than the server configured value of 'wait_timeout'.
You should consider either expiring and/or testing connection validity before use in your application,
increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
解釋及解決辦法:
如果連接閑置8小時 (8小時內沒有進行數據庫操作), mysql就會自動斷開連接, 得刷新應用才行.
不用hibernate的話, connection url加參數: autoReconnect=true
用hibernate的話, 加如下屬性:
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
要是還用c3p0連接池:
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">0</property>
<property name="hibernate.c3p0.timeout">0</property>
<property name="hibernate.c3p0.validate">true</property>
posted on 2011-01-17 21:39 小一敗涂地 閱讀(6214) 評論(0) 編輯 收藏 所屬分類: hibernate相關 、JPA,EJB相關