通过多个队列传播消息

时间:2016-12-08 10:32:26

标签: oracle plsql propagation advanced-queuing

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

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

1 个答案:

答案 0 :(得分:0)

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

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