EJB 3中的失败重试

时间:2017-07-23 19:46:01

标签: java java-ee ejb-3.1

我们最近已将EJB 2应用程序迁移到EJB 3.在EJB2中,如果onMessage容器中的某些失败将能够在配置的次数上重试消息,但是在EJB3中没有这样的选项。可以有人帮助这个

我们可以显式地休眠线程并在onMessage中显式重试吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

  1. 如果您使用的是容器管理的@TransactionManagement(value= TransactionManagementType.CONTAINER) 事务然后在异常,消息将退休10次 在将消息发送到DLQ之前。
  2. 如果您没有使用Activemq RA,那么可以使用以下两个文件 如果您正在进行容器管理事务,则对您有用 Redelivery and Exception HandlingManaging Rolled Back, Recovered, Redelivered, or Expired Messages
  3. 如果您使用的是ActiveMq资源适配器,请使用 MaximumRedeliveries Resource Adapter properties
  4. 否则,如果您只想在特定的例外情况下重试,那么您可以 捕获异常,然后将消息发送回同一队列 并有这个额外的财产。 Activemq consume message after delay interval另外,在邮件头中设置重试计数 这样你就可以跟踪重试。