关于Oracle的东西,可以参考《Oracle Call Interface Programmer's Guide》
高级队列是在 Oracle Streams 信息集成基础架构上构建的一个独特的数据库集成消息队列特性。使用高级队列,就可以如同从 Oracle 数据库中执行 SQL 操作一样执行消息队列操作。消息队列功能允许 Oracle 数据库上的应用程序通过 AQ 队列中的信息进行异步传递。与数据库的集成使消息队列的功能性、操作简单性、可靠性以及安全性都达到了前所未有的水平。它为消息队列领域提供独特的信息管理功能性,例如审计和跟踪。AQ 还拥有诸如电子信函通知和转换等有助于电子商务的其他特性。AQ 操作也可通过 HTTP 和 Email 在网络上执行。AQ 也提供消息处理网关自动对 IBM 的 MQ Series 队列进行消息发送。
Function |
Purpose |
OCIAQDeq() |
Advanced Queuing dequeue |
OCIAQDeqArray() |
Dequeues an array of messages |
OCIAQEnq() |
Advanced Queuing enqueue |
OCIAQEnqArray() |
Enqueues an array of messages |
OCIAQListen() |
Listens on one or more queues on behalf of a list of agents |
OCISubscriptionEnable() |
Enables notifications on a subscription |
OCISubscriptionPost() |
Posts to a subscription to receive notifications |
OCISubscriptionRegister() |
Registers a subscription |
OCISubscriptionUnRegister() |
Unregisters a subscription |
在公司的自己的体系中,AQ的作用主要是体现在MBOX消息队列的实现上。BG与其他进程通信基本上依赖于此。
存放AQ消息队列的数据库表:
BGMBOXTABLE1,BGMBOXTABLE2,WISMBOXTABLE1,WISMBOXTABLE2
想要创建这些AQ的表,需要用到:
dbms_aqadm.create_queue_table
dbms_aqadm.create_queue
dbms_aqadm.start_queue
dbms_aqadm.grant_queue_privilege