Как создать долговременную очередь с помощью Artemis JMS Management API


Это долгая история, но мне нужно создать прочную очередь, используя API управления Artemis JMS. В настоящее время код создает временную очередь по умолчанию:

JMSManagementHelper.putOperationInvocation("jms.server", "createQueue", "MyqueueName", null, null, true);
Я думаю, что первоначальный автор предполагал, что это создаст длительную очередь, но, по-видимому, нет. Я не могу найти хорошую документацию по этому вопросу и задавался вопросом, Может ли кто-нибудь подтвердить/опровергнуть это.

Заранее благодарю.

1 2
jms

1 ответ:

Документация для этого https://activemq.apache.org/artemis/docs/latest/management.html или management.md в гитхабе. Затем естьAPI doc , чтобы найти детали.

Глядя на https://activemq.apache.org/artemis/docs/javadocs/javadoc-latest/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.html#createQueue-java.lang.String-java.lang.String-java.lang.String- метод, который вы хотите вызвать is

createQueue(String address, String name, String filter, boolean durable)

Документация говорит

Если значение address равно null, то по умолчанию будет присвоено имя.

Вы устанавливаете name значение null, а не address. Если я вместо этого побегу

JMSManagementHelper.putOperationInvocation("0.0.0.0", "createQueue", null, "MyqueueName", null, true);

Это тоже не работает. Я считаю, что это ошибка. Будем расследовать дальше и доложим об этом.

Поэтому я дублирую имя очереди

JMSManagementHelper.putOperationInvocation("0.0.0.0", "createQueue", "MyqueueName", "MyqueueName", null, true);

И теперь я правильно получаю длительную очередь.