AQ Notifications in Oracle 11gR1
The AQ notification process has changed from release 10gR2 to 11gR1. The most notable change is the switch from using DBMS_JOB jobs to DBMS_SCHEDULER jobs.
In 10gR2 the notification process goes like this:
- Message gets enqueued to the User queue.
- The EMON process is notified that a message has been placed in the queue.
- EMON enqueues a message into the internal queue
SYS.AQ_SRVNTFN_TABLE_Q. - EMON creates a
DBMS_JOBjob to dequeue from the internal queue. - The job is run, and dequeues from the internal queue, and then runs the notification callback procedure associated with the User queue.
- The notification procedure then does its business which can include de-queuing the original message from the User queue.
The number of available jobs to run the notifications is limited to the number of JOB_QUEUE_PROCESSES that have been set up for that instance, and each job dequeues one message.
In 11gR1 the notification process is very similar but instead of creating a DBMS_JOB job it creates a DBMS_SCHEDULER job.
This, in itself, is not very different but here’s the big difference: Read the rest of this entry . . .
