我有IBM的基本流程,具有所有默认设置(Ack AUTO
)。如果流在中间抛出错误,则消息在循环中开始运行,而不结束线程。
我预计,由于它是AUTO
,它应该通过查看错误来结束线程。
据我所知,在旧版本3.6中,它在ACK mode AUTO
中运行得很好。
在Mule4 -设置ACK Manual
或Immediate
时,它工作得很好。
我尝试将IBM连接器更新为v1.6.0
,并将所有客户端jar更新为最新的'9.1.2.0‘。所有的行为都一样。
有谁能解释一下,这是IBM连接器在Mule4和ACK mode AUTO
中的默认行为。有人能指出我错过了什么吗?
我正在使用Mule版本: 4.2.2
<ibm-mq:config name="IBM_MQ_Config" doc:name="IBM MQ Config" doc:id="a217b071-0d6b-4674-8696-0a74c8e8b4ee" sendCorrelationId="ALWAYS">
<ibm-mq:connection username="admin" password="passw0rd">
<ibm-mq:connection-mode >
<ibm-mq:client host="${mq.inbound.host}" queueManager="${mq.inbound.queueManager}" channel="${mq.inbound.channelName}" port="${mq.inbound.port}"/>
</ibm-mq:connection-mode>
</ibm-mq:connection>
<flow name="NotificationFlow" doc:id="a275ef91-8608-49a5-adcc-624c2dc6aacd" >
<ibm-mq:listener doc:name="On New Message" doc:id="5de4cf1b-bd66-4519-b170-69f2159bd8b4" config-ref="IBM_MQ_Config" destination="testQ" ackMode="AUTO"/>
<logger level="INFO" doc:name="Logger" doc:id="9c4c241b-d564-44ff-a2a3-6433e48ddf0a" />
<ee:transform doc:name="Transform Message" doc:id="46c10c0c-3f0a-4184-a722-7caab39ca97d" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
import * from dw::Runtime
var result = []
output application/java
---
if(sizeOf(result) <= 0) fail('Data was empty') else result]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
https://stackoverflow.com/questions/62385673
复制相似问题