Jboss MDB事务重试间隔

Jboss MDB事务重试间隔,jboss,jms,hornetq,message-driven-bean,Jboss,Jms,Hornetq,Message Driven Bean,我们可以在MDB中控制事务重试间隔吗?如果是这样的话,请提供一个例子或指导我的文件。我们希望为MDB事务设置3分钟的时间间隔。如果查询第一次失败,则在3分钟后重试。Vairam 看一下大黄蜂的文档。你需要考虑的问题是: 重新交付延迟(您表示为3分钟) 应重新传递消息的次数 如果您选择不无限期重新交付,则最后一次重新交付尝试失败时发生的最终操作可能是: 放下邮件 将消息排队到指定的DLQ 将消息排入其他队列 设置重新交付延迟 延迟重新交付在地址设置配置中定义 例如: <!-- de

我们可以在MDB中控制事务重试间隔吗?如果是这样的话,请提供一个例子或指导我的文件。我们希望为MDB事务设置3分钟的时间间隔。如果查询第一次失败,则在3分钟后重试。

Vairam

看一下大黄蜂的文档。你需要考虑的问题是:

  • 重新交付延迟(您表示为3分钟)
  • 应重新传递消息的次数
  • 如果您选择无限期重新交付,则最后一次重新交付尝试失败时发生的最终操作可能是:
    • 放下邮件
    • 将消息排队到指定的DLQ
    • 将消息排入其他队列
设置重新交付延迟

延迟重新交付在地址设置配置中定义

例如:

 <!-- delay redelivery of messages for 3m -->
 <address-setting match="jms.queue.exampleQueue">
    <redelivery-delay>300000</redelivery-delay>
 </address-setting>
 <!-- undelivered messages in exampleQueue will be sent to the dead letter address 
    deadLetterQueue after 3 unsuccessful delivery attempts
  -->
 <address-setting match="jms.queue.exampleQueue">
    <dead-letter-address>jms.queue.deadLetterQueue</dead-letter-address>
    <max-delivery-attempts>3</max-delivery-attempts>
 </address-setting>

300000
设置重新交付和DLQ配置的最大数量

这可以通过在地址设置配置中指定DLQ配置以声明方式定义:

例如:

 <!-- delay redelivery of messages for 3m -->
 <address-setting match="jms.queue.exampleQueue">
    <redelivery-delay>300000</redelivery-delay>
 </address-setting>
 <!-- undelivered messages in exampleQueue will be sent to the dead letter address 
    deadLetterQueue after 3 unsuccessful delivery attempts
  -->
 <address-setting match="jms.queue.exampleQueue">
    <dead-letter-address>jms.queue.deadLetterQueue</dead-letter-address>
    <max-delivery-attempts>3</max-delivery-attempts>
 </address-setting>

jms.queue.deadLetterQueue
3.

如果要在指定次数的重新传递失败后删除邮件,请检查邮件标题值“JMSXDeliveryCount”,如果该值等于最大重新传递次数,只需取消任何异常并提交事务即可。

感谢您的重播nicholas。我们正在与hornetq一起使用jms。您好,非常感谢您的回复。是否有任何API来查看队列中的消息数。以便我们查看队列中的消息。