Решить проблему несинхронизации через IBM JMS от Mule - PullRequest
0 голосов
/ 28 августа 2018

Я подключаю MQ-8.x от Mule через JMS, и недавно я столкнулся с проблемой, которая кажется, что операция записи MQ выходит за пределы диапазона синхронизации и из-за этого, а также из-за огромной входящей нагрузки, MQ вошел в состояние тупика.

<spring:bean id="ConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory" name="ConnectionFactory">
        <spring:property name="hostName" value="xxxx" />
        <spring:property name="port" value="xxxx"/>
        <spring:property name="queueManager" value="xxxx"/>
        <spring:property name="transportType" value="1"/>
        <spring:property name="channel" value="xxxx"/>
   </spring:bean>

<jms:connector name="JmsConsumer" username="xxxx" password="xxxx" specification="1.1" connectionFactory-ref="ConnectionFactory"  numberOfConsumers="1" validateConnections="true"  persistentDelivery="true" doc:name="JMS"/> 

<jms:outbound-endpoint queue="xxxx" connector-ref="JmsConsumer" doc:name="Audits"/>    

Мой рабочий объем будет перемещаться, но это просто операция PUT, поэтому я действительно не уверен, нужен ли для этого XA или другой менеджер транзакций.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Это было обработано в версии MQ-9.x, что сам MQ будет неявно управлять точкой несинхронизации. MQ-9.x обновление будет решением для такого рода проблем.

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q026865_.html

0 голосов
/ 20 ноября 2018

Это сообщение создается потому, что постоянные сообщения создаются вне транзакции. MQ высоко оптимизирован для обработки постоянных транзакционных сообщений, и это предупреждение информирует нас о том, что очередь не обрабатывается настолько эффективно, насколько это возможно. Система получит значительное улучшение производительности, если вы выполните действия внутри транзакции / синхроточки или если непостоянный достаточно хорош, отключите постоянный флаг.

...