Konfigurieren von "extproc" für den Zugriff auf "ST_Geometry" in Oracle

Die SQL-Funktionen für "ST_Geometry" in Oracle verwenden eine gemeinsame Bibliothek, auf die Oracle über den externen Prozedur-Agenten "extproc" von Oraclezugreift. Oracle muss auf die Datei der physikalischen Bibliothek zugreifen können, damit Sie die folgenden Schritte ausführen können:

Konfigurieren des externen Prozedur-Framework von Oracle, sodass die Bibliothek "ST_Geometry" zur Durchführung dieser Tasks aufgerufen wird.

Tipp:

Die Bibliothek "ST_Geometry" wird mit ArcGIS Server- und ArcMap-Clients installiert oder kann von My Esri heruntergeladen werden. Wenn Sie ArcGIS Server oder ArcMap auf dem Oracle-Computer installiert haben, können Sie die Datei extproc.ora so konfigurieren, dass sie auf einen der folgenden Speicherorte verweist, und Sie können die beiden nachfolgend aufgeführten Vorbereitungsschritte überspringen.

  • ArcGIS Server unter Windows: <ArcGIS Server installation directory>\ArcGIS\Server\DatabaseSupport\Oracle\Windows64
  • ArcGIS Server unter Linux: <ArcGIS Server installation directory>/arcgis/server/DatabaseSupport/oracle/linux64
  • ArcMap: <ArcMap installation directory>\ArcGIS\Desktop<version>\DatabaseSupport\Oracle\Windows64

Wenn Sie auf den Speicherort von ArcMap oder ArcGIS Server verweisen, erhalten Sie automatisch aktualisierte Bibliotheken, wenn Sie eine neue Version von ArcMap oder ArcGIS Server installieren. Wenn Sie die Bibliotheken an einem anderen Speicherort ablegen, müssen Sie diese manuell aktualisieren, um die Korrekturen und Verbesserungen zu erhalten, die in neuen Versionen der ArcGIS-Bibliotheken enthalten sind.

Führen Sie die folgenden Schritte aus, bevor Sie Oracle extproc konfigurieren:

  1. Wenn Ihre Oracle-Instanz keinen Zugriff auf die oben genannten Installationsverzeichnisse von ArcGIS Server oder ArcMap hat, laden Sie die Bibliothek "ST_Geometry" von My Esri herunter, oder kopieren Sie sie vom ArcGIS-Client-Computer in ein Verzeichnis auf dem Oracle-Computer. Stellen Sie sicher, dass Sie die richtige Bibliothek für das Oracle-Betriebssystem kopieren.
    Hinweis:

    Bei der Bereitstellung auf einem Microsoft Windows-Server wird für die Bibliothek "ST_Geometry" das Microsoft Visual C++ Redistributable Package (x64) benötigt. Informationen zur erforderlichen Paketversion finden Sie unter Oracle-Datenbankanforderungen. Wenn dieses Paket auf dem Oracle-Server nicht verfügbar ist, laden Sie es von der Microsoft-Site herunter, und installieren Sie es.

  2. Mit den Geoverarbeitungswerkzeugen Räumlichen Typ erstellen, Enterprise-Geodatabase erstellen und Enterprise-Geodatabase aktivieren wird ein Standardpfad für die ST_SHAPELIB-Bibliothek festgelegt. Stellen Sie von einem SQL-Client eine Verbindung als SDE-Benutzer mit der Oracle-Instanz her, und führen Sie den folgenden SQL-Befehl aus, um zu ermitteln, welcher Pfad aktuell für die Bibliothek "ST_SHAPELIB" festgelegt ist:

    SELECT file_spec
     FROM user_libraries
     WHERE library_name = 'ST_SHAPELIB';

    Wenn der dabei zurückgegebene Pfad nicht mit dem Speicherort der Bibliotheksdatei "ST_Geometry" übereinstimmt, müssen Sie die Bibliothek neu erstellen, nachdem Sie die Datei "extproc" konfiguriert haben.

Konfigurieren Sie die Oracle-Datei "extproc.ora" so, dass sie auf den Speicherort der Bibliotheksdatei "ST_Geometry" verweist.

  1. Erstellen Sie eine Sicherungskopie der Datei "extproc.ora" auf dem Oracle-Server.
  2. Öffnen Sie die Datei "extproc.ora", und ändern Sie sie so, dass sie auf den Speicherort der Bibliothek "st_shapelib.dll" (Windows) oder der Bibliothek "libst_shapelib.so" (Linux oder UNIX) verweist.

    In diesem Beispiel ist kein ArcGIS-Client auf dem Oracle-Server für Windows installiert, sodass die Datei "st_shapelib.dll" auf dem Oracle-Computer in ein Verzeichnis namens "mylibraries" kopiert wurde. Die folgende Zeile wird der Datei "extproc.ora" hinzugefügt, um auf die Bibliothek "ST_Geometry" in diesem Verzeichnis zu verweisen:

    SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll

    In diesem Beispiel auf einem Linux- oder UNIX-Server wird die folgende Zeile hinzugefügt, die auf die Bibliothek "ST_Geometry" im Verzeichnis "esrilibs" des Benutzers verweist. Dieses wurde auf dem Oracle-Server erstellt, um die Bibliothek zu speichern:

    SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so

  3. Speichern und schließen Sie die extproc.ora-Datei.

    Sie müssen die Oracle-Instanz möglicherweise neu starten, damit die Änderungen in der Datei "extproc.ora" berücksichtigt werden.

  4. Wenn Sie den Speicherort der Bibliothek "ST_Geometry" vom Standardverzeichnis geändert haben oder kein Speicherort festgelegt wurde, erstellen Sie die Bibliothek "ST_SHAPELIB" in der Oracle-Datenbank.

    In diesem Beispiel ist die Bibliothek "ST_SHAPELIB" auf das Verzeichnis "mylibraries" eines Oracle-Servers für Windows festgelegt, auf dem die Datei "st_shapelib.dll" abgelegt wurde.

    CREATE or REPLACE LIBRARY ST_SHAPELIB
     AS 'C:\mylibraries\st_shapelib.dll';

  5. Wenn Sie die Bibliothek neu erstellt haben, müssen Sie das Paket "sde.st_geometry_shapelib_pkg" neu kompilieren.

    ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE
     REUSE SETTINGS;

  6. Alle Clients, die Zugriff auf die Bibliothek benötigen (einschließlich Web-Services), müssen erneut eine Verbindung mit der Datenbank herstellen.