Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Postgres连接与Java代码关联_Java_Postgresql_Jdbc_Connection Pooling - Fatal编程技术网

将Postgres连接与Java代码关联

将Postgres连接与Java代码关联,java,postgresql,jdbc,connection-pooling,Java,Postgresql,Jdbc,Connection Pooling,我正试图追踪泄漏的连接。特别是,我注意到连接在最后一个数据源关闭后保持打开状态,使用C3P0进行连接池。我怀疑有一只虫子,但我想确保我不是一开始就愚蠢 从Postgres视图关联打开的连接有好方法吗 postgres=# select * from pg_stat_activity; datid | datname | procpid | usesysid | usename | current_query | waiting | xa

我正试图追踪泄漏的连接。特别是,我注意到连接在最后一个数据源关闭后保持打开状态,使用C3P0进行连接池。我怀疑有一只虫子,但我想确保我不是一开始就愚蠢

从Postgres视图关联打开的连接有好方法吗

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端是无法检查的。它对Java代码一无所知。调用方只需传入用户名、密码和数据库名。没别的了。但是,可以从Java端检查它。类似这样的工具在这方面可能会有所帮助。

Postgresql 9支持以这种方式读取的设置,但对于之前的版本,服务器中没有类似的设置


在JBoss中,我们有一个连接保护系统,它可以在连接打开时在内部抛出并捕获异常,以便捕获回溯,然后将其与连接一起存储。然后,如果在事务结束时未关闭连接,则会记录该回溯并发出警告。我想,有可能将该策略调整到通用数据源装饰层中,并定期扫描跟踪的连接,以查找那些在10分钟或更长时间内未使用但未关闭的连接。

我知道Postgres方面不需要这样做,但我希望有一些未使用的连接参数,甚至只是一个名称参数,可以方便地用于此类操作。如果可能,最好使用一个仅由应用程序使用的登录角色。您仍然无法跟踪单个连接,但至少您会看到您的应用程序是否存在问题。我想我只能等待了!