【发布时间】:2014-09-20 19:12:19
【问题描述】:
我正在使用c3p0 在多线程环境中处理数据库连接池。这个问题可能与其他池库有关,但这就是我所拥有的。
最近我需要直接或间接使用 c3p0 在此类线程上实现 interruption 处理,并注意到如果在 c3p0Datasource.getConnection() 试图从池,它会抛出一个InterruptedException。
显然,这是因为wait()
at java.lang.Object.wait(Native Method)
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1414)
酷。问题是你如何正确处理这个问题 - 两种情况都是 a) 你想在你的线程终止之前继续事务,b) 你想中止。
我尝试了一个似乎运行良好的解决方案(作为答案发布) - 实际上,我认为这个主题已经结束。否则请随意加入,谢谢!
【问题讨论】:
标签: java connection-pooling c3p0 interrupt-handling interrupted-exception