Решить проблему несинхронизации через IBM JMS от Mule
Я подключаю 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 ответа
В версии 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
Это сообщение создается потому, что постоянные сообщения создаются вне транзакции. MQ высоко оптимизирован для обработки постоянных транзакционных сообщений, и это предупреждение информирует нас о том, что очередь не обрабатывается настолько эффективно, насколько это возможно. Система получит значительное улучшение производительности, если вы выполните действия внутри транзакции / синхроточки или если непостоянный достаточно хорош, отключите постоянный флаг.