【发布时间】:2016-12-08 12:31:06
【问题描述】:
有什么方法可以在子流程中确认 JMS 消息吗?
我有一个以 JMS 队列接收器(或 JMS 主题订阅器)开头的进程 A。它调用必须确认收到的消息的进程 B - 我正在使用 Tibco EMS 显式确认模式。
这将允许我重复使用某些部分。有可能吗?
【问题讨论】:
标签: tibco tibco-designer
有什么方法可以在子流程中确认 JMS 消息吗?
我有一个以 JMS 队列接收器(或 JMS 主题订阅器)开头的进程 A。它调用必须确认收到的消息的进程 B - 我正在使用 Tibco EMS 显式确认模式。
这将允许我重复使用某些部分。有可能吗?
【问题讨论】:
标签: tibco tibco-designer
恐怕这是不可能的。确认必须始终与接收方处于同一进程中。
【讨论】:
在设计良好的架构中,您不想拆分消息传递(和确认)层,而是将所有功能处理推入一个子流程,该子流程具有一个结果参数,指示是否应保留初始消息(将处理推迟到稍后通过不确认)或将其标记为“已处理”(并确认)。
默认情况下,所有 (JMS) 消息都是自动确认的,因此显式确认是您在流程启动器/步骤的配置选项卡中做出的设计选择(基于特定的消费模型)。仅当您知道该消息会发生什么并且可以延迟处理时,您才应该使用它。从数据库的角度来看,大多数松散耦合的消息传递都不是“事务性的”(除非您决定加倍努力) - 因此,如果您没有特殊的处理需求,请坚持使用自动确认! BW/EMS 在处理(相当小的)消息方面非常出色,因此如果处理不当,不自动确认可以在几毫秒内创建重新传递,并淹没整个系统(堆空间)。
【讨论】: