Asynchronous Mule async抛出handleWorkException

Asynchronous Mule async抛出handleWorkException,asynchronous,mule,Asynchronous,Mule,我试图从交换模式为请求-响应的vm入站端点中使用异步作用域。其思想是从vmmainflow异步调用另外两个流。从mule文档中我了解到,当vm与请求-响应交换模式一起使用时,执行在调用vm的同一线程上进行。我现在需要从这个vm流中调用另外两个流,它们是单向的,可以异步调用。但是,当我从mule配置中执行以下操作时,我会得到如下所示的错误。这只会发生在对服务的并发请求中。我不确定从vm调用async的方法。如果这种方法是错误的,请建议我如何去做这件事。我正在考虑使用另一个具有inbound as

我试图从交换模式为请求-响应的vm入站端点中使用异步作用域。其思想是从vmmainflow异步调用另外两个流。从mule文档中我了解到,当vm与请求-响应交换模式一起使用时,执行在调用vm的同一线程上进行。我现在需要从这个vm流中调用另外两个流,它们是单向的,可以异步调用。但是,当我从mule配置中执行以下操作时,我会得到如下所示的错误。这只会发生在对服务的并发请求中。我不确定从vm调用async的方法。如果这种方法是错误的,请建议我如何去做这件事。我正在考虑使用另一个具有inbound as vm(单向)的流,它实际调用了两个流,然后从我的vmmainflow调用新的vm

<flow name="vmmainflow">
    <vm:inbound-endpoint address="vm://vmmainflow"
            exchange-pattern="request-response" /> 
   ........   
    <async>
      <flow-ref name="flow1" /> 
      <flow-ref name="flow2" /> 
   </async> 
   .....
  </flow>

........   
.....
以下是我得到的错误:

      Exception in thread "null.processor.async.2" org.mule.api.MuleRuntimeException: An exception occurred while invoking message processor "DefaultMessageProcessorChain '(inner iterating chain) of 'async' child chain' 
[ 
  org.mule.api.processor.LoggerMessageProcessor@ccf1a3, 
  org.mule.api.processor.LoggerMessageProcessor@1fd937a, 
  org.mule.config.spring.factories.FlowRefFactoryBean$1@16a10c1
]" for asynchronously.
org.mule.processor.AsyncInterceptingMessageProcessor handleWorkException] - Work caused exception on 'workCompleted'. Work being executed was: org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker@483ebe
    at org.mule.processor.AsyncInterceptingMessageProcessor.handleWorkException(AsyncInterceptingMessageProcessor.java:197)
    at org.mule.processor.AsyncInterceptingMessageProcessor.workCompleted(AsyncInterceptingMessageProcessor.java:173)
    at org.mule.work.WorkerContext.run(WorkerContext.java:368)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.ConcurrentModificationException
    at org.apache.commons.collections.map.AbstractHashedMap$HashIterator.nextEntry(AbstractHashedMap.java:1113)
    at org.apache.commons.collections.map.AbstractHashedMap$KeySetIterator.next(AbstractHashedMap.java:938)
    at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
    at org.mule.DefaultMuleMessage.copyMessageProperties(DefaultMuleMessage.java:228)
    at org.mule.DefaultMuleMessage.<init>(DefaultMuleMessage.java:203)
    at org.mule.DefaultMuleMessage.<init>(DefaultMuleMessage.java:279)
    at org.mule.DefaultMuleMessage.newThreadCopy(DefaultMuleMessage.java:1375)
    at org.mule.DefaultMuleEvent.newThreadCopy(DefaultMuleEvent.java:713)
    at org.mule.RequestContext.newEvent(RequestContext.java:135)
    at org.mule.RequestContext.setEvent(RequestContext.java:72)
    at org.mule.construct.SimpleFlowConstruct.process(SimpleFlowConstruct.java:125)
    at org.mule.config.spring.factories.FlowRefFactoryBean$1.process(FlowRefFactoryBean.java:40)
    at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:72)
    at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:89)
    at org.mule.processor.AbstractInterceptingMessageProcessor.processNext(AbstractInterceptingMessageProcessor.java:81)
    at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
    at org.mule.processor.AsyncInterceptingMessageProcessor.processNextTimed(AsyncInterceptingMessageProcessor.java:122)
    at org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker.doRun(AsyncInterceptingMessageProcessor.java:212)
    at org.mule.work.AbstractMuleEventWork.run(AbstractMuleEventWork.java:41)
    at org.mule.work.WorkerContext.run(WorkerContext.java:309)
