交易批量发布 Spring JMS 和 Websphere MQ

Transacting bulk publishing Spring JMS and Websphere MQ

我需要一次向 N 个主题发送多条消息。消息知道如何路由自己。如果任何发布失败,则所有先前的发布都需要回滚。这在 Websphere MQ 上是否可行,如果可行,如何实现?

如果 "any of the publications fails" 是指将发布传递给 QMgr,则将所有消息放在一个工作单元下,然后发出 COMMIT.

如果 "any of the publications fails" 是指消息最终发送给订阅者,则不会。这是异步消息传递。异步消息传递的基本思想是将发送和接收消息的应用程序解耦。根据设计,发送应用程序在 PUT 时间不知道接收应用程序是否可以收到消息。 Pub/Sub 通过允许发布者和订阅者动态加入或离开而不影响现有消息分发,更进一步。

在异步消息传递设计中,如果需要考虑向一定数量的收件人发送邮件,通常会使用分发列表而不是 Pub/Sub(因为如果您事先知道订阅者是谁并且它不改变一个列表就足够了),确认收到的确认消息,以及补偿交易以消除错误条件。