首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Hibernate的session连接数量为啥会这么大

2013-04-26 
Hibernate的session连接数量为什么会这么大?这是一个用Hibernate做的一个web项目,启用了Hibernate的Statis

Hibernate的session连接数量为什么会这么大?
这是一个用Hibernate做的一个web项目,启用了Hibernate的Statistics统计功能。刚打开服务器几分钟,控制台输入的Statistics统计信息显示,session打开了330,关闭了323,而且事务只成功提交了一半左右:
Hibernate的session连接数量为啥会这么大

然后,几分钟之后,session已经打开了1087,关闭了1077,事务也是提交了一半左右:
Hibernate的session连接数量为啥会这么大

2个小时之后,session呈现爆发式的增长,已经打开了433562:
Hibernate的session连接数量为啥会这么大

请问:
①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&amp;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包的,自己上网去找

热点排行