我使用Hibernate 3,並且我正面臨與連接關閉有關的問題。休眠導致太多time_wait連接
我使用c3p0-0.9.1.2.jar和我檢查到連接到由Hibernate打開的數據庫服務器,我發現有既定其是5號的連接;在服務器的一些TCP端口上(見下面的日誌)。
但這些已建立的連接保持在TIME_WAIT狀態改變它們所建立的TCP端口,從而釋放他們使用較早的端口,使這些端口(而不是關閉它們)。
這不斷髮展,使得數量在數百;用於TIME_WAIT條件下的連接。
我不確定發生了什麼,以及爲什麼端口從Established建立到TIME_WAIT,以前沒有一個端口正在關閉。
下面是通過運行NETSTAT -ano | find「x.9」獲取的示例,其中x.9是數據庫服務器IP。
TCP x.124.x.66:4379 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4381 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4382 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4383 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4384 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4385 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4386 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4387 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4388 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4389 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4390 x.124.x.9:1433 ESTABLISHED 5916
我使用的Hibernate.properties文件。
hibernate.c3p0.min_size=5
hibernate.c3p0.timeout=2
hibernate.c3p0.max_size=50
hibernate.c3p0.idle_test_period=10000
hibernate.connection.release_mode=auto
感謝您的幫助。