0

我正在使用 Spring 2.5;使用 apache-commons-dbcp 连接池的 SimpleJdbcTemplate。还有一个线程池,它在运行查询时产生一个线程(执行几个查询,一旦全部完成就处理它们的结果,因此产生线程以并行运行查询)。

最终,所有线程都在 TIMED_WAIT 中等待 getConnection()。似乎没有线程获得连接。我检查了数据库,连接都是空闲的。

这是什么原因造成的?我有 10 个连接作为最大池大小和 50-100 个线程。我应该如何配置这个?DBA 说应该有足够的连接(我同意,因为它们都是空闲的)。

BoneCP 作为 SimpleJdbcTemplate 的数据源也会发生同样的事情。

4

1 回答 1

2

原来是因为在循环一个 ResultSet 的过程中,另一个查询开始了,所以第一个查询足够多,第二个查询无法获得连接,一切都死锁了。

于 2011-12-13T19:09:36.220 回答