线程“null.processor.async.2”org.mule.api.MuleRuntimeException中的异常:调用“async”子链的消息处理器“DefaultMessageProcessorChain”(内部迭代链)时发生异常
[ 
org.mule.api.processor。LoggerMessageProcessor@ccf1a3, 
org.mule.api.processor。LoggerMessageProcessor@1fd937a, 
org.mule.config.spring.factories.FlowRefFactoryBean$1@16a10c1
]“用于异步。
org.mule.processor.AsyncInterceptingMessageProcessor handleWorkException]-工作导致“工作完成”异常。正在执行的工作是:org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker@483ebe
位于org.mule.processor.AsyncInterceptingMessageProcessor.handleWorkException(AsyncInterceptingMessageProcessor.java:197)
位于org.mule.processor.AsyncInterceptingMessageProcessor.workCompleted(AsyncInterceptingMessageProcessor.java:173)
位于org.mule.work.WorkerContext.run(WorkerContext.java:368)
位于edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
位于edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
运行(Thread.java:662)
原因:java.util.ConcurrentModificationException
位于org.apache.commons.collections.map.AbstractHashedMap$HashIterator.nextry(AbstractHashedMap.java:1113)
位于org.apache.commons.collections.map.AbstractHashedMap$KeySetIterator.next(AbstractHashedMap.java:938)
位于java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
在org.mule.DefaultMuleMessage.copyMessageProperties上(DefaultMuleMessage.java:228)
在org.mule.DefaultMuleMessage上。(DefaultMuleMessage.java:203)
在org.mule.DefaultMuleMessage上(DefaultMuleMessage.java:279)
位于org.mule.DefaultMuleMessage.newThreadCopy(DefaultMuleMessage.java:1375)
位于org.mule.DefaultMuleEvent.newThreadCopy(DefaultMuleEvent.java:713)
位于org.mule.RequestContext.newEvent(RequestContext.java:135)
位于org.mule.RequestContext.setEvent(RequestContext.java:72)
位于org.mule.construct.SimpleFlowConstruct.process(SimpleFlowConstruct.java:125)
位于org.mule.config.spring.factories.FlowRefFactoryBean$1.process(FlowRefFactoryBean.java:40)
位于org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:72)
位于org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:89)
位于org.mule.processor.AbstractInterceptingMessageProcessor.processNext(AbstractInterceptingMessageProcessor.java:81)
位于org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
在org.mule.processor.AsyncInterceptingMessageProcessor.processNextTimed上(AsyncInterceptingMessageProcessor.java:122)
位于org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker.doRun(AsyncInterceptingMessageProcessor.java:212)
在org.mule.work.AbstractMuleEventWork.run(AbstractMuleEventWork.java:41)上
位于org.mule.work.WorkerContext.run(WorkerContext.java:309)

这对我来说似乎是一个真正的错误。我想不出有什么错误会导致异步消息作用域在复制消息属性时抛出ConcurrentModificationException


也许您的下一步应该是在中创建一个问题。如果您是MuleSoft企业客户,我建议您也在支持门户中创建一个案例。。这有助于将您的问题转移到最前线。我建议将这两个问题都链接到StackOverflow问题。

您能解释一下您的问题吗??。。您需要提供您的Mule配置,以便能够检测到您的所有问题。请使用完整的Mule流程更新您的问题。。请不要在评论部分写下你的骡子流。。这很难读。。请使用您的流程更新问题,请查看更新的question@anirban-你还需要其他信息吗?嗯。。请提供流程1和流程2。。那么就很清楚这些流量的预期是什么。。。同时,请在Async之前放置一个记录器,并按如下方式打印消息负载:-。。。让我知道你得到的价值