Асинхронная область не работает в кластеризации в муле 3.4.2
Асинхронная область не работает в кластеризации в муле 3.4.2. мы получаем ниже исключения.
Message : Interrupted while queueing event for "SEDA Stage Main_Flow.async1". Message payload is of type: ConfirmReceiveMessageResponse
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. com.sample.client.ReceiveMessageResponse (java.io.NotSerializableException)
java.io.ObjectOutputStream:1183 (null)
2. java.io.NotSerializableException: com.elexon.bmrs.ecp.client.ReceiveMessageResponse (org.apache.commons.lang.SerializationException)
org.apache.commons.lang.SerializationUtils:111 (null)
3. Interrupted while queueing event for "SEDA Stage Main_Flow.async1". Message payload is of type: ConfirmReceiveMessageResponse (org.mule.api.service.FailedToQueueEventException)
org.mule.processor.SedaStageInterceptingMessageProcessor:92 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/service/FailedToQueueEventException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.io.NotSerializableException: com.sample.client.ReceiveMessageResponse
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.apache.commons.collections.map.AbstractHashedMap.doWriteObject(AbstractHashedMap.java:1182)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
После удаления асинхронной области мы можем протестировать приложение. Не могли бы вы помочь нам, как заставить приложение работать с async в кластере env?
1 ответ
Если в ссылке на поток используется стратегия асинхронной обработки, он попытается сохранить событие в кластере, как я полагаю. И ваш объект не сериализуем.
Ты можешь сделать com.sample.client.ReceiveMessageResponse
воплощать в жизнь java.io.Serializable
если вы хотите, чтобы сообщение было сохранено.
Или вы можете попытаться форсировать поток, который вы используете. processingStrategy="synchronous"
может быть.