2.6 Enhancing Service Accessibility Using Multiple Listeners
For some configurations, such as Oracle RAC, multiple listeners on multiple nodes can be configured to handle client connection requests for the same database service.
In the following example, sales.us.example.com
can connect using listeners on either sales1-server
or sales2-server
.
(DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))
A multiple-listener configuration also enables you to leverage the failover and load balancing features, either individually or in combination with each other.
- About Connect-Time Failover
- About Transparent Application Failover
- About Client Load Balancing
- About Connection Load Balancing
Parent topic: Identifying and Accessing the Database
2.6.1 About Connect-Time Failover
The connect-time failover feature enables clients to connect to another listener if the initial connection to the first listener fails. The number of listener protocol addresses determines how many listeners are tried. Without connect-time failover, Oracle Net attempts a connection with only one listener.
Parent topic: Enhancing Service Accessibility Using Multiple Listeners
2.6.2 About Transparent Application Failover
The Transparent Application Failover (TAF)
feature is a runtime failover for high availability environments, such as Oracle Real
Application Clusters. TAF fails over and reestablishes application-to-service
connections. It enables client applications to automatically reconnect to the database
if the connection fails and, optionally, resume a SELECT
statement that
was in progress. The reconnection happens automatically from within the Oracle Call
Interface (OCI) library.
Parent topic: Enhancing Service Accessibility Using Multiple Listeners
2.6.3 About Client Load Balancing
The client load balancing feature enables clients to randomize connection requests among the listeners. Oracle Net progresses through the list of protocol addresses in a random sequence, balancing the load on the various listeners. Without client load balancing, Oracle Net progresses through the list of protocol addresses sequentially until one succeeds.
Parent topic: Enhancing Service Accessibility Using Multiple Listeners
2.6.4 About Connection Load Balancing
The connection load balancing feature improves connection performance by balancing the number of active connections among multiple dispatchers. In a single-instance environment, the listener selects the least-loaded dispatcher to handle the incoming client requests. In an Oracle Real Application Clusters environment, connection load balancing can balance the number of active connections among multiple instances.
Due to dynamic service registration, a listener is always aware of all instances and dispatchers regardless of their location. Depending on the load information, a listener decides which instance and, if shared server is configured, to which dispatcher to send the incoming client request.
In a shared server configuration, a listener selects a dispatcher in the following order:
-
Least-loaded node
-
Least-loaded instance
-
Least-loaded dispatcher for that instance
In a dedicated server configuration, a listener selects an instance in the following order:
-
Least-loaded node
-
Least-loaded instance
If a database service has multiple instances on multiple nodes, then the listener chooses the least-loaded instance on the least-loaded node.
Parent topic: Enhancing Service Accessibility Using Multiple Listeners