Как создать долговременную очередь с помощью 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);И теперь я правильно получаю длительную очередь.