Serverside Configuration   «Prev  Next»

Lesson 17Setting up multiple protocol listeners on the same node
ObjectiveRun three types of listeners on the same server.

Setting up Multiple Protocol Listeners on the Same Node

As we know, one of the great features of Oracle Net is the ability to support incoming connections from many protocols:
Three clients accessing an Oracle database server using Oracle Connection Manager.
Three clients accessing an Oracle database server using Oracle Connection Manager.
This protocol independence allows tremendous flexibility, since connections from any type of computer, even mainframes, will be able to make distributed requests for Oracle data.
In Oracle there are two ways to obtain multi-protocol support. The simplest way is to create extra ADDRESS entries in your listener.ora files for the new protocols. The other approach is to use the Connection Manager within Oracle Net.
For Oracle systems that receive connections from multiple protocols, you will need to define a listener address for each protocol, so the listener can listen on more than one address. To do this, you will need to specify an ADDRESS LIST in your listener.ora file.

Oracle Integration Cloud Service
View the code below to see an example of how the listener would be configured if, for example, a host machine is running both TCP/IP and SPX/IPX.
# Filename: Listener.ora
# 
LISTENER =
  (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL= IPC)(KEY= tom))
        (ADDRESS= (PROTOCOL= IPC)(KEY= jerry))
        (ADDRESS= (PROTOCOL= TCP)(Host= dilbert)(Port= 1521))
        (ADDRESS= (PROTOCOL= SPX)(SERVICE=SERVICE1))
)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME= dilbert.)
      (ORACLE_HOME= /ora7/home/dba/oracle/product/7.3.4)
      (SID_NAME = tom)
    )
    (SID_DESC =
      (GLOBAL_DBNAME= dilbert.)
      (ORACLE_HOME= /ora7/home/dba/oracle/product/7.3.4)
      (SID_NAME = jerry)
    )
  )
STARTUP_WAIT_TIME_LISTENER = 0
TRACE_LEVEL_LISTENER = OFF

Note that the main listening address remains port 1521, but the listener will also listen for incoming SPX connections on the port defined by the service named SERVICE1. The port number will be obtained at listener start-up time by referencing the UNIX /etc/services file. In this fashion, a single listener process will be listening on two ports for two types of incoming connections.
The Oracle Net Connection Manager also provides this feature in the Connection Manager utility, but this requires use of the Multi-Threaded Server.
Finally, an obscure feature of Oracle allows multiple listeners to be defined on the same server. Because of the fast speed with which the listener bequeaths connections, this feature is rarely used, but for systems that have hundreds of connections per minute, it can be helpful to define multiple listeners. This is accomplished by defining several listener entries in the listener.ora file. The next lesson concludes this module.