问题标签 [openmq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

spring - 如何让 OpenMQ 重新传递消息?

我异步收听了一个 OpenMQ 队列。如果我在消费消息的过程中出现异常,有没有办法让 OpenMQ 再次将该消息推送给我?

0 投票
0 回答
57 浏览

java - OpenJMS 重新传递和延迟消息

我有一个 JMS 队列的消费者。消费过程中可能出现异常,需要再次触发流程。我有两个初步计划:

  1. 将确认设置为javax.jms.Session.CLIENT_ACKNOWLEDGEjavax.jms.Message#acknowledge()处理成功时调用删除消息javax.jms.Session#recover(),处理失败时调用通知OpenMQ重新传递消息。但我找不到设置最大重新交付次数和重新交付时间间隔的方法。

  2. 将确认设置为javax.jms.Session.AUTO_ACKNOWLEDGE。每次发生异常时向新队列发送一条新消息(包含原始消息和处理时间),并且我希望能够设置延迟时间。但是,我找不到设置消息延迟时间的方法。

0 投票
0 回答
52 浏览

java - 如何在 messageProducer.send(message) 上识别暂停的队列/代理

我正在尝试添加选项以停止特定队列/目的地的消息的生产和消费。

我发现的方法是调用imqcmd并暂停/恢复物理目的地。这样做,消息不会在暂停队列中结束,这很好,但不幸的是程序没有被告知这一点。

相反,它只是“停止”发送操作。它不会打印任何与调试器一起步进的东西,也不会完成任何事情。调试器只说

当我在此状态下再次恢复队列时,它会立即跳转到下一个断点。

作为替代方案,我尝试暂停代理,这也导致消息未发送,至少我收到以下警告

messageProducer.send(message)有没有办法在为暂停的队列或暂停的代理执行时获得异常?