What is CLRExtProc, PLSExtProc and extproc in Listener.ora? Why actual database SID is not mentioned in listener.ora by default?


It is a basic question which may come how the listener works without mentioning the actual database SID in the listener.ora. By default if you create a database using DBCA it will create a listener.ora file which is similar to the below one. If you have create the database name as ORCL which will not be there in the listener.ora and instead of that there you can see SID_NAME asCLRExtProc or PLSExtProc.


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
             (SID_DESC =
             (SID_NAME = ORCL)
             (ORACLE_HOME = :\app\Oracle\product\11.2.0\dbhome_1)
             )
                       
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.204.38)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = E:\app\Oracle

Explanation:
By default the database listener.ora creates or configured for the oracle database extensions for .Net and by default oracle database extension SID for .NET isCLRExtProc. You can change this by using DBCA.
Oracle CLR host is installed as part of oracle database extension for .NET installation and runs in the extproc. The internal mechanism for extproc is not visible for the outside.
ExtProc:
.NET procedures and functions are stored in ExtProcprocess which is an external agent for oracle Database. In dedicated database architecture ExtProc is started up for each user session. In Multi threaded architechure, a separate multithreaded extproc must be started for each SID. Each TNS listener running on a server listens for incoming connection requests for a set of SIDs. If the SID in an incoming Oracle Net connect string is one that the listener is listening for, then that listener processes the connection. If a multithreaded process has been started for the SID, then the listener passes the request to that process. A single Oracle multithreaded extprocprocess can handle multiple database instances running on a single Oracle Home if a single shared among multiple database instances. That is why you are not able to see any different/separate database SIDs in the listener.ora file though multiple database running on same Oracle Home.
DBA Tips Data Pump Reference

0 comments:

Post a Comment

 

dba topics. Copyright 2011-16 All Rights Reserved | Site Map | Contact | Disclaimer | Google