Как вызывать операции во временной очереди JMS из JBOSS CLI - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь вызвать такие операции, как listDeliveringMessages() во временной очереди (скажем, fe517553-6c53-42d6-8aaa-d8ea154fd8b0), созданной jms.Topic в JBoss 6.4.0.GA EAP / 7.2.x. Мне нужно сделать это из JBoss CLI.

Я подошел к этому, запустив:

/subsystem=messaging/hornetq-server=default/jms-queue=fe517553-6c53-42d6-8aaa-d8ea154fd8b0

Но CLI JBoss говорит, что очередь не найдена. Тем не менее, если я подхожу к этому из JVisualVM и проверяю MBeans, я могу запускать операции визуально (а это не то, что я ищу!):

queue

И при выборе этого я могу иметь список всех атрибутов:

enter image description here

Какую команду запустить, чтобы получить те же атрибуты и операции вызова из CLI JBoss?

1 Ответ

0 голосов
/ 31 августа 2018

Очереди, используемые для подписок на темы, можно найти в runtime-queue. Например, если вы создали подписчика на тему под названием myTopic, вы можете выполнить эту команду:

/subsystem=messaging/hornetq-server=default/jms-topic=myTopic/:list-all-subscriptions

Это даст вам информацию обо всех текущих подписчиках, включая имя очереди подписки, например ::

.
{
    "outcome" => "success",
    "result" => [{
        "durable" => false,
        "queueName" => "6257c1d9-9039-4e76-a4cd-857de77f13a8",
        "messageCount" => 0,
        "deliveringCount" => 0,
        "consumers" => [{
            "creationTime" => 1535727397857L,
            "consumerID" => 0,
            "browseOnly" => false,
            "connectionID" => "397639080",
            "sessionID" => "0fb5712d-ad2e-11e8-94a8-45dabcb25ee3"
        }]
    }]
}

Затем вы можете взять имя очереди подписки и найти его с помощью команды, подобной следующей:

/subsystem=messaging/hornetq-server=default/runtime-queue=6257c1d9-9039-4e76-a4cd-857de77f13a8:read-resource(include-runtime=true)

Это скажет вам все свойства очереди, например ::

.
{
    "outcome" => "success",
    "result" => {
        "consumer-count" => 1,
        "dead-letter-address" => "jms.queue.DLQ",
        "delivering-count" => 0,
        "durable" => false,
        "expiry-address" => "jms.queue.ExpiryQueue",
        "filter" => undefined,
        "id" => 52L,
        "message-count" => 0L,
        "messages-added" => 0L,
        "paused" => false,
        "queue-address" => "jms.topic.myTopic",
        "scheduled-count" => 0L,
        "temporary" => true
    }
}

Однако операция list-all-delivering-messages не поддерживается для этой очереди.

...