我正在使用来自 JMS 队列的消息并将其提交到基于 SOAP 的 Web 服务。我想确保向我提交消息的 Web 服务提供有保证的消息传递。
我正在考虑两个选项 1. 使用直到成功的路由器(首选),如果无法传输消息,则将其放入死信队列。2. 使用 JMS 事务,如果向 Web 服务的消息传输失败,则回滚事务并且 JMS 消息留在队列中。
<jms:inbound-endpoint queue="ws.message"/>
<until-successful objectStore-ref="objectStore"
dlqEndpoint-ref="dlqChannel"
maxRetries="3"
secondsBetweenRetries="10">
...
</until-successful>
我更倾向于使用直到成功的路由器,但我担心的是它需要一个强制性的 ObjectStore。我不想将消息存储在数据库/对象存储中,而是将其推送到某个 JMS 队列/死信队列并从那里使用它。
任何有用的提示或建议来处理这种情况表示赞赏。