【问题标题】:Propagating message's through multiple queues通过多个队列传播消息
【发布时间】:2017-04-23 13:32:07
【问题描述】:

是否可以通过几个队列传播消息? f.e.我有两个远程和本地数据库,在远程我有一个 aq 表 AQ1,在本地我有两个 aq 表 AQ2 和 AQ3。是否可以安排从 AQ1 到 AQ2 再从 AQ2 到 AQ3 的传播,所以我在 AQ2 中从 AQ1 收到的消息会自动传播到 AQ3?

我问这个是因为我有这个问题,当消息从 AQ1 传播到 AQ2 时,它不会自动传播到 AQ3。当我查看user_queue_schedules 时,甚至没有触发到 AQ3 的传播。但是,如果我将消息排队到 AQ2,它确实会传播到 AQ3。

【问题讨论】:

    标签: oracle plsql propagation advanced-queuing


    【解决方案1】:

    当您考虑传播时,当您将消息传播到另一个队列时,它会将消息排入该队列并且应该触发传播到第三个队列,这有点合乎逻辑。但是,当您更好地考虑传播的工作原理时,不应该触发到第三个队列的传播是合乎逻辑的。如果您在消息的入队过程中未指定收件人,则传播会采用订阅该 aq 表的默认代理并向它们发送消息,因此它将消息排入第二个队列,收件人是该队列,因此无法将消息传播到第三个队列,因为该队列不是收件人。解决方法是在消息入队到第二个队列时添加回调过程,以将该消息出队并将其入队到第三个队列。或者简单地创建一个作业,每隔几秒钟运行一次,将新消息出列并将它们排入第三个队列。

    如果我对此有误,请告诉我。

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 2023-03-04
      • 2017-03-23
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多