At an internal level, CMAN consists of three server programs:
- Connection Manager Gate Way (CMGW),
- Connection Manager Administrator (CMADMIN), and
- Connection Manager Control Utility (CMCTL).
Let us examine the function of each.
Oracle Connection Manager (CMAN) comprises the following three key components or server programs, each serving a distinct purpose in managing and controlling client connections to the database:
- Connection Manager Gateway (CMGW)
- Description:
CMGW is a gateway process acting as a hub for the Connection Manager. This process is responsible for registering with the Connection Manager Administration process and listening for incoming Network Service connection requests. CMGW also is responsible for initiating connection requests to listeners for clients, relaying data between the client and server, and answering requests initiated by CMCTL.
The CMGW component handles the actual routing of client requests to the database server. It acts as the intermediary that performs tasks such as:
- Connection multiplexing.
- Protocol conversion.
- Firewall functionality (enforcing access control rules from the
cman.ora
file).
- Primary Role: Responsible for accepting client connection requests, applying rules, and establishing connections to the destination database.
-
Connection Manager Administrator (CMADMIN)
- Description: CMADMIN is a multi-threaded process that is responsible for all administrative issues relating to the Connection Manager. Its primary function is to maintain address information in the Oracle Names Server. CMADMIN is also responsible for locating local Oracle Names servers, registering address information about the CMGW and listeners, monitoring changes in the network, and updating the Names Server.
The CMADMIN process manages the overall lifecycle of the Connection Manager service. It provides administrative capabilities such as:
- Starting and stopping the Connection Manager Gateway (CMGW).
- Managing the configuration defined in the
cman.ora
file.
- Monitoring connection statistics and managing logging or tracing.
- Primary Role:
Ensures the Connection Manager is functioning correctly and applies administrative settings as defined in the configuration.
-
Connection Manager Control Utility (CMCTL)
- Description:
CMCTL is the executable name for the Connection Manager control utility. It provides administrative access to the CMADMIN and CMGW processes. You use the cmctl
command to start and stop the CMAN services on each host.
The CMCTL is a command-line interface used by administrators to interact with and manage the Connection Manager. It allows the execution of commands to:
- Start, stop, or reload the CMAN service.
- View the status of connections.
- Manage logging and diagnostics.
- Primary Role:
Acts as the primary interface for administrators to control and troubleshoot Oracle Connection Manager.
Summary of Internal Components
Component |
Purpose |
CMGW |
Handles client connection routing, multiplexing, and firewall enforcement. |
CMADMIN |
Manages the lifecycle and configuration of Connection Manager. |
CMCTL |
Provides a command-line interface for administration and monitoring. |
These three components work together to provide a robust and flexible mechanism for managing and optimizing client connections in both traditional and cloud-enabled Oracle database environments.
-------------------------------
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=Parameter list)
(listener_address=(address=(protocol=tcp)(host=usunnae16)(port=1574)))
(aso_authentication_filter=OFF)
(connection_statistics=ON)
(log_directory=/home/user/network/admin/log)
(log_level=support)
(max_connections=256)
(idle_timeout=5)
(inbound_connect_timeout=0)
(session_timeout=20)
(outbound_connect_timeout=0)
(max_gateway_processes=1)
(min_gateway_processes=1)
(password=OFF)
(remote_admin=ON)
(trace_directory=/home/user/network/admin/log)
(trace_level=off)
(trace_timestamp=OFF)
(trace_filelen=0)
(trace_fileno=0)
)
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=Shared Memory Size)
(BYTES=82524))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=GMON Attributes validated)
(Type=Information))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=NS Listen Successful)
((ADDRESS=(PROTOCOL=tcp)(HOST=usunnae16)(PORT=55878))))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)
(CMD=version))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)
(CMD=show status))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:12)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:15)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:29)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:46)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)
(CMD=probe monitor))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)
(CMD=shutdown normal))
-------------------------------
In the next lesson, you will examine some features of CMAN that warrant detailed discussion.