我有两个组件通过Wildfly实例中的jms队列进行通信。一旦队列的使用者断开连接或被停止,消息就会转发到DLQ(至少在重新启动wildfly时)。
是否可以将wildfly配置为在使用者重新连接到队列后自动从DLQ重新传递消息?
一些细节
Wildfly版本:8.2.0
standalone.xml-据我所知,没什么特别的
<jms-destinations>
<jms-queue name="ExpiryQueue">
<entry name="java:/jms/queue/ExpiryQueue"/>
<durable>false</durable>
</jms-queue>
<jms-queue name="DLQ">
<entry name="java:/jms/queue/DLQ"/>
<durable>false</durable>
</jms-queue>
...
<jms-queue name="Q1-Producer-to-Consumer">
<entry name="java:/queue/Q1-Producer-to-Consumer"/>
<entry name="java:jboss/exported/queue/Q1-Producer-to-Consumer"/>
<durable>false</durable>
</jms-queue>
</jms-destinations>
谢谢。
答案 0 :(得分:0)
DLQ仅获取在消息处理过程中引发异常的消息。如果消费者断开连接,这些消息将仍然坐在那里等待发送
如果您看到一个问题,即在服务器重新启动期间消息到达DLQ的问题,则表明您的使用者在消耗其所需资源之前正在消耗消息,因此在处理消息时也会出错。最好让您的使用者不要过早开始使用消息,而不是尝试从DLQ找回失败的消息