gpt4 book ai didi

java - 查找 activemq 连接泄漏的最佳方法

转载 作者:行者123 更新时间:2023-11-29 08:48:52 25 4
gpt4 key购买 nike

这很可耻,但我们知道有一些 activemq 连接泄漏。代码老旧,曲折多,很难找到漏洞。

我们从批处理机中解雇了许多短期工作。我们知道并不是所有的路径都正确的关闭了activemq的连接。当连接未关闭但作业终止时,activemq 会保持该连接一段时间。最终,一些关键应用程序会因为超过 activemq 最大连接限制而受到影响。

是否可以设置连接名称或其他识别信息,以便未正确关闭的连接将出现在 activemq 的日志文件中。这将告诉我们需要检查哪些日志文件。作业的数量之多使得很难找出导致问题的确切作业。然而,一旦我们了解了这项工作,我们就可以从日志中推断出足够的信息来查找和修复连接泄漏。

现在我们所看到的只是发起连接的 ip 地址,并且由于所有作业都来自同一台机器,因此找出问题的根源无济于事

最佳答案

如果您将 jms.clientID=something 添加到您的连接 URL 并在您的 conf/log4j.properties 中打开 DEBUG 日志记录,您将在 AMQ 上的调试日志中获得客户端 ID。然后您可以编写一些东西来分析您的日志并找到给定 clientID 的 AMQ ID 并以这种方式匹配日志。

如果您的进程确实正在退出,那么您的连接应该在此时断开(即,如果没有进程为其提供服务,您将无法保持连接有效)。

如果您在 Linux 上运行,您可以执行 netstat -anp | grep 61616(或任何您的 AMQ 端口)以查看哪些 PID 仍与 AMQ 有连接,然后另一个 ps 以查看这些进程是什么。

关于java - 查找 activemq 连接泄漏的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23730321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com