Spring интеграции JMS IBM mq конфигурации для чтения сообщения из одной очереди и отправки его в шесть разных очередей - PullRequest
0 голосов
/ 15 мая 2018

Привет, я новичок в интеграции Spring.Я хочу написать код с нуля, чтобы прочитать сообщение из одной очереди JMS и отправить его в семь разных очередей.Мне нужно использовать IBM Mq.Может кто-нибудь поделиться примером кода со мной.Я написал ниже XML.Я создал одну очередь для чтения и семь для записи.И использовал список получателей-маршрутизатор, чтобы направить его из очереди чтения в очередь записи.

Может кто-нибудь подтвердить, правильно это или нет.

jms-xml.

        This adapter reads message from one queue and duplicate it and writes it in multiple queues.

    ]]>
</description>

<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="transportType" value="${jms.transportType}"/>
    <property name="queueManager" value="${jms.queueManager}"/>
    <property name="hostName" value="${jms.hostName}"/>
    <property name="port" value="${jms.port}" />
    <property name="channel" value="${jms.channel}"/>
</bean>


<bean id="readerQueue" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>

<bean id="writerQueue2" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>

<bean id="writerQueue3" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>
<bean id="writerQueue4" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>
<bean id="writerQueue5" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>
<bean id="writerQueue6" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>

<bean id="writerQueue7" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg index="0" value="${jms.queueManager}"/>
    <constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>


<jms:channel id="readerChannel" queue-name="readerQueue" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel1" queue-name="writerQueue1" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel2" queue-name="writerQueue2" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel3" queue-name="writerQueue" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel4" queue-name="writerQueue4" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel5" queue-name="writerQueue5" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel6" queue-name="writerQueue6" connection-factory="jmsConnectionFactory"/>
<jms:channel id="writerChannel7" queue-name="writerQueue7" connection-factory="jmsConnectionFactory"/>
->
<int:recipient-list-router id="customRouter" input-channel="readerChannel"
                           timeout="1234"
                           ignore-send-failures="true"
                           apply-sequence="true">
    <int:recipient channel="writerChannel1"/>
    <int:recipient channel="writerChannel2"/>
    <int:recipient channel="writerChannel3"/>
    <int:recipient channel="writerChannel4"/>
    <int:recipient channel="writerChannel5"/>
    <int:recipient channel="writerChannel6"/>
    <int:recipient channel="writerChannel7"/>
</int:recipient-list-router>



<bean id="receiverJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="jmsConnectionFactory" />
    <property name="pubSubDomain" value="false"/>
    <property name="receiveTimeout" value="30000"/>
</bean>

1 Ответ

0 голосов
/ 15 мая 2018

У вас была возможность посетить репозиторий SI https://github.com/spring-projects/spring-integration-samples? Есть несколько примеров для JMS https://github.com/spring-projects/spring-integration-samples/tree/master/basic/jms

...