
use the appropriate permissions to packages and to handle the queues.use the multiple consumers flag declaring the queue table.use the appropriate namespace registering the listener with Dbms_Aq.Register.use the appropriate parameters adding the subscriber.There are some things that you need to be careful on using aq: The same example was runned in a Oracle 10gR2 instance and it works perfectly. I ran the same example downloading a Oracle 11g R2 xe database and it worked. I was abled to enqueue, dequeue, purge the queue but the listener created with Dbms_Aq.Register didn't work. In particular I've followed this link to built my own sample, executing the demo in a Oracle 11gR2 enterprise database.

some bugs has been reported about issues with Oracle Aq.

You need to be careful with the database version. Subscriber => SYS.AQ$_AGENT('queue_subscriber', 'message_queue',NULL)) Message_properties => message_properties,ĭBMS_AQADM.ADD_SUBSCRIBER (queue_name => 'message_queue',

Message_properties DBMS_AQ.MESSAGE_PROPERTIES_T Queue_payload_type => 'queue_message_type',ĭBMS_AQADM.START_QUEUE (queue_name => 'message_queue') ĬREATE OR REPLACE PROCEDURE queue_callback(Ĭontext RAW, reginfo SYS.AQ$_REG_INFO, descr SYS.AQ$_DESCRIPTOR, payload RAW, payloadl NUMBER) AS I have a trigger that enqueues a message, and I can see it on the queue message table, and I can dequeue it by hand and process it, I just can't get the callback to fire on enqueue. I'm trying to create a queue and a callback that triggers when a message is queued, but I can't get the callback to trigger.
