java - Tomcat : How to get opened jdbc:oracle connection's stack trace?

标签 java apache tomcat profiling dump

有一个跨多个位置运行的 Web 应用程序,
通过在 Linux 上运行以下命令,我可以看到许多连接堆积起来:

ps -ef|grep LOCAL

显示了带有进程 ID 的 Activity Oracle 连接数,并且连接数每小时增加 5-7 个数字。几个小时后,应用程序速度变慢,最终需要重新启动 tomcat 服务器。

因为,我能够看到连接不断增长,有什么方法可以获取这些连接的来源,找出哪些类或对象创建了这些已建立的连接?

而且我没有使用Tomcat连接池,我尝试通过发出kill -3 tomcat pid来生成线程转储,但对我来说没有用,因为我无法理解它们,甚至尝试了线程分析器。

是否有任何简单的方法可以使用某些 tomcat 功能或通过任何其他方式来获取与这些已建立的连接关联的发起者类以获得小提示?

最佳答案

JProfiler ,您可以使用 JDBC 探针来获取打开连接的堆栈跟踪。您将在时间线中选择连接

enter image description here

并跳转到事件 View

enter image description here

您可以在其中选择“连接已打开”事件。在下部 Pane 中,显示关联的堆栈跟踪。

免责声明:我公司开发JProfiler

关于java - Tomcat : How to get opened jdbc:oracle connection's stack trace?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356308/

相关文章:

java - Android 应用程序中的 HttpClient 请求失败,没有任何异常

apache - BASH apache 寻找特定的文件名

apache - .htaccess 将 imgname.jpg 改写为 image.php?img=imgname

java - 可以通过Spring配置和启动嵌入式Tomcat吗?对 Jetty 好吗?

java - 是否有一种通用方法可以从不同类型的数据库加载空间数据或将空间数据存储到不同类型的数据库?

java - "Java Cryptography Architecture (JCA) provider"和 "Java update"问题

java - 如何在java中从H2数据库映射id列

java - 如何显式调用父类的构造函数

java - Tomcat websocket 和 java

Tomcat部署策略