【问题标题】:Get process id that is listening to a queue获取正在侦听队列的进程 ID
【发布时间】:2021-04-02 07:09:46
【问题描述】:

我正在使用嵌入在 JBoss EAP 7.2.0 服务器中的 Apache ActiveMQ Artemis。我创建了一个队列,并且外部应用程序(JBoss 服务器外部)正在监听该队列。在 JBoss 管理控制台的 Runtime 选项卡中,我可以看到我的队列有 1 个侦听器,但几天后我看到侦听器的数量增加到 2 或 3 个。

有什么方法可以获取正在监听队列的进程的详细信息?

【问题讨论】:

    标签: java message-queue activemq-artemis jboss-eap-7


    【解决方案1】:

    在您的特定用例中,只有远程消费者位于您的 EAP 服务器的同一主机上,您可以使用以下命令获取所有连接的进程(请注意,这不包括您也有内部消费者的情况您的服务器和/或外部主机上的远程消费者的相同进程 ID)。

    $ lsof -Pni | grep ">127.0.0.1:8080"
    java      25322 fvaleri  230u  IPv4 0x97a3c5aa109b7ebd      0t0  TCP 127.0.0.1:55058->127.0.0.1:8080 (ESTABLISHED)
    

    然后,每个连接可能会打开多个会话,您可以使用以下命令找出这些会话(将 TestQueue 替换为您的队列名称)。

    $ $EAP_HOME/bin/jboss-cli.sh -c --command="/subsystem=messaging-activemq/server=default/jms-queue=TestQueue:list-consumers-as-json"
    

    【讨论】:

    • 非常感谢,这有帮助。问题终于解决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    相关资源
    最近更新 更多