1. 程式人生 > >解決多執行緒程式使用JDBC連線資料庫的異常

解決多執行緒程式使用JDBC連線資料庫的異常

多執行緒就帶來了高併發,短時間內大量的請求發向資料庫,在執行過程中出現了以下錯誤:

** BEGIN NESTED EXCEPTION ** 

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException
MESSAGE: Can not read response from server. Expected to read 4 bytes, read
0 bytes before connection was unexpectedly lost.

這個錯誤提示是因為資料庫伺服器沒有響應,考慮到短時間內會有大量的資料庫連線,所以將資料庫最大連線數改成了2000,改完以後再執行程式,出現錯誤如下

** BEGIN NESTED EXCEPTION ** 

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net
.SocketException MESSAGE: Software caused connection abort: recv failed

這個提示是連線超時了,查閱了很多資料也沒有找到解決的辦法,後來經網友提示修改了mysql聯結器的jar包,將原來的mysql-connector-java-5.0.8.jar升級為mysql-connector-java-5.1.42-bin.jar。升級完之後,再執行程式,就沒有異常出現了,對於引用的jar包定期升級還是有必要的。