| Oracle9i Net Services Administrator's Guide Release 2 (9.2) Part Number A96580-02 |
|
|
View PDF |
The listener is a separate process that runs on the database server computer. It receives incoming client connection requests and manages the traffic of these requests to the database server. This chapter describes how to configure the listener to accept client connections.
This chapter contains these topics:
See Also:
|
A listener is configured with one or more listening protocol addresses, information about supported services, and parameters that control its runtime behavior. The listener configuration is stored in a configuration file named listener.ora.
Because all of the configuration parameters have default values, it is possible to start and use a listener with no configuration. This default listener has a name of LISTENER, supports no services upon startup, and listens on the following TCP/IP protocol address:
(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))
Supported services, that is, the services to which the listener forwards client requests, can be configured in the listener.ora file or this information can be dynamically registered with the listener. This dynamic registration feature is called service registration and is used by Oracle9i or Oracle8i instances. The registration is performed by the PMON process--an instance background process--of each database instance that has the necessary configuration in the database initialization parameter file. Dynamic service registration does not require any configuration in the listener.ora file.
Service registration offers the following benefits:
Service registration reduces the need for the SID_LIST_listener_name parameter setting, which specifies information about the databases served by the listener, in the listener.ora file.
Because the listener always knows the state of the instances, service registration facilitates automatic failover of the client connect request to a different instance if one instance is down.
In a static configuration model, a listener would start a dedicated server upon receiving a client request. The server would later find out that the instance is not up, causing an "Oracle not available" error message.
Service registration enables the listener to forward client connect requests to the least loaded instance and dispatcher or dedicated server. Service registration balances the load across the service handlers and nodes.
Oracle Enterprise Manager tools require static service configuration in the listener.ora file.
Oracle Universal Installer launches Oracle Net Configuration Assistant during software installation. Oracle Net Configuration Assistant enables you to configure the listening protocol address and service information for an Oracle database.
During an Enterprise Edition or Standard Edition installation on the database server, Oracle Net Configuration Assistant automatically configures a listener with a name of LISTENER that has a TCP/IP listening protocol address for the Oracle database. During a Custom installation, Oracle Net Configuration Assistant prompts you to configure a listener name and a protocol address of your choice.
Additionally, a listening IPC protocol address for external procedure calls is automatically configured, regardless of the installation type.
Oracle Net Configuration Assistant also automatically configures service information for the Oracle database and the external procedures in the listener.ora file.
Figure 12-1 shows a listener.ora file sample. The LISTENER entry defines the listening protocol address for a listener named LISTENER, and the SID_LIST_LISTENER entry provides information about the services supported by the listener LISTENER.
LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sale-server)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=sales.us.acme.com) (ORACLE_HOME=/oracle9i) (SID_NAME=sales)) (SID_DESC= (SID_NAME=plsextproc) (ORACLE_HOME=/oracle9i) (PROGRAM=extproc)))
| See Also:
Oracle9i Net Services Reference Guide for further information about identifying listeners by unique names and creating multiple listener entries in the |
If the default or installed configuration is not adequate for a particular environment, you can use Oracle Net Manager to customize the listener.ora configuration.
This section contains these configuration topics:
To configure additional protocol addresses for the listener:
|
Note: If a |
If a listener has never been created:
A new Address tab appears.
| See Also:
Oracle9i Net Services Reference Guide for protocol parameter settings |
When configuring the listener to listen on TCP/IP, you should enter the default port of 1521. If you do not, you must configure the LOCAL_LISTENER parameter in the initialization parameter file and resolve the listener name through a naming method.
See Also:
|
If the computer has more than one IP address and you want the listener to listen on all available IP addresses, configure TCP/IP or TCP/IP with SSL and enter the host name of the computer in the Host field.
Clients access Enterprise JavaBeans (EJBs) and Common Object Request Broker Architecture (CORBA) applications, provided with the Oracle JServer option, in an Oracle8i database over an Inter-Orb Protocol (IIOP) connection. IIOP is an implementation of General Inter-Orb Protocol (GIOP) over TCP/IP. To support access to CORBA and EJB, you configure the listener with a protocol address with port 2481 for TCP/IP or port 2482 for TCP/IP with SSL.
To configure a protocol address for Oracle JServer in an Oracle8i database:
A new Address tab appears.
The listener.ora file updates with the following:
listener= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=2481)) (PROTOCOL_STACK= (PRESENTATION=giop) (SESSION=raw))))
If you expect the listener to handle large volumes of concurrent connection requests, then you can specify a listener queue size for its TCP/IP listening endpoints. To specify the listener queue size, specify the QUEUESIZE parameter at the end of the protocol address with its value set to the expected number of concurrent requests. For example:
LISTENER=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)(QUEUESIZE=20)))
|
Note:: The default number of concurrent connection requests is system specific. Following are the defaults for the Solaris Operating System and Windows NT: |
In order for the listener to accept client connect requests to an Oracle8 release 8.0 or Oracle7 database, you must configure the listener.ora file with information about the database. Static configuration is also required for other services, such as external procedures, Heterogeneous Services, and some management tools, including Oracle Enterprise Manager.
For Oracle9i and Oracle8i databases, the listener uses the dynamic service information about the database and instance it has received through service registration before using statically configured information in the listener.ora file.
Table 12-1 describes static service settings that you can set in the listener.ora file.
| Oracle Net Manager Field | listener.ora File Parameter | Description |
|---|---|---|
|
SID |
|
Use to specify the Oracle System Identifier (SID) of the instance. You can obtain the SID value from the |
|
Global Database Name |
|
Use to identify the database service. While processing a client connection request, the listener tries to match the value of this parameter with the value of the The value for this parameter is typically obtained from the combination of the |
|
Oracle Home Directory |
|
On UNIX, this setting is optional. Use it specify the Oracle home location of the instance. Without this setting, the listener assumes its Oracle home for the instance. On Windows NT, this settings is ignored. The Oracle home specified by the |
| Important:
If you are using connect-time failover or Transparent Application Failover (TAF), such as in an Oracle9i Real Application Cluster environment, then do no set the |
See Also:
|
To statically configure the listener:
A new Database tab appears.
Text description of the illustration listenea.gif
| See Also:
Table 12-1 for a description of the fields |
For example, an excerpt of a listener.ora file statically configured for a database service called sales.us.acme.com looks like this:
SID_LIST_listener= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=sales.us.acme.com) (SID_NAME=sales) (ORACLE_HOME=/u01/app/oracle/9i)))
|
Note: If you are administering the listener remotely over an insecure network and require maximum security, configure the listener with a secure protocol address that uses the TCP/IP with SSL protocol. If the listener has multiple protocol addresses, ensure that the TCP/IP with SSL protocol address is listed first in the |
It is important to provide security through a password for the listener. With a password, privileged operations, such as saving configuration changes or stopping the listener, used from the Listener Control utility will require a password.
Use the Listener Control utility's CHANGE_PASSWORD command or the Oracle Net Manager to set or modify an encrypted password in the PASSWORDS_listener_name parameter in the listener.ora file. If the PASSWORDS_listener_name parameter is set to an unencrypted password, you must manually remove it from the listener.ora file prior to modifying it. If the unencrypted password is not removed, you will be unable to successfully set an encrypted password.
To set or modify an encrypted password with Oracle Net Manager:
To set a new encrypted password with the CHANGE_PASSWORD command, issues the following commands from the Listener Control utility:
LSNRCTL> CHANGE_PASSWORD Old password: <enter>New password:passwordReenter new password:passwordLSNRCTL> SAVE_CONFIG
Bold denotes user input. The password is not displayed when entered.
To modify an encrypted password with the CHANGE_PASSWORD command:
LSNRCTL> CHANGE_PASSWORD Old password:passwordNew password:passwordReenter new password:passwordLSNRCTL> SAVE_CONFIG
| See Also:
Oracle9i Net Services Reference Guide for further information about the |
For Oracle9i and Oracle8i databases, the listener uses the dynamic service information about the database and instance it has received through service registration before using statically configured information in the listener.ora file. Dynamic service registration is configured in the database initialization file. It does not require any configuration in the listener.ora file. However, listener configuration must be synchronized with the information in the database initialization file.
This section contains the following configuration topics related to service registration:
To ensure service registration works properly, the initialization parameter file should contain the following parameters:
For example:
SERVICE_NAMES=sales.us.acme.com INSTANCE_NAME=sales
The value for the SERVICE_NAMES parameter defaults to the global database name, a name comprising the DB_NAME and DB_DOMAIN parameters in the initialization parameter file, entered during installation or database creation. The value for the INSTANCE_NAME parameter defaults to the SID entered during installation or database creation.
| See Also:
Oracle9i Database Reference for further information about the |
By default, the PMON process registers service information with its local listener on the default local address of TCP/IP, port 1521. As long as the listener configuration is synchronized with the database configuration, PMON can register service information with a nondefault local listener or a remote listener on another node. Synchronization is simply a matter of specifying the protocol address of the listener in the listener.ora file and the location of the listener in the initialization parameter file.
If you want PMON to register with a local listener that does not use TCP/IP, port 1521, configure the LOCAL_LISTENER parameter in the initialization parameter file to locate the local listener.
For a shared server environment, you can alternatively use the LISTENER attribute of the DISPATCHERS parameter in the initialization parameter file to register the dispatchers with a nondefault local listener. Because both the LOCAL_LISTENER parameter and the LISTENER attribute enable PMON to register dispatcher information with the listener, it is not necessary to specify both the parameter and the attribute if the listener values are the same.
Set the LOCAL_LISTENER parameter as follows:
LOCAL_LISTENER=listener_alias
Set the LISTENER attribute as follows:
DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_alias)"
listener_alias is then resolved to the listener protocol addresses through a naming method, such as a tnsnames.ora file on the database server.
For example, if the listener is configured to listen on port 1421 rather than port 1521, you can set the LOCAL_LISTENER parameter in the initialization parameter file as follows:
LOCAL_LISTENER=listener1
Using the same listener example, you can set the LISTENER attribute as follows:
DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener1)"
You can then resolve listener1 in the local tnsnames.ora as follows:
listener1=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1421)))
|
Notes:
|
To register information with another local listener:
listener.ora file with the protocol address of the local listener.
LOCAL_LISTENER parameter in the initialization parameter file to locate the local listener. If you are using shared server, you can also use the LISTENER attribute of the DISPATCHERS parameter in the initialization parameter file.LOCAL_LISTENER or the LISTENER setting through a tnsnames.ora file or an Oracle Names server.
Registration to remote listeners, such as in the case of Oracle9i Real Application Clusters, can be configured for shared server or dedicated server environments.
If you want PMON to register with a remote listener, configure the REMOTE_LISTENER parameter in the initialization parameter file to locate the remote listener.
For a shared server environment, you can alternatively use the LISTENER attribute of the DISPATCHERS parameter in the initialization parameter file to register the dispatchers with any listener. Because both the REMOTE_LISTENER parameter and the LISTENER attribute enable PMON to register dispatcher information with the listener, it is not necessary to specify both the parameter and the attribute if the listener values are the same.
Set the REMOTE_LISTENER parameter as follows:
REMOTE_LISTENER=listener_alias
Set the LISTENER attribute as follows:
DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_alias)"
listener_alias is then resolved to the listener protocol addresses through a naming method, such as a tnsnames.ora file on the database server.
For example, if separate listeners are configured to listen on port 1521 on servers sales1-server and sales2-server, you can set the REMOTE_LISTENER parameter in the initialization file for the instance on host sales1-server as follows:
REMOTE_LISTENER=listener_sales2
You can set the REMOTE_LISTENER parameter in the initialization file for the instance on host sales2-server as follows:
REMOTE_LISTENER=listener_sales1
You can then resolve listener_sales2 in the local tnsnames.ora on sales1-server as follows:
listener_sales2=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))
Likewise, you can resolve listener_sales1 in the local tnsnames.ora on sales2-server as follows:
listener_sales1=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)))
If shared server is configured, you can set the DISPATCHERS parameter in the initialization parameter file as follows:
DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listeners_sales)"
You can then resolve listener_sales in the local tnsnames.ora as follows:
listeners_sales= (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))
|
Notes:
|
To register information with remote listener:
listener.ora file with the protocol addresses of the remote listeners.
LISTENER attribute of the DISPATCHERS parameter or the REMOTE_LISTENER parameter in the initialization parameter file. In a dedicated server environment, configure the REMOTE_LISTENER parameter in the database initialization parameter file.
LISTENER or the REMOTE_LISTENER setting through a tnsnames.ora file or an Oracle Names server.
The listener name alias specified for the LOCAL_LISTENER parameter, REMOTE_LISTENER parameter, or LISTENER attribute can be resolved through one of the following naming methods:
A net service name entry should be created for the protocol address without the CONNECT_DATA section of the connect descriptor. Oracle Net Manager does not enable you to configure a tnsnames.ora file without the CONNECT_DATA information. Therefore, Oracle Corporation recommends that you manually modify the tnsnames.ora file.
For example, if LOCAL_LISTENER is set to listener1 and listener1 uses TCP/IP on port 1421, the entry in the tnsnames.ora file would be:
listener1=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1421))
|
Note: Multiple addresses are supported, but connect-time failover and client load balancing features are not supported. |
| See Also:
Chapter 15, "Enabling Advanced Features of Oracle Net Services" for further information about multiple address configuration |
An entry for the listener alias name can be made to an Oracle Names server through Oracle Net Manager:
A.SMD record type in the Type field, and enter the address in the Value field, for example:
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=2481))
Once the listener is configured, the listener can be administered with the Listener Control utility. This section describes some of the common administrative tasks for the listener, including the following topics:
| See Also:
Oracle9i Net Services Reference Guide for a complete listing of all the Listener Control utility commands and the Oracle Net Manager online help contents |
To stop the listener from the command line, enter:
lsnrctl STOP[listener_name]
where listener_name is the name of the listener defined in the listener.ora file. It is not necessary to identify the listener if you are using the default listener, named LISTENER.
To start the listener from the command line, enter:
lsnrctl START[listener_name]
where listener_name is the name of the listener defined in the listener.ora file. It is not necessary to identify the listener if you are using the default listener, named LISTENER.
In addition to starting the listener, the Listener Control utility verifies connectivity to the listener.
The STATUS and SERVICES commands provide information about the listener. When entering these commands, follow the syntax as shown for the STOP and START commands.
The STATUS command provides basic status information about a listener, including a summary of listener configuration settings, the listening protocol addresses, and a summary of services registered with the listener.
|
Note: You can also obtain the status of a listener through the Oracle Enterprise Manager Console. See the Oracle Enterprise Manager Administrator's Guide for further information. |
The STATUS command generates output with the sections described in Table 12-2.
Figure 12-3 shows example output of the STATUS command.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Solaris: Version 9.2.0.2.0 - Development Start Date 15-JUL-2002 20:22:00 Uptime 0 days 0 hr. 5 min. 22 sec Trace Level support Security OFF SNMP OFF Listener Parameter File /oracle9i/admin/listener.ora Listener Log File /oracle9i/network/log/listener.log Listener Trace File /oracle9i/network/trace/listener.trc Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=sales-server)(PORT=2484))) Services Summary... Service "sales.us.acme.com" has 1 instance(s). Instance "sales", status READY, has 3 handler(s) for this service... Service "hr.us.acme.com" has 1 instance(s). Instance "hr", status READY, has 2 handler(s) for this service... The command completed successfully
The SERVICES command provides detailed information about the services and instances registered and the service handlers allocated to each instance.
The SERVICES command generates output with the sections described in Table 12-3.
Figure 12-4 shows example output of the SERVICES command.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net))) Services Summary... Service "sales.us.acme.com" has 1 instance(s). Instance "sales", status READY, has 3 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER "D000" established:0 refused:0 current:0 max:10000 state:ready DISPATCHER <machine: sales-server, pid: 1689> (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=52414)) "D001" established:0 refused:0 current:0 max:10000 state:ready DISPATCHER <machine: sales-server, pid: 1691> (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=52415)) Service "hr.us.acme.com" has 1 instance(s). Instance "hr", status READY, has 2 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER "D000" established:0 refused:0 current:0 max:10000 state:ready DISPATCHER <machine: sales-server, pid: 11326> (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=58361)) The command completed successfully
This output shows that two database services, sales.us.acme.com and hr.us.acme.com, are registered with the listener.
Client connection requests to sales.us.acme.com are handled by two dispatchers named D000 and D001 and one dedicated server. All handlers have a status of ready, indicating that they are ready to receive connections.
Client connection requests to hr.us.acme.com are handled by one dispatcher named D001 and one dedicated server.
When you notice any of the following conditions, review and monitor the listener log file for the following: