简体   繁体   English

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

[英]Mule VM - data loss / Not processing all data in the VM

Mule 3.4 is creating only the default 16 threads and didn't take any configurations specified in my code below. Mule 3.4仅创建默认的16个线程,并且未采用我的以下代码中指定的任何配置。

  1. MaxActive="100" is not created, it just creates 16 threads and process them. MaxActive =“ 100”未创建,它仅创建16个线程并对其进行处理。
  2. INITIALISE_ALL is also not working, it is having one idle thread and when data is submitted, then it creates the 16 and do the process. INITIALISE_ALL也不起作用,它有一个空闲线程,并且在提交数据时,它将创建16个线程并执行该过程。 so, MaxIdle=2 is also not working (Monitored using jvisualvm) 因此,MaxIdle = 2也不起作用(使用jvisualvm进行监视)

Why does it not override the default behavior? 为什么不覆盖默认行为? Am I missing something? 我想念什么吗?

The most critical issue, I face now is, when I submit some 28 ids to the VM, it process some of them, and there is no clue about the remaining and there is no specific number / pattern for this. 我现在面临的最关键的问题是,当我向虚拟机提交大约28个ID时,它会处理其中的一些ID,并且没有任何关于剩余ID的线索,并且对此也没有特定的编号/模式。 (I'm unable to replicate the issue in my local box, this is happening in higher env like QA, UAT boxes and it was working without this issue as mentioned above before). (我无法在本地机器中复制该问题,这在更高质量的环境(例如质量检查和UAT机器)中发生,并且如上所述,它在没有此问题的情况下也可以正常工作)。 Please help. 请帮忙。

<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>

You are using DefaultMessagingExceptionStrategy , and the documentation says: 您正在使用DefaultMessagingExceptionStrategy文档中说:

This is the default exception handler for flows and services. 这是流和服务的默认异常处理程序。 The handler logs errors and will forward the message and exception to an exception endpoint if one is set on this Exception strategy. 如果在此异常策略上设置了错误,处理程序将记录错误,并将消息和异常转发到异常端点。 If an endpoint is configured via the element, a Dead Letter Queue pattern is assumed and so the transaction will commit. 如果通过元素配置了端点,则假定使用死信队列模式,因此事务将提交。 Otherwise, the transaction will rollback, possibly causing the source message to be redelivered (depends on the transport). 否则,事务将回滚,可能导致重新发送源消息(取决于传输)。

So you should probably check the logs and the exception endpoint you seem to have configured. 因此,您可能应该检查日志和您似乎已配置的异常端点。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM