java - 将 Postgres 连接与 Java 代码相关联

标签 java postgresql jdbc connection-pooling

我正在尝试追踪泄漏的连接。 (特别是,我注意到连接在最后一个 DataSource 关闭后保持打开状态,使用 C3P0 进行连接池。我怀疑是一个错误,但首先要确保我不只是愚蠢。)

有没有一种从 Postgres View 关联打开的连接的好方法

postgres=# select * from pg_stat_activity;

datid | datname  | procpid | usesysid | usename  |          current_query          | waiting |          xact_start          |         query_start          |         backend_start         | client_addr | client_port 
11564 | postgres |   95709 |       10 | postgres | select * from pg_stat_activity; | f       | 2010-07-25 14:20:24.97529-07 | 2010-07-25 14:20:24.97529-07 | 2010-07-25 14:20:19.066576-07 |             |          -1

(1 row)

它们在 Java/JDBC 代码中打开的位置? (或者也许是一些独特的字符串等) 看来这应该是个有用的东西!

最佳答案

Postgresql 9 支持 application_name可以通过这种方式读取的设置,但是之前版本的服务器中没有类似的设置。

在 JBoss 中,我们有一个连接保护系统,它会在连接打开时在内部抛出并捕获异常,以便捕获回溯,然后将其与连接一起存储。然后,如果在事务结束时连接未关闭,则会记录该回溯并带有警告。我猜想,有可能将该策略应用到通用数据源装饰器层中,并定期清除跟踪的连接,以查找在 10 分钟内(或大于预期生命周期的某个时间)未使用但未关闭的连接。

关于java - 将 Postgres 连接与 Java 代码相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3331074/

相关文章:

java - SpringBoot嵌入式tomcat服务器读取查询参数中的unicode字符为null

java - getSalary() 方法不起作用

django - 如何安装 libpq-fe.h?

PostgreSQL 错误 : CASE with JSON set-returning functions

java - 有没有办法将preparedStatement打印到控制台System.out.println

java.sql.SQLException : No suitable driver found for jdbc:mysql

javascript - 如何将在 javascript 中创建的数组传递给另一个 jsp,然后在该 jsp 的 java 函数中使用该数组?

java - 在 Java 中使用 Microsoft CryptoGraphicPublicBlobType.Capi1PublicKey

Postgresql 错误 : could not load library plpgsql. 所以 undefined symbol

java - 使用 JDBC 和 Java 连接到 apache phoenix