Database Reference
In-Depth Information
QMNC and Qnnn: Advanced Queues
The QMNC process is to the AQ tables what the CJQ0 process is to the job table. It monitors the advanced queues and
alerts waiting message dequeuers that a message has become available. QMNC and Qnnn are also responsible for queue
propagation —that is, the ability of a message that was enqueued (added) in one database to be moved to a queue in
another database for dequeueing.
The Qnnn process are to the QMNC process what the Jnnn processes are to the CJQ0 process. They are notified by the
QMNC process of work that needs to be performed, and they process the work.
The QMNC and Qnnn processes are optional background processes. The parameter AQ_TM_PROCESSES specifies
creation of up to 40 of these processes named Qnnn , (where nn is a number 0..15 or a letter a..z) and a single QMNC process.
Unlike the Jnnn processes used by the job queues, the Qnnn processes are persistent. If you set AQ_TM_PROCESSES
to 10, you will see ten Q0nn processes and the QMNC process at database startup and for the entire life of the instance.
Oracle automatically adjusts the number of queue processes and therefore rarely do you need to
set AQ_TM_PROCESSES manually. If you do set this parameter, Oracle still automatically adjusts the number of
processes spawned, and uses the value of AQ_TM_PROCESSES as a minimum number of processes to create.
Starting with Oracle 12 c , there's an advanced Queue process Coordinator ( AQPC ) process. Its purpose is to
create and manage master advanced queuing processes (starting, stopping, and so on). Statistics related to this process
can be queried from the GV$AQ_BACKGROUND_COORDINATOR view.
Note
EMNC: Event Monitor Processes
The EMNC process is part of the AQ architecture. It is used to notify queue subscribers of messages they would be
interested in. This notification is performed asynchronously. There are Oracle Call Interface (OCI) functions available
to register a callback for message notification. The callback is a function in the OCI program that will be invoked
automatically whenever a message of interest is available in the queue. The EMNn background process is used to
notify the subscriber. The EMNC process is started automatically when the first notification is issued for the instance.
The application may then issue an explicit message_receive(dequeue) to retrieve the message.
MMAN: Memory Manager
This process is available starting with Oracle 10 g and above and is used by the automatic SGA sizing feature. The MMAN
process coordinates the sizing and resizing of the shared memory components (the default buffer pool, the shared
pool, the Java pool, and the large pool).
MMON, MMNL, and Mnnn: Manageability Monitors
These processes are used to populate the Automatic Workload Repository (AWR), a feature available starting with
Oracle 10 g . The MMNL process flushes statistics from the SGA to database tables on a scheduled basis. The MMON process
is used to auto-detect database performance issues and implement the self-tuning features. The Mnnn processes are
similar to the Jnnn or Qnnn processes for the job queues; the MMON process will request these slave processes to perform
work on its behalf. The Mnnn processes are transient in nature—they will come and go as needed.
 
 
Search WWH ::




Custom Search