我有两个组件通过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>
谢谢。
DLQ仅获取在消息处理期间引发异常的消息。如果消费者断开连接,则消息将仍然坐在那里等待发送
如果看到一个问题,即服务器重启期间消息到达DLQ,这表明您的使用者正在消耗消息,而所需的资源却不可用,因此在处理消息时也会出错。您最好将自己的使用者修复为不要过早开始使用消息,而不是尝试从DLQ找回失败的消息