IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

ExtProc une librairie sur un serveur distant


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 40
    Points
    40
    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 éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    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 du Club
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 40
    Points
    40
    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 éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    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 du Club
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 40
    Points
    40
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. [PHP 5.3] tester l’existence d'une image sur un serveur distant
    Par van-bom dans le forum Langage
    Réponses: 1
    Dernier message: 18/09/2013, 13h53
  2. Réponses: 9
    Dernier message: 29/04/2011, 23h58
  3. Réponses: 7
    Dernier message: 03/10/2008, 17h39
  4. Installer une DLL sur un serveur distant
    Par Immobilis dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 08/08/2008, 15h14
  5. Réponses: 3
    Dernier message: 21/10/2005, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo