我使用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
感谢您的帮助。