首页 > javaweb中数据库连接池的设置问题

javaweb中数据库连接池的设置问题

问题描述:
做了一个系统,其中有一个页面是考试页面,这个页面有一个功能是这样的,如果考试时间到了(总共90分钟),就向数据库自动提交答案,刚刚出了个bug,发现是自动提交答案的时候报错:数据库连接池已经断开,因为吃了个晚饭,有一个小时没有操作过;
错误提示:org.hibernate.exception.JDBCConnectionException:could not execute query

根据网上搜索的结论,是数据库端的连接已经断开,我在hibernate中做了如下配置,但是还是不行,是不是配置错了。。。
配置如下:


1、timeout 是指连接池回收连接的超时时间,意味着连接如果超过timeout时间未使用会被连接池回收
2、不用担心连接被回收,这样是对资源的合理利用
3、既然是连接池,只要设定好最大最小连接数,适合你的场景,就都可以保证你想操作数据库的时候,有现成的数据库连接可以使用


连接究竟可以存活多长时间不仅仅取决于客户端,数据库服务器也可以断开一个超时的连接。

所以你应该测试数据库连接:http://www.mchange.com/projects/c3p0/#configuring_connection_testing

如果设置了 idleConnectionTestPeriod ,c3p0 会每隔一段时间测试空闲的连接。

hibernate 的配置应该是 hibernate.c3p0.idle_test_period

【热门文章】
【热门文章】