2012-07-18 106 views
1

如何从连接池中删除断开的连接对象?使用c3p0如何从连接池中删除断开的连接对象?使用c3p0

在我的应用程序当数据库通讯失败时,显示异常。获得数据库连接后,立即发送任何数据库请求我得到同样的异常。获取数据库连接30秒后的任何请求都能正常工作。所以我如何删除断开的连接对象?

我的连接属性是: -

url=jdbc:mysql://db_host:db_port/db_name 
driverClassName=db_driver_class_name 
username=root 
password=password 
hibernate.platform=org.hibernate.dialect.MySQLDialect 
initialPoolSize=5 
minPoolSize=5 
maxPoolSize=20 
checkoutTimeout=1000 
maxStatements=20 
acquireRetryAttempts=1 
acquireRetryDelay=10 
maxIdleTime=1 
acquireIncrement=0 
maxConnectionAge=1 

回答

0

包括在你的配置参数如下

<prop key="hibernate.c3p0.max_idle_time">6</prop> 
    <prop key="hibernate.c3p0.max_idle_time_excess_connection">4</prop> 
    <prop key="hibernate.c3p0.idle_connection_test_period">600</prop> 
    <prop key="hibernate.c3p0.test_connection_on_checkout">true</prop> 
    <prop key="hibernate.c3p0.preferred_test_query">SELECT 1;</prop> 

希望这对你的工作