1

有什么方法可以在子流程中确认 JMS 消息?

我有以 JMS 队列接收器(或 JMS 主题订阅者)开头的进程 A。它调用必须确认收到的消息的进程 B - 我正在使用 Tibco EMS 显式确认模式。

这将允许我重复使用某些部分。有可能做到吗?

4

2 回答 2

1

恐怕这是不可能的。确认必须始终与接收方处于同一进程中。

于 2016-12-08T21:33:14.817 回答
1

在设计良好的体系结构中,您不想拆分消息传递(和确认)层,而是将所有功能处理推入具有结果参数的子流程,该结果参数指示是否应保留初始消息(将处理推迟到以后的时间不确认)或将其标记为“已处理”(并确认)。

默认情况下,所有 (JMS) 消息都是自动确认的,因此显式确认是您在流程启动器/步骤的配置选项卡中做出的设计选择(基于特定的消费模型)。仅当您知道该消息会发生什么并且可以延迟处理时,您才应该使用它。从数据库的角度来看,大多数松散耦合的消息传递不是“事务性的”(除非您决定加倍努力)——因此,如果您没有特殊的处理需求,请坚持使用自动确认!BW/EMS 在处理(相当小的)消息方面非常好,因此如果处理不当,不自动确认可以在几毫秒内创建重新传递并淹没整个系统(堆空间)。

于 2018-09-15T07:08:48.993 回答