跳到主要内容

在PubSub+ JCSMP API中的事务中发布消息

要以事务方式发布保证消息,必须首先在事务会话中建立生产者流。对于 PubSub+ JCSMP API,客户端应用程序必须从事务会话中获取一个 XMLMessageProducer

建立生产者流后,可以通过 XMLMessageProducer.send(...) 方法发布保证消息。

在事务中,事件代理会暂存发布的消息,直到客户端提交事务之前,这些消息不会被投递到事件代理上的目标端点。成功的提交会将消息投递到目标端点,并移除暂存信息。

端点的消息丢弃行为如何影响事务

当在事务中发布的消息在提交时无法成功存储到其目标端点中的任何一个时,该消息将被丢弃。在这种情况下,提交是否成功取决于端点的消息丢弃行为属性,该属性决定了端点如何处理被丢弃的消息。

如果端点的消息丢弃行为属性未启用,则消息将“静默”丢弃,即端点丢弃消息但向客户端返回提交成功响应,提交完成。在这种情况下,该消息可以被存储到它可能被投递到的其他端点。

默认情况下,当配置队列时,消息丢弃行为属性是启用的;当配置主题端点时,默认情况下该属性未启用。

有关端点的消息丢弃行为属性以及可能导致端点不存储然后丢弃消息的条件的信息,请参阅在 PubSub+ JCSMP API 中定义端点属性。