有一个跨多个位置运行的 Web 应用程序,
通过在 Linux 上运行以下命令,我可以看到许多连接堆积起来:
ps -ef|grep LOCAL
显示了带有进程 ID 的 Activity Oracle 连接数,并且连接数每小时增加 5-7 个数字。几个小时后,应用程序速度变慢,最终需要重新启动 tomcat 服务器。
因为,我能够看到连接不断增长,有什么方法可以获取这些连接的来源,找出哪些类或对象创建了这些已建立的连接?
而且我没有使用Tomcat连接池,我尝试通过发出kill -3 tomcat pid来生成线程转储,但对我来说没有用,因为我无法理解它们,甚至尝试了线程分析器。
是否有任何简单的方法可以使用某些 tomcat 功能或通过任何其他方式来获取与这些已建立的连接关联的发起者类以获得小提示?
最佳答案
在 JProfiler ,您可以使用 JDBC 探针来获取打开连接的堆栈跟踪。您将在时间线中选择连接
并跳转到事件 View
您可以在其中选择“连接已打开”事件。在下部 Pane 中,显示关联的堆栈跟踪。
免责声明:我公司开发JProfiler
关于java - Tomcat : How to get opened jdbc:oracle connection's stack trace?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356308/