org.quartz.JobPersistenceException: Failed to obtain DB connection from data source 'springNonTxDataSource.startQuertz': org.apache.tomcat.jdbc.pool.PoolExhaustedException: [startQuertz_Worker-6] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:200; busy:200; idle:0; lastwait:30000]. [See nested exception: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [startQuertz_Worker-6] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:200; busy:200; idle:0; lastwait:30000].]
at org.quartz.impl.jdbcjobstore.JobStoreCMT.getNonManagedTXConnection(JobStoreCMT.java:168)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3793)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retryExecuteInNonManagedTXLock(JobStoreSupport.java:3758)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.triggeredJobComplete(JobStoreSupport.java:3055)
at org.quartz.core.QuartzScheduler.notifyJobStoreJobComplete(QuartzScheduler.java:1804)
at org.quartz.core.JobRunShell.run(JobRunShell.java:269)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [startQuertz_Worker-6] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:200; busy:200; idle:0; lastwait:30000].
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:689)
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:187)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
at org.springframework.scheduling.quartz.LocalDataSourceJobStore$2.getConnection(LocalDataSourceJobStore.java:131)
at org.quartz.utils.DBConnectionManager.getConnection(DBConnectionManager.java:108)
at org.quartz.impl.jdbcjobstore.JobStoreCMT.getNonManagedTXConnection(JobStoreCMT.java:165)
... 6 more
没有特别耗时的操作,使用spring配置如下:
我不知道为什么连接未释放呢?
<bean id="dataSource_agdb" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="${agdb.jdbc.driverClassName}"/>
<property name="username" value="${agdb.jdbc.username}"/>
<property name="password" value="${agdb.jdbc.password}"/>
<property name="maxActive" value="${agdb.jdbc.maxPoolSize}"/>
<property name="initialSize" value="${agdb.jdbc.initialPoolSize}"/>
<property name="url" value="${agdb.jdbc.url}"/>
<property name="validationQuery" value="${agdb.jdbc.validationQuery}"/>
<property name="validationInterval" value="${agdb.jdbc.validationInterval}"/>
<property name="testWhileIdle" value="true"/>
</bean>