【问题标题】:JMS delivery order in EMS or BWEMS 或 BW 中的 JMS 交货单
【发布时间】:2017-02-22 20:52:51
【问题描述】:

有什么方法可以控制 EMS 或 Tibco 中主题中消息的顺序传递(使用 JMS 主题订阅者)?类似于消息选择器的东西,但不是过滤来进行排序。

我想使用 JMSXDeliveryCount 这样的标头,以便新消息获得更高的优先级。我知道有 RedeliveryDelay,但这仅适用于队列,不适用于主题。

如果我可以在收到主题订阅者的消息后设置它,那么即使是 JMSPriority 也可能是一个选项。我可以这样做吗?也许有一个 Java 代码活动?

【问题讨论】:

    标签: jms tibco tibco-ems tibco-business-works tibco-designer


    【解决方案1】:

    代理将在收到消息时按顺序传递消息,但重新排序消息是分布式计算/EIP 问题(请参阅排序器)。问题是代理不知道有多少消息即将到来或保持窗口打开以重新排序消息多长时间。此活动最好在您的应用程序中了解该信息的代理之外完成。

    EIP 框架和 ESB 在为此类工作流标准化处理程序方面做得很好。

    ref: EIP 排序器http://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageSequence.html

    【讨论】:

    • 我的问题是关于 EMS 而不是 Camel。
    • 对.. 我只是使用 Camel 的文档和语法来说明逻辑/算法。任何 EIP 或集成框架都可以执行该功能。关键是..不要依赖经纪人来做。
    • 我编辑了我的答案以删除对 Camel 重测序器示例的引用
    • 实际上 JMSPriority 已经用于消息排序。如果有更高优先级的消息进来,它将首先重新传递,而不用担心未来的消息。我的问题是我是否可以为重新传递的消息设置此设置。
    【解决方案2】:

    JMSPriority 确实是一个选项,但不能在已收到的消息上设置它。解决方案是确认消息并以不同的优先级重新发布。

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2011-09-06
      • 2011-10-09
      相关资源
      最近更新 更多