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.