</bean> 我觉得最大连接100个很正常不算小了,mysql连接到达135个左右就报too many connection错误了。我让程序执行一百次jdbc查询,刚好循环到100的时候就报错了,说无法获取connection,基本可以确定通过getSession().connection()获取的connection如果不使用connection.close()的话就释放不了,而且还要session.close(),如果是在HibernateCallback里面是不需要的,但是如果通过connection.close()强制执行关闭的话,那用数据连接池干嘛,所以想请教下在这种情况下connection应该怎么处理,在HibernateCallback里面到底hibernate有没执行connection.close()操作,谢谢。
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.34.19:3306/TFKSys</value>
</property>
<property name="username">
<value>teamu</value>
</property>
<property name="password">
<value>1111</value>
</property>
<property name="initialSize">
<value>10</value>
</property>
<property name="maxActive">
<value>100</value>
</property>
<property name="maxIdle">
<value>10</value>
</property>
<property name="maxWait">
<value>1000</value>
</property> <property name="testWhileIdle">
<value>true</value>
</property>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="120"/>
</bean>
我觉得最大连接100个很正常不算小了,mysql连接到达135个左右就报too many connection错误了。我让程序执行一百次jdbc查询,刚好循环到100的时候就报错了,说无法获取connection,基本可以确定通过getSession().connection()获取的connection如果不使用connection.close()的话就释放不了,而且还要session.close(),如果是在HibernateCallback里面是不需要的,但是如果通过connection.close()强制执行关闭的话,那用数据连接池干嘛,所以想请教下在这种情况下connection应该怎么处理,在HibernateCallback里面到底hibernate有没执行connection.close()操作,谢谢。
加上这几个参数
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
会自动释放没有关闭的活动链接