Konfigurieren des Oracle-Listeners für den Zugriff auf die Geodatabase mit SQL

Die SQL-Funktionen "ST_Geometry" und "ST_Raster" verwenden gemeinsame Bibliotheken, auf die Sie über den externen Verfahrensagenten "extrproc" von Oracle zugreifen können. Für die Verwendung von SQL mit ST_Geometry oder ST_Raster oder den Zugriff auf die ArcSDE-XML-Spalten in den Ansichten GDB_ITEMS_VW und GDB_ITEMRELATIONSHIPS_VW muss Oracle in der Lage sein, auf die Bibliotheken zuzugreifen. Die Bibliotheken müssen daher auf dem Oracle-Server vorhanden sein, und der Oracle-Listener muss so konfiguriert werden, dass Funktionen in diesen Bibliotheken durch die externe Verfahrensumgebung von Oracle aufgerufen werden.

HinweisHinweis:

Sie können "ST_Geometry" und "ST_Raster" in ArcGIS verwenden, ohne den Oracle-Listener einzurichten. Sie erhalten jedoch nicht die vollständigen Funktion von ArcSDE-Clients und keine Funktionen von SQL-Clients, z. B. SQL*Plus. Es ist beispielsweise nicht möglich, SQL-Funktionen in ST_Geometry-Spalten in Abfrage-Layern in ArcMap oder Versionstabellen mit ST_Raster-Spalten zu verwenden, eine Zeile mit einer ST_Raster-Spalte zu löschen oder SQL-Funktionen von SQL-Clients auszuführen, wenn der Oracle-Listener nicht konfiguriert ist.

Die Installation von "ST_Raster" ist optional. Anweisungen finden Sie unter Installieren des ST_Raster-Typs unter Oracle.

Oracle-Listener sind hochgradig konfigurierbar. Sie können beispielsweise über mehrere Listener verfügen, die Ihrer Datenbank zugewiesen sind, und jeder Listener kann wiederum mehrere Arten an Service-Anforderungen verwalten. Dies ist ein komplexes Thema, und die unterschiedlichsten Variationen können nicht alle in diesem Dokument besprochen werden. Lesen Sie daher unbedingt das Handbuch Oracle Database Net Services Administrator's Guide, um weitere Informationen zur Konfiguration der Listener zu erhalten.

Der wichtigste Aspekt beim Konfigurieren des Listeners ist die Angabe des Speicherorts der gemeinsam genutzten Bibliotheken für extproc. Sie müssen die Listener-Konfiguration ändern, um den Speicherort der gemeinsam genutzten Bibliotheken anzugeben, und dann den Oracle-Listener-Vorgang erneut starten, damit die Konfigurationsänderungen übernommen werden.

An der Konfiguration sind zwei Standard-Listener-Konfigurationsdateien von Oracle beteiligt: "tnsnames.ora" und "listener.ora". Diese Dateien befinden sich normalerweise im Verzeichnis "ORACLE_HOME/net/admin". In diesem Dokument werden die erforderlichen Konfigurationseinstellungen vorgestellt.

Es gibt unterschiedliche Wege, wie Sie die Einstellungen verwalten können. Sie können Textdateien mit einem Texteditor bearbeiten, den Oracle Net Manager bzw. den Oracle Net Configuration Assistant verwenden. Oracle stellt darüber hinaus weitere Dokumente zur Verfügung, wie Sie den Listener konfigurieren können. Weitere Informationen finden Sie im Handbuch Oracle Database Net Services Administrator's Guide.

Die Datei "tnsnames.ora" enthält ein Verzeichnis der bekannten Datenbankdienste. Mit dieser Datei können Sie Dienste in der lokalen Datenbank oder auf Remote-Servern definieren. Ein Eintrag wird speziell vom lokalen Datenbankserver für die Interprozesskommunikation (IPC) verwendet, um Funktionsabrufe an extproc zu senden. Bei diesem Eintrag handelt es sich um EXTPROC_CONNECTION_DATA. Sie können die Schlüssel- und SID-Werte unter diesem Eintrag ändern.

Diese Elemente werden dazu verwenden, den Eintrag mit den entsprechenden Informationen in der Datei "listener.ora" zu verknüpfen. Der Schlüssel kann ein beliebiger kurzer Name sein, muss sich jedoch sowohl in der Datei "listener.ora" als auch "tnsnames.ora" befinden. Bei diesen Werten müssen Sie die Groß- und Kleinschreibung beachten. Sie werden nur vom Listener-Vorgang verwendet, nicht von Benutzern oder Anwendungen.

Die Datei "listener.ora" beschreibt einige (nicht notwendigerweise alle) Dienste, für die der Listener auf Anforderungen wartet.

Zu den Werten, die in dieser Datei geändert werden können, gehören Folgende:

Schritte:
  1. Bevor Sie Änderungen vornehmen, sollten Sie eine Sicherungskopie der Dateien "tnsnames.ora" und "listener.ora" erstellen.
  2. Öffnen Sie die Datei "tnsnames.ora" auf dem Oracle-Server.
  3. Ändern Sie die Schlüssel- und SID-Werte unter EXTPROC_CONNECTION_DATA in der Datei "tnsnames.ora".

    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
    )

    Dieser Eintrag muss immer mit EXTPROC_CONNECTION_DATA beschriftet sein. Dieser Eintrag wird vom Datenbankserver für die Interprozesskommunikation verwendet, um Funktionsabrufe an extproc zu senden.

  4. Öffnen Sie die Datei "listener.ora" auf dem Oracle-Server.
  5. Ändern Sie die erforderlichen Einträge, um die Services einzurichten, von denen der Listender Anforderungen annimmt.

    Das erste Beispiel ist für Windows-Betriebssystem, auf dem ArcSDE und Oracle installiert sind.

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
     )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=C:\ArcSDE\sdeexe\bin\st_shapelib.dll;c:\ArcSDE\sdeexe\bin\libst_raster_ora.dll")
     )  
    )
    

    In diesem Beispiel ist ein Eintrag für einen Linux- oder UNIX-Server (ausgenommen IBM-AIX) dargestellt, auf dem sowohl ArcSDE als auch Oracle installiert ist.

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
      )
    )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /servit/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=/servit/ArcSDE/sdeexe/lib/libst_shapelib.so:/servit/ArcSDE/sdeexe/lib/libst_raster_ora.so")
      )
    )
    

    In diesem Beispiel ist ein Eintrag für ArcSDE for Oracle unter IBM AIX dargestellt.

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
      )
    )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /servit/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=/servit/ArcSDE/sdeexe/lib/libst_shapelib_64.so:/servit/ArcSDE/sdeexe/lib/libst_raster_ora_64.so")
      )
    )

  6. Nachdem Sie die Datei "listener.ora" geändert haben, starten Sie den Oracle-Listener neu.

3/6/2012