1

我仔细检查了我的代码,并且在 finally 块中有 conn.close 但是当我执行 SELECT * FROM pg_stat_activity; 我看到许多空闲连接。我怎样才能解决这个问题?

4

1 回答 1

4

最可能的原因是您的应用程序正在使用连接池。如果是这样,池将抓取连接并保持其中一部分打开,以便可以重用它们。在执行另一个命令或关闭应用程序之前,连接将显示为 IDLE。

如果连接没有被关闭,您可能会看到类似 IDLE - In Transaction 的内容,这意味着连接已打开并等待执行提交或回滚,但未收到任何命令。

另外,我知道你说你关闭了连接,所以我不确定这是否适用于你,但我只是想抛出我过去也遇到过问题,因为没有明确关闭 PreparedStatements。

于 2012-10-08T01:21:53.240 回答