Oracle AQ 的重新排队
我正在尝试将通用 pl/sql 写入(重新)排队已排队的消息(以任何状态出现在队列表中)。
当在队列上启用出队时它工作正常,因此我可以首先在浏览模式下出队,以便填充 DBMS_AQ.message_properties_t 并从现有消息加载。但是当出队被禁用时我怎样才能获取这些呢?
DBMS_AQ.enqueue(
queue_name => fine,
enqueue_options => fine,
message_properties => how from existing message,
payload => how from existing message
(probably can select, not big deal),
msgid => fine);
谢谢
I am trying to write universal pl/sql to (re)enqueue message already enqueued (present in queue table in whatever state).
It works fine when dequeue is enabled on the queue so I can dequeue first in browse mode in order to populate DBMS_AQ.message_properties_t
and load from existing message. But how can I fetch those when dequeue is disabled?
DBMS_AQ.enqueue(
queue_name => fine,
enqueue_options => fine,
message_properties => how from existing message,
payload => how from existing message
(probably can select, not big deal),
msgid => fine);
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Oracle 网站上有一个很好的示例说明如何执行此操作:
http://download.oracle.com/docs/cd /B10500_01/appdev.920/a96587/apexampl.htm
基本上,您可以以非破坏性方式“出队”(IE出于浏览目的而出队)。因为您没有出列,所以消息仍然保留在原处。
There is a great example of how to do this on Oracle's site:
http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96587/apexampl.htm
Basically you can "dequeue" in a non destructive fashion (IE dequeue for purposes of browsing). Because you aren't dequeuing though, the message still stay in place.
无论是在浏览还是删除模式下,您必须启用出列才能获取消息:
You HAVE to enable DEQUEUING in order to get a message, no matter if in browse or remove mode: