Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre à l'essai
    Inscrit en
    avril 2010
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 65
    Points : 23
    Points
    23

    Par défaut ExtProc une librairie sur un serveur distant

    Bonjour à tous,
    Presque toute la question est dans le titre:
    J'aimerais savoir s'il est possible d'utiliser Extproc pour charger une librairie externe si celle-ci est située sur un serveur autre que le serveur BDD Oracle?
    Via chemin UNC ?

    ces liens laisse penser qu'il faut que la DLL se situe dans Oracle/Bin...
    http://dbmentors.blogspot.fr/2011/10...-external.html
    http://dbmentors.blogspot.fr/2011/10...-dll-from.html

    Merci par avance pour votre aide

  2. #2
    Expert Confirmé Sénior Avatar de mnitu
    Homme Profil pro Marius Nitu
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    4 627
    Détails du profil
    Informations personnelles :
    Nom : Homme Marius Nitu
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2007
    Messages : 4 627
    Points : 9 085
    Points
    9 085

    Par défaut

    Pense pas et y compris ou ça marchera je me demanderais bien qu’est-ce je suis en train de faire ?
    Qu’est-ce que vous essayez d’accomplir ?

  3. #3
    Membre à l'essai
    Inscrit en
    avril 2010
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 65
    Points : 23
    Points
    23

    Par défaut

    Salut et merci de ton attention,
    Je n'essaye rien de spéciale, je dois faire une procédure qui extrait des données et utilise une DLL en C pour signer le tout.
    Seulement dans mon architecture serveur d'application != serveur BDD...
    La DLL se trouve sur le serveur d'appli.

    J'ai fait
    CREATE OR REPLACE LIBRARY Crypto
    AS
    '\\SRV_APPLI\Outils\maDll.dll';
    Qui a renvoyé :
    "bloc anonyme terminé"

    Cela parait donc fonctionner... Comment pourrais-je vérifier que la lib a bien été créé dans Oracle? Où sont-elles stockés?

    Merci

  4. #4
    Expert Confirmé Sénior Avatar de mnitu
    Homme Profil pro Marius Nitu
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    4 627
    Détails du profil
    Informations personnelles :
    Nom : Homme Marius Nitu
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2007
    Messages : 4 627
    Points : 9 085
    Points
    9 085

    Par défaut

    L’instruction create library ne fait que créer une « bibliothèque logique » au niveau de la base; aucune vérification de l’existence ou du fonctionnement ou de la compatibilité de la bibliothèque n’est faite. C’est juste un nom, point!

    Si vous ne disposez pas du code source de votre DLL écrit en C pour le compiler sur le serveur de base des données oubliez cette solution.

    Probablement que la seule chose à faire sera de créer un service Web sur la machine distante et de l’appeler à partir de votre serveur de base des données. Mais face à la complexité de cette solution il faut réfléchir à deux fois.

  5. #5
    Membre à l'essai
    Inscrit en
    avril 2010
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 65
    Points : 23
    Points
    23

    Par défaut

    J'ai bien le code source de la DLL mais pour des soucis de déploiements elle est posée sur le serveur d'appli...

    Pour l'instant je choppe l'erreur :
    Code :
    1
    2
    3
    4
    5
    6
    7
    ORA-28575: connexion RPC avec l''agent de procédure externe impossible
    28575. 00000 -  "unable to open RPC connection to external procedure agent"
    *Cause:    Initialization of a network connection to the extproc agent did
                   not succeed. This problem can be caused by network problems,
                   incorrect listener configuration, or incorrect transfer code.
    *Action:   Check listener configuration in LISTENER.ORA and TNSNAMES.ORA, or
                   check Oracle Names Server.
    Voilà le Listener :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = MON_SRV_BDD)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = extproc_key))
        )
      )
     
    ADR_BASE_LISTENER = D:\oracle
     
    SID_LIST_EXTERNAL_PROCEDURE_LISTENER =
    (SID_LIST =
         (SID_DESC =
            (SID_NAME = extproc_agent)
            (ORACLE_HOME = D:\oracle\ORA11GR2)
            (PROGRAM = extproc)
    	(ENVS="EXTPROC_DLLS=\\MON_SRV_APPLI\Outils\maDLL.dll")
         )
    )
    Et le TnsNames :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    EXTPROC_CONNECTION_DATA=
      (DESCRIPTION=
       (ADDRESS=(PROTOCOL=ipc)(KEY=extproc_key))
       (CONNECT_DATA=
       (SID=extproc_agent)
        )
      )  
     
    + chaines de connexion aux != instances
    Pour rappel j'essaye d'utiliser une DLL présente sur un serveur différent du serveur de BDD.
    J'ai créé la lib dans Oracle comme suit :
    Code :
    1
    2
    3
    4
     
      CREATE OR REPLACE LIBRARY Crypto_KMS
         AS
              '\\SRV_APPLI\Outils\maDll.dll';
    J'espère que quelqu'un aura une idée...
    J'ai réessayé en mettant la DLL en local mais j'obtiens la même erreur avec la DLL sous Z:\MaDLL.dll... J'ai dû louper quelquechose

    Merci pour votre aide

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •