Как создать долговременную очередь с помощью Artemis JMS Management API
Это долгая история, но мне нужно создать прочную очередь, используя API управления Artemis JMS. В настоящее время код создает временную очередь по умолчанию:
JMSManagementHelper.putOperationInvocation("jms.server", "createQueue", "MyqueueName", null, null, true);
Я думаю, что первоначальный автор предполагал, что это создаст длительную очередь, но, по-видимому, нет. Я не могу найти хорошую документацию по этому вопросу и задавался вопросом, Может ли кто-нибудь подтвердить/опровергнуть это.
Заранее благодарю.
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);
И теперь я правильно получаю длительную очередь.