通常在处理(MessageProcessor)JMS队列中发生错误并转到faultSequence并且不从队列中删除。我怀疑是在一些故障代码中我需要从JMS队列中删除消息,即使是故障。你能帮帮我吗?
答案 0 :(得分:2)
如果您使用的是邮件转发处理器,则无法从队列中删除该邮件。它将继续尝试,直到它成功发送消息。
您可以将Message Sampling Processor用作您的用例,Sample Message处理器只发送一次消息并将其从队列中删除。如果您发现它是一次错误的尝试,您可以根据在faultSequence中获得的故障代码再次将消息插入队列。
答案 1 :(得分:1)
您可能在事务下运行处理器,在axis2.xml的JMS侦听器配置中包含以下内容:
<parameter name="transport.jms.SessionTransacted">true</parameter>
将此参数更改为false将使您从其读取的队列中删除失败的消息。