hibernate資料庫連線池的問題

MagicProgram發表於2011-06-07

很久沒有更新日誌了,主要最近一直從事程式開發和專案管理的一些事情,沒有遇到什麼問題。今天對最近開發的web程式進行部署時,發現了問題。

這個問題可能大部分用過hibernate的開發人員都遇到過,即“tomcat執行一段時間,比如一晚上後,發現原來能開啟的網頁現在都出現了問題”。探其究竟,其實是資料庫訪問失敗。這又是為什麼呢?原來mysql資料庫預設的一個選項“wait-timeout=28800",(wait-timeout —— the number of seconds to wait for activity on an incoming connection before closing it. The default is 28800 seconds. This option was added in MySQL 5.1.7. Before that, the timeout is 30 seconds and cannot be changed.)。所以過了這麼長時間後,由於長時間沒有與資料庫通訊,此連線被強行斷開。

這時,就需要修改hibernate的資料庫連線選項。採用的方法也是網路上推薦的,即選用c3p0這種方式連線資料庫,而不選用預設自帶的方式。主要修改了

connection.provider_class = org.hibernate.connection.C3P0ConnectionProvider

c3p0.idle_test_period = 3000

c3p0.timeout = 5000

(附:剛開始設定為net.sf.hibernate.connection.C3P0ConnectionProvider,一直報錯啊,嗚嗚嗚嗚)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25432352/viewspace-697334/,如需轉載,請註明出處,否則將追究法律責任。

相關文章