Mule VM - 数据丢失/不处理VM中的所有数据

时间:2014-04-12 18:52:43

标签: multithreading virtual-machine mule endpointbehavior

Mule 3.4仅创建默认的16个线程,并且未采用我的代码中指定的任何配置。

  1. MaxActive =“100”未创建,它只创建16个线程并处理它们。
  2. INITIALISE_ALL也无效,它有一个空闲线程,当提交数据时,它会创建16并执行该过程。所以,MaxIdle = 2也不起作用 (使用jvisualvm监控)
  3. 为什么不覆盖默认行为?我错过了什么吗?

    我现在面临的最关键问题是,当我向VM提交了大约28个ID时,它会处理其中的一些,并且没有关于剩余部分的线索,并且没有特定的数字/模式。 (我无法在我的本地方框中复制这个问题,这种情况发生在更高的环境中,如QA,UAT盒子,并且如前所述它没有出现这个问题)。请帮忙。

    <flow name="Event0">
        <vm:inbound-endpoint ref="PROCESS.EVENT0" />
        <pooled-component>
            <spring-object bean="abcProcess" />
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL" maxActive="100" maxIdle="2"    maxWait="20000" />
        </pooled-component>
        <custom-exception-strategy class="org.mule.exception.DefaultMessagingExceptionStrategy">
            <commit-transaction exception-pattern="*" />
            <vm:outbound-endpoint ref="ErrorHandlerInput" />
        </custom-exception-strategy>
    </flow>
    

1 个答案:

答案 0 :(得分:0)

您正在使用DefaultMessagingExceptionStrategydocumentation说:

  

这是流和服务的默认异常处理程序。该   处理程序记录错误,并将消息和异常转发给   异常端点(如果在此异常策略上设置了一个)。如果   端点是通过元素配置的,死信队列模式是   假设,因此交易将提交。否则,交易   将回滚,可能导致重新传递源消息   (取决于运输)。

因此,您应该检查日志和您似乎已配置的异常终端。