如何在流FAULT中从JMS队列(消息处理器)中删除消息?

时间:2014-07-25 21:12:07

标签: wso2 wso2esb wso2carbon

通常在处理(MessageProcessor)JMS队列中发生错误并转到faultSequence并且不从队列中删除。我怀疑是在一些故障代码中我需要从JMS队列中删除消息,即使是故障。你能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

如果您使用的是邮件转发处理器,则无法从队列中删除该邮件。它将继续尝试,直到它成功发送消息。

您可以将Message Sampling Processor用作您的用例,Sample Message处理器只发送一次消息并将其从队列中删除。如果您发现它是一次错误的尝试,您可以根据在faultSequence中获得的故障代码再次将消息插入队列。

答案 1 :(得分:1)

您可能在事务下运行处理器,在axis2.xml的JMS侦听器配置中包含以下内容:

<parameter name="transport.jms.SessionTransacted">true</parameter>

将此参数更改为false将使您从其读取的队列中删除失败的消息。