У меня есть два приложения Apple и Pear, которые используют вышеупомянутый класс для прослушивания настроенной очереди JMS в WildFly (10.1.0).Конфигурация Spring показана ниже.
<bean id="appleMessageListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
depends-on="transactionManager">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="outQueue" />
<property name="destinationResolver" ref="jmsDestinationResolver" />
<property name="messageListener" ref="AppleMessageListener" />
<property name="messageSelector" value="ID='APPLE_ID'" />
<property name="transactionManager" ref="transactionManager" />
</bean>
<bean id="pearMessageListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
depends-on="transactionManager">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="outQueue" />
<property name="destinationResolver" ref="jmsDestinationResolver" />
<property name="messageListener" ref="PearMessageListener" />
<property name="messageSelector" value="ID='PEAR_ID'" />
<property name="transactionManager" ref="transactionManager" />
</bean>
Ожидаемый процесс выглядит следующим образом: - Слушатель приложения Apple (AppleMessageListener) будет читать сообщение из очереди JMS outQueue.Сообщение обновляется, и AppleMessageListener записывает сообщение в «outQueue» с senderId, установленным в «PEAR_ID», так что PearMessageListener будет читать сообщение.AppleMessageListener будет ожидать ответа от приложения Pear на другое «inQueue» или тайм-аут
Extarct по следующей ссылке: -
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q032250_.htm
If an application sends a message within a transaction, the message
is not delivered to its destination until the transaction is committed.
This means that an application cannot send a message and receive a reply
to the message within the same transaction.
Этоточно моя ситуация.Однако я не могу найти решение, которое я могу понять.
Я был бы очень признателен за предложения по решению этой проблемы, с которой я столкнулся.
Спасибо за вашу помощь.
Пит