Я использую Hibernate 3 и столкнулся с проблемой, связанной с закрытием соединений.
Я использую c3p0-0.9.1.2.jar и проверил соединения с сервером базы данных, открытым Hibernate, я обнаружил, что существуют установленные соединения, число которых составляет 5; на некоторых TCP-портах сервера (см. журнал ниже).
Но эти установленные соединения продолжают изменять порты TCP, на которых они установлены, и таким образом освобождают ранее используемые ими порты, переводя эти порты в состояние TIME_WAIT (а не закрывая их).
Это продолжается и делает счет в сотнях; для соединений в состоянии TIME_WAIT.
Я не уверен, что происходит и почему порты переключаются с Установлено на 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
Спасибо за помощь.