Configuration du processus d'écoute Oracle pour accéder à la géodatabase avec SQL

Les fonctions SQL de ST_Geometry et ST_Raster dans Oracle font appel aux bibliothèques partagées accessibles via l'agent de procédure externe Oracle, extproc. Pour utiliser SQL avec ST_Geometry ou ST_Raster, ou pour accéder aux colonnes XML ArcSDE dans les vues GDB_ITEMS_VW et GDB_ITEMRELATIONSHIPS_VW, Oracle doit être en mesure d'accéder aux bibliothèques. Par conséquent, les bibliothèques doivent se trouver sur le serveur Oracle, et le processus d'écoute d'Oracle doit être configuré de manière à appeler les fonctions dans ces bibliothèques par le biais de la structure de procédure externe d'Oracle.

RemarqueRemarque :

Il est possible d'utiliser ST_Geometry et ST_Raster dans ArcGIS sans configurer le processus d'écoute d'Oracle. Toutefois, vous ne bénéficierez pas de toutes les fonctionnalités des clients ArcSDE et d'aucune fonctionnalité des clients SQL, comme SQL*Plus. Par exemple, vous ne pouvez pas utiliser de fonctions SQL sur les colonnes ST_Geometry dans les couches de requête des tables ArcMap ou de version contenant des colonnes ST_Raster, supprimer une ligne incluant une colonne ST_Raster, ou exécuter des fonctions SQL à partir de clients SQL si le processus d'écoute d'Oracle n'est pas configuré.

L'installation de ST_Raster est facultative. Reportez-vous à la rubrique Installation du type ST_Raster dans Oracle pour en savoir plus.

Les processus d'écoute d'Oracle sont faciles à configurer. Par exemple, plusieurs processus d'écoute peuvent être associés à votre base de données, chacun pouvant gérer plusieurs types de demandes de service. Il s'agit d'une rubrique complexe, dont les nombreuses variations ne sont pas abordées dans ce document. Pour obtenir plus d'informations sur la configuration de vos processus d'écoute, il est important de consulter le manuel Oracle Database Net Services Administrator's Guide.

Le fait d'indiquer au processus extproc où trouver les bibliothèques partagées est l'aspect le plus important de la configuration du processus d'écoute. Vous devez modifier la configuration du processus d'écoute pour préciser l'emplacement des bibliothèques partagées et redémarrer le processus d'écoute d'Oracle pour que les changements apportés à la configuration soient pris en compte.

Deux fichiers de configuration standard du processus d'écoute d'Oracle sont impliqués : tnsnames.ora et listener.ora. Ces fichiers se trouvent généralement dans ORACLE_HOME/net/admin. Ce document présente les paramètres de configuration nécessaires.

Il existe plusieurs façons de gérer les paramètres. Vous pouvez modifier les fichiers de texte grâce à un éditeur, Oracle Net Manager ou l'assistant de configuration Oracle Net. Oracle propose une documentation relative à la façon de configurer le processus d'écoute. Pour plus d'informations, consultez le manuel Oracle Database Net Services Administrator's Guide.

Le fichier tnsnames.ora contient un répertoire de services de bases de données connus. Ce fichier peut définir des services sur la base de données locale ou sur des serveurs distants. Une entrée est destinée spécifiquement au serveur de base de données local, pour qu'il utilise le protocole IPC (interprocess communications) pour envoyer des appels de fonction au processus extproc. Cette entrée est étiquetée EXTPROC_CONNECTION_DATA. Vous pouvez modifier les valeurs Key et SID sous cette entrée.

Ces éléments servent à relier cette entrée aux informations correspondantes dans le fichier listener.ora. La clé peut être n'importe quel nom abrégé, mais elle doit être identique dans les fichiers listener.ora et tnsnames.ora. Ces valeurs respectent la casse. Elles sont utilisées uniquement par le processus d'écoute et non par les utilisateurs ni par les applications.

Le fichier listener.ora décrit certains services (et pas nécessairement tous) pour lesquels le processus d'écoute guette les requêtes.

Les valeurs qui peuvent être modifiées dans ce fichier sont les suivantes :

Étapes :
  1. Avant de modifier quoi que ce soit, faites des copies de sauvegarde des fichiers tnsnames.ora et listener.ora.
  2. Ouvrez le fichier tnsnames.ora sur le serveur Oracle.
  3. Modifiez les valeurs Key et SID sous EXTPROC_CONNECTION_DATA dans le fichier tnsnames.ora.

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

    Cette entrée doit toujours être étiquetée EXTPROC_CONNECTION_DATA. Cette entrée permet au serveur de base de données d'utiliser le protocole IPC (interprocess communications) pour envoyer des appels de fonction au processus extproc.

  4. Ouvrez le fichier listener.ora sur le serveur Oracle.
  5. Modifiez les entrées nécessaires pour configurer les services à partir desquels le processus d'écoute acceptera des demandes.

    Ce premier exemple s'applique à un système d'exploitation Windows sur lequel ArcSDE et Oracle sont tous les deux installés.

    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")
     )  
    )

    Cet exemple montre une entrée qui s'applique à un serveur Linux ou UNIX (à l'exception d'IBM AIX) sur lequel ArcSDE et Oracle sont tous les deux installés.

    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")
        )
       )

    Cet exemple montre une entrée qui s'applique à ArcSDE pour Oracle sur IBM AIX.

    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. Après avoir modifié le fichier listener.ora, redémarrez le processus d'écoute d'Oracle.

3/6/2012