Artemis ActiveMQ - AMQ159005: недопустимый режим сеанса CLIENT_ACKNOWLEDGE - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь создать сеанс с КЛИЕНТОМ в режиме подтверждения и сталкивается со следующим исключением:

JMSException: Could not create a session: AMQ159005: Invalid Session Mode CLIENT_ACKNOWLEDGE

Код:

import javax.jms.Connection;
import javax.jms.Session;
import javax.jms.ConnectionFactory;

ConnectionFactory factory = (ConnectionFactory) initialContext.lookup("java:/RemoteJmsDispatcher");

private Connection conn;
conn = factory.createConnection();

private Session session;
session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);

RemoteJmsDispatcher:

 <pooled-connection-factory name="activemq-ra-remote-dispatcher" entries="java:/RemoteJmsDispatcher java:jboss/exported/jms/ConnectionFactory" connectors="netty-remote-dispatcher" min-large-message-size="524288" client-id="wildfly-dev" retry-interval="5000" max-retry-interval="5000" group-id="my-broadcast-group" user="xxxxx" password="xxxxx" enlistment-trace="true">
     <inbound-config use-jndi="true" rebalance-connections="true" use-local-tx="false"/>
 </pooled-connection-factory>

Я погуглил код ошибки AMQ159005 и ничего не нашел.

Мне нужно создать в этом режиме, потому что у меня больше обработки сообщений, и если я получил какое-то исключение, мне нужно, чтобы сообщения возвращались в очередь.

Заранее спасибо.

1 Ответ

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

A pooled-connection-factory - это фабрика соединений на основе JCA (из адаптера ресурсов Artemis JCA), которая не позволяет устанавливать режим CLIENT_ACKNOWLEDGE в сеансе. Смотрите здесь . Я рекомендую вам использовать обычную (т.е. не основанную на JCA) фабрику соединений.

...