The Process Monitor (PMON) process does the same sort of thing for user processes that SMON does for the instance--it takes care of various
cleanup operations. Whenever a user process is abnormally terminated, PMON does the following:
- Releases any locks that may have been held by the user process
- Removes the process ID from the list of active processes
- Rolls back any open transactions for the process
If the multi-threaded server
option is being used, PMON will also periodically check to be sure that the neccessary dispatcher processes are running.
The process monitor (PMON) performs process recovery when a user process fails. PMON is responsible for
- cleaning up the database buffer cache and
- freeing resources that the user process was using.
For example, it resets the status of the active transaction table, releases locks, and removes the process ID from the list of active processes.
PMON periodically checks the status of dispatcher and server processes, and restarts any that have stopped running (but not any that Oracle has terminated intentionally). PMON also registers information about the instance and dispatcher processes with the network listener.
If a user process terminates abnormally, PMON is responsible for cleaning up any of the resources left behind (such as memory) and for releasing any locks held by the failed process.
Like SMON, PMON checks regularly to see whether it is needed and can be called if another process detects the need for it.