Oracle Connection Manager is a gateway through which client connection requests are sent either to the next hop or directly to the database server.
Clients who relay connection requests through an Oracle Connection Manager can take advantage of:
- the session multiplexing
- and access control features configured on that Oracle Connection Manager.
It carries no service information until a PMON process registers its services.
Oracle Connection Manager consists of three components:
This components can be located for greater scalability in another server than the database server.
The listener receives client connections and evaluates against a set of rules whether to deny or allow access. If it allows access, then the listener forwards a request to a gateway process, selecting the one with the fewest connections.
The CMGW process, in turn, forwards the request to another Oracle Connection Manager or directly to the database server, relaying data until the connection terminates. If a connection to the server already exists, then the gateway multiplexes, or funnels, its connections through the existing connection.
CMADMIN monitors the state of the gateway processes and the listener, shutting down or starting up processes as needed. In addition, it registers the location and load of the gateway processes with the listener, and it answers requests from the Oracle Connection Manager Control utility.
In the figure above, the listener screens connection requests. A gateway process registers with the CMADMIN process. And the CMADMIN process registers with the listener. Finally, the listener forwards the connection requests to the gateway process. After receiving the three valid client connections, the gateway process multiplexes them through a single network protocol connection to the database. The fourth connection is denied when it is evaluated against the set of rules.