У меня есть два пользователя jms, каждый в другом потоке. Я хочу использовать другой поток для агрегирования сообщений двух двух сообщений. и также необходимо сохранить идентификаторы корреляции, поскольку мне нужно разделить полезную нагрузку и отправить обратно сообщения.Совокупность двух сообщений JMS от двух разных потребителей
<flow name="integration-consumer-client1" doc:name="integration-consumer-client1">
<jms:inbound-endpoint doc:name="JMS" connector-ref="Active_MQ" queue="client1.publish"/>
<logger message="Consumes Client One = #[payload]" level="INFO" doc:name="Logger"/>
<logger message="Client One Correlation = #[message.correlationId]" level="INFO" doc:name="Logger"/>
<vm:outbound-endpoint exchange-pattern="one-way" path="client1" doc:name="VM"/>
</flow>
<flow name="integration-consumer-client2" doc:name="integration-consumer-client2">
<jms:inbound-endpoint doc:name="JMS" connector-ref="Active_MQ" queue="client2.publish"/>
<logger message="Consumes Client Two = #[payload]" level="INFO" doc:name="Logger"/>
<logger message="Client Two Correlation = #[message.correlationId]" level="INFO" doc:name="Logger"/>
<vm:outbound-endpoint exchange-pattern="one-way" path="client2" doc:name="VM"/>
</flow>
<flow name="integration-internetsolutionsFlow1" doc:name="integration-internetsolutionsFlow1">
<scatter-gather doc:name="Scatter-Gather">
<vm:inbound-endpoint exchange-pattern="one-way" path="client1" doc:name="VM"/>
<vm:inbound-endpoint exchange-pattern="one-way" path="client2" doc:name="VM"/>
</scatter-gather>
</flow>
Я пытался использовать разброс собрать с двумя въездными виртуальными машинами, но получает следующее сообщение об ошибке:
Вызванными: org.xml.sax.SAXParseException: CVC-комплексе-type.2.4.a: Invalid контент был найден, начиная с элемента 'vm: inbound-endpoint'. Один из «{» http://www.mulesoft.org/schema/mule/core ": аннотаций," http://www.mulesoft.org/schema/mule/core ": заказ агрегация стратегия" http://www.mulesoft.org/schema/mule/core ": резьбонарезной профиль," http://www.mulesoft.org/schema/mule/core ": абстрактно-сообщение-процессор" http://www.mulesoft.org/schema/mule/core ": абстрактно-исходящий конечная точка," http://www.mulesoft.org/schema/mule/core ": abstract-mixed-content-message-processor} '. на org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException (Unknown Source)
спасибо за ответ, я пробовал подход. проблема состоит в том, что эти два сообщения должны быть агрегированы. Я отправляю комбинированное сообщение в другой поток через jms после агрегации. то этот поток редактирует данные и отправляет их обратно в интеграцию-internetsolutionsFlow1 –
Создайте пустой глобальный Arraylist, используя MEL, и добавьте в него сообщение [message.payload] после конечной точки VM ... Затем получите значение списка в любой поток ... Проверьте эту ссылку: - http://forum.mulesoft.org/mulesoft/topics/how_to_define_a_global_arraylist_or_map_varible_to_record_data –
спасибо, что работает! –