gpt4 book ai didi

java - Oracle AQ 出队顺序

转载 作者:行者123 更新时间:2023-11-30 05:15:03 25 4
gpt4 key购买 nike

Oracle 10g 中的触发器为常规表中的行子集生成更新插入和删除消息。这些消息由两个字段组成:

  • 唯一的行 ID。
  • 非唯一 ID。

当使用这些消息时,我想对遵守以下约束的双端队列进程施加一个顺序:

  • 消息必须按插入顺序出队。
  • 属于同一 id 的消息必须以这样的方式出队:任何其他出队进程都不能使具有该 id 的潜在后继消息出队。由于消息是使用触发器生成的,因此我无法使用组来实现此目的。

我正在使用 AQ 的 Oracle Java 接口(interface)。有关如何实现这一目标的任何指示?

最佳答案

我认为默认的出队顺序是先进先出,因此它们将以与入队相同的顺序出队。

对于你的第二点,你是说你想在非唯一 ID 上序列化出队吗?也就是说,您的队列中基本上有许多队列,并且您只希望一项作业在任何时间消耗来自每个队列的消息?

即,您有消息:

1 | a
2 | a
3 | b
4 | a

这里有两种类型的记录(a 和 b),并且您希望一个作业消耗所有 a,另一个作业消耗所有 b。如果是这种情况,是否考虑创建多个队列?

如果多个队列失败,请查看传递给出队过程的 dequeue_options_t 类型 - 最值得注意的是 dequeue_condition - 这允许您仅选择特定消息,因此您可以为所有 a 启动一个作业,并为所有 a 启动另一个作业b 等

关于java - Oracle AQ 出队顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1763970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com