0

Mule 3.4 只创建了默认的 16 个线程,并且没有采用下面我的代码中指定的任何配置。

  1. MaxActive="100" 没有创建,它只是创建了 16 个线程并处理它们。
  2. INITIALISE_ALL 也不起作用,它有一个空闲线程,当提交数据时,它会创建 16 并执行该过程。所以,MaxIdle=2 也不起作用(使用 jvisualvm 监控)

为什么它不覆盖默认行为?我错过了什么吗?

我现在面临的最关键的问题是,当我向 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>
4

1 回答 1

0

您正在使用DefaultMessagingExceptionStrategy,并且文档说:

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

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

于 2014-04-13T18:15:21.520 回答