Java OpenJMS重新传递和延迟消息
我有一个JMS队列的使用者。在消费过程中可能会发生异常,我需要再次触发该过程。 我有两个初步计划:Java OpenJMS重新传递和延迟消息,java,jms,openmq,openjms,Java,Jms,Openmq,Openjms,我有一个JMS队列的使用者。在消费过程中可能会发生异常,我需要再次触发该过程。 我有两个初步计划: 设置为“确认”javax.jms.Message#acknowledge()在处理成功时删除消息,调用javax.jms.Session#recover()在处理失败时通知OpenMQ重新传递消息。但是我找不到一种方法来设置最大的重新交付次数和重新交付之间的时间间隔 设置为“确认”。每次发生异常时,向新队列发送一条新消息(包含原始消息和处理时间),我希望能够设置延迟时间。但是,我找不到设置消息延迟
javax.jms.Session#recover()
在处理失败时通知OpenMQ重新传递消息。但是我找不到一种方法来设置最大的重新交付次数和重新交付之间的时间间隔对于选项#2,您可以查看JMS 2.0延迟交付特性,只需将延迟放回同一队列即可。IBM MQ JMS实现了一种有害消息功能,如果消息的回退计数超过阈值,消息将被移动到回退队列,我不知道OpenMQ是否实现了类似的功能。我已经通过OpenMQ实现了延迟消息。我从一个未实现JMS2.0API的依赖项包开始:
com.sun.messaging.mq:imq:4.6-b01
,然后根据您的评论找到另一个依赖项包org.glassfish.mq:imq:5.1
。你知道他为什么更改组id吗@对于选项#2,您可以查看JMS 2.0延迟交付特性,只需延迟返回到同一队列即可。IBM MQ JMS实现了一种有害消息功能,如果消息的回退计数超过阈值,消息将被移动到回退队列,我不知道OpenMQ是否实现了类似的功能。我已经通过OpenMQ实现了延迟消息。我从一个未实现JMS2.0API的依赖项包开始:com.sun.messaging.mq:imq:4.6-b01
,然后根据您的评论找到另一个依赖项包org.glassfish.mq:imq:5.1
。你知道他为什么更改组id吗@约什麦克