【问题标题】:Advanced Oracle AQ Dequeue Order高级 Oracle AQ 出队顺序
【发布时间】:2015-09-12 18:30:53
【问题描述】:

我有一个 Java 应用程序,它使用 Oracle 队列将消息存储在队列中,以便稍后由多个线程使用排队消息进行处理。此队列中的消息可以相互关联,因此必须根据我的应用程序的业务逻辑按特定顺序进行处理。基本上,我想实现只要队列中的另一条消息 B 尚未完全处理,一条消息 A 的出队就会被阻止。我在这里看到的 Oracle AQ 提供的唯一武器是延迟和优先级参数。然而,这些不能用于实现上述场景,因为在某些情况下,两个相关消息仍然可以同时出队和处理。是否有任何工具可以帮助建立消息的高级处理顺序?

【问题讨论】:

  • 消息之间的关系是如何建模的?您可以使用相关 ID 或选择器。

标签: multithreading oracle message-queue priority-queue oracle-aq


【解决方案1】:

我得出的结论是,使用队列对这些消息进行排序不是一个好主意,因为它需要一个自定义且非常专业的出队策略,这对我来说很难闻,既复杂又很可能表现明智。它还尝试使用队列修复通信协议问题,这些问题是特定于应用程序的,因此应该在应用程序本身中找到处理。相反,应用程序/通信协议应该足够宽容以处理排序问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2016-01-20
    • 2014-05-22
    相关资源
    最近更新 更多