【发布时间】:2012-04-04 23:22:19
【问题描述】:
给定一个连接到 PostgreSQL 数据库的 JVM(在 Linux 上),有没有办法找出 Java 中的哪个线程负责数据库中的一个进程?
注意:我正在调试一个资源泄漏错误,它显示为数据库中的一些空闲事务进程。将这些与负责的线程匹配会很有用,因为线程名称会缩小搜索范围。
【问题讨论】:
-
肯定有一个到数据库的连接,它可能被多个线程使用(例如通过连接池)。
-
在许多应用程序中,连接将被显式分配给线程。连接通常不应该由多个线程同时使用(实现可能使这成为可能,但很多都没有)。当然,拥有一个适当地重用线程的连接池可能会更有效,但野外的程序通常不会这样做。有时,分配连接更容易。为什么要把问题复杂化?
标签: java database linux postgresql jdbc