【问题标题】:How to monitor and control MBDs from JBOSS Domain Mode (List, stopDelivery StartDelivery)如何从 JBOSS 域模式监视和控制 MBD (List, stopDelivery StartDelivery)
【发布时间】:2026-01-18 06:20:07
【问题描述】:

我想列出有关、启动和停止交付在多个服务器中运行的 MDB 的信息。本页https://access.redhat.com/solutions/428023

展示了如何在独立模式下停止和启动 MDB 的交付:

[standalone@localhost:9999 /] /deployment=MDBStopDeliveryApplication.jar/subsystem=ejb3/message-driven-bean=TestMDB:start-delivery(){"outcome" => "success"}
[standalone@localhost:9999 /] /deployment=MDBStopDeliveryApplication.jar/subsystem=ejb3/message-driven-bean=TestMDB:stop-delivery()

这可以在所有服务器的域模式下完成吗?如果是这样怎么办?

[domain@ ip :9999 /] /deployment=name.ear/subsystem=ebj3/whatever
[domain@ ip :9999 /] /deployment=name.ear/subsystem=ebj3:whatever()

我无法对子系统=ebj3 或其任何子项执行任何操作。而用于完成的 TAB 也无济于事。任何操作的结果总是:

{
    "outcome" => "failed",
    "failure-description" => "JBAS014883: No resource definition is registered for address [
    (\"deployment\" => \"name.ear\"),
    (\"subsystem\" => \"ebj3\")
]",
        "rolled-back" => true
}

【问题讨论】:

    标签: jboss jboss-cli


    【解决方案1】:

    这是 EAP 6.4 n 之前版本中的错误。它已在 EAP 6.4.5 中修复。您可以使用以下 CLI 命令来统计/停止 MDB:

    /host=master/server=server-three/deployment=xxxx.jar/subsystem=ejb3/message-driven-bean=xxx:start-delivery()

    【讨论】:

      【解决方案2】:

      在域模式下,您不能全局查询或操作这些属性。您的配置存储在profile 中,配置文件分配给server-group,然后server 实例分配给组。服务器在host 上运行,它充当连接到域控制器的从属设备。可以有多个主机在不同的机器上运行,每个主机可以管理分配给不同组的服务器实例。为了实现您的目标,您需要在部署应用程序的每台服务器上执行这些命令。如果要使其自动化,您可以首先查询属于服务器组的服务器列表,然后在调用 CLI 的 bash 脚本中对其进行迭代。要查询特定服务器的此信息,只需在您的命令前加上 /host=<your_host>/server=<your_server>/

      【讨论】:

      • 谢谢。我能够让它工作。我将为阅读本文的其他人添加一些细节:如果您在“部署”后无法执行任何操作,您可能忘记部署了!此外,您可以使用 * 作为通配符来匹配所有名称,并且您可能会在部署中的“子部署”中找到 MDB。这将从服务器上的所有 MDB 获取一个属性:/deployment=*/subdeployment=*/subsystem=ejb3/message-driven-bean=*:read-attribute(name=WhatYouWant)
      最近更新 更多