如果我查询:
select * from pg_stat_activity where application_name ~ 'example-application';
我收到了很多状态为idle
且查询为COMMIT
的行。它们持续时间很长,不会消失。经过一段时间,我的应用程序达到了hibernate.c3p0.max_size
(连接池中最大的JDBC连接数)的限制,无法继续与数据库交互。
其他SO线程中描述了一些应用程序实现细节: Guice DAO提供程序在线程池中 - 查询变为“空闲事务”
为什么会发生这种情况?如何解决这个问题?