1. 程式人生 > >Too many connections錯誤的解決辦法

Too many connections錯誤的解決辦法

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: "Too many connections"
1.可能是mysql的max connections設定的問題
2.可能是多次insert,update操作沒有關閉session,需要在spring裡配置transaction支援。

因為你的mysql安裝目錄下的 my.ini 中設定的併發連線數太少或者系統繁忙導致連線數被佔滿

解決方式:

開啟MYSQL安裝目錄開啟MY.INI找到max_connections(在大約第93行)預設是100 一般設定到500~1000比較合適,重啟mysql,這樣1040錯誤就解決啦。
max_connections=1000

解決:
1.修改tomcat裡的session 的time-out時間減少為20,(不是必改項)
2.對處理量大的對資料庫insert或update的操作提供transaction支援.

3、

在hibernate中是Threadlocal管理session的,session.close()後,Threadlocal的還沒有馬上請空的,如果hibernate的session資源不夠
就很容易產生Too many connections的異常,可以這樣解決都可以試試
新增一個連線池配置檔案,增加session執行緒池的執行緒數,通過設定
<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="hibernate.c3p0.max_size">30</property> <——————可以設定大一點
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">1000</property>
<property name="hibernate.c3p0.idle_test_period">30000</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.validate">false</property>