Hibernate的session连接数量为什么会这么大?
这是一个用Hibernate做的一个web项目,启用了Hibernate的Statistics统计功能。刚打开服务器几分钟,控制台输入的Statistics统计信息显示,session打开了330,关闭了323,而且事务只成功提交了一半左右:
然后,几分钟之后,session已经打开了1087,关闭了1077,事务也是提交了一半左右:
2个小时之后,session呈现爆发式的增长,已经打开了433562:
请问:
①Hibernate的这种session数据统计,是叠加式的吗?为什么这个项目的session打开数量这么多,而且随着时间的推移,session打开得越来越多?这种情况是否正常?
②事务的提交为什么每次都只成功提交了一半?是不是另外一半事务没有成功提交?这样是不是导致了数据插入不成功?
请大家帮忙分析一下,感激不尽
Hibernate
session
事务
------解决方案--------------------你写一个连接池吧,估计是你访问了数据库,没有释放链接,导致这样的情况
------解决方案--------------------是不是链接太多导致提交失败的多了?
------解决方案--------------------用数据库连接pool吧。jndi、c3p0
------解决方案--------------------你不配置,他没有的
------解决方案--------------------<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="jdbcUrl">
<!-- 192.168.1.60 -->
<value>jdbc:mysql://localhost:3306/findpeople0221?useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>123</value>
</property>
<property name="minPoolSize">
<value>5</value>
</property>
<property name="maxPoolSize">
<value>30</value>
</property>
<property name="initialPoolSize">
<value>10</value>
</property>
<property name="maxIdleTime">
<value>60</value>
</property>
这个是用了c3p0的Spring数据库的设置,配这个要JAR包的,自己上网去找