Нам необходимо передавать сообщения между RabbitMQ и MQSeries.
Для этого мы используем следующую конфигурацию.
<int:channel id="channelRmqMQ"></int:channel>
<int-amqp:inbound-channel-adapter channel="channelRmqMQ"
queue-names=" QUEUE_OUT "
connection-factory="rabbitConnectionFactory"
auto-startup="true"
id="inboundChannelAdapter"
channel-transacted="true"
concurrent-consumers= " 1"
prefetch-count="40"
tx-size="40"
/>
<int-jms:outbound-channel-adapter channel="channelRmqMQ"
id="jmsOut"
destination="jmsQueue"
connection-factory="connectionFactoryCaching"
delivery-persistent="true"
explicit-qos-enabled="true"
session-transacted="true" >
<int-jms:request-handler-advice-chain>
<ref bean="requestHandler" />
</int-jms:request-handler-advice-chain>
</int-jms:outbound-channel-adapter>
Мы хотим подтвердить сообщение в очереди RabbitMQ о том, что запись в MQSeries хороша. Для этого мы используем атрибут channel-transacted
на входящем amqp и session-transacted
на исходящем jms.
Это правильный способ сделать это?
Как мы можем проверить сценарий, где сообщение хорошо написано в очереди MQSeries (синяя стрелка), но при подтверждении RabbitMQ (зеленая стрелка) возникает ошибка? Можно ли тогда откатить на MQSeries? и повторите попытку с этим сообщением от RabbitMQ.
Спасибо за вашу помощь.