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

PL/SQL Oracle Discussion :

Procédures externes avec trigger et J2EE


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Procédures externes avec trigger et J2EE
    Sur AIX/Oracle 9.2, j'ai réussi à utiliser les procédures externes avec PL/SQL. J'ai notamment suivi cette démarche (http://www.idevelopment.info/data/Or.../PLSQL_1.shtml), en utilisant une librairie externe (.so)
    Je suis également parvenu à utiliser un trigger sur une table afin de lancer une procédure à chaque insertion dans cette table (avec sqlplus).
    Cependant lorsque l'on fait une insertion à partir d'une application J2EE, il y a systématiquement une erreur et la procédure n'est pas lancée.

    Est-ce que ma requête est impossible du point de vue de l'architecture général ou y'a-t-il un moyen de faire ce que je désire ?

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Cependant lorsque l'on fait une insertion à partir d'une application J2EE, il y a systématiquement une erreur et la procédure n'est pas lancée
    .

    Le trigger ne se déclenche pas (et donc la procédure non plus) car vous avez un erreur dans votre insertion. Corrigez d'abord cette erreur d'insertion dans votre code Java.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    L'insertion marche parfaitement :
    - quand on supprime le trigger, l'insertion est réalisée avec l'application J2EE
    - quand on ajoute un trigger qui fait simplement une insertion dans une autre table, cela marche (toujours avec le J2EE)
    - quand on ajoute un trigger qui lance une procédure externe, cela marche avec une insertion manuelle (sqlplus), mais pas avec l'application J2EE

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Citation Envoyé par talented_together Voir le message
    L'insertion marche parfaitement :
    - quand on supprime le trigger, l'insertion est réalisée avec l'application J2EE
    - quand on ajoute un trigger qui fait simplement une insertion dans une autre table, cela marche (toujours avec le J2EE)
    - quand on ajoute un trigger qui lance une procédure externe, cela marche avec une insertion manuelle (sqlplus), mais pas avec l'application J2EE
    Toujours aussi jouissif, le "ca marche pas". On ne s'en lasse pas
    Sérieusement, peut-être qu'un petit message d'erreur aiderait, non ?
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Voici les erreurs données par Oracle (je vais m'abstenir de donner la pile d'erreur java, surtout que comme je l'ai précisé l'insertion fonctionne dans une table sans trigger) :

    ORA-06512: a "OPS$USER720.SHELL", ligne 0
    ORA-06512: a "OPS$USER720.MY_TRIGGER", ligne 1
    ORA-04088: erreur lors d'execution du declencheur 'OPS$USER720.MY_TRIGGER'

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 220
    Points
    220
    Par défaut
    Citation Envoyé par talented_together Voir le message
    Voici les erreurs données par Oracle (je vais m'abstenir de donner la pile d'erreur java, surtout que comme je l'ai précisé l'insertion fonctionne dans une table sans trigger) :

    ORA-06512: a "OPS$USER720.SHELL", ligne 0
    ORA-06512: a "OPS$USER720.MY_TRIGGER", ligne 1
    ORA-04088: erreur lors d'execution du declencheur 'OPS$USER720.MY_TRIGGER'
    Pas très causant

    Y-a-t-il plus dans le fichier alert_SID.log ? (accessible par le DBA si vous en avez un )

    rbaraer

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je suis dans une entreprise Je peux difficilement obtenir un contact temps réel avec l'administrateur DB. Je vais tout de même essayer d'en obtenir davantage sur la log...

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je n'ai toujours pas de nouvelles du listing de logs DBA. Cependant, je tiens à préciser que j'avais oublier une ligne dans les erreurs oracle :

    ORA-03001: cette option n'est pas prise en charge
    ORA-06512: a "OPS$USER720.SHELL", ligne 0
    ORA-06512: a "OPS$USER720.MY_TRIGGER", ligne 1
    ORA-04088: erreur lors d'execution du declencheur 'OPS$USER720.MY_TRIGGER'

    Voilà je ne sais pas si cette ORA-03001 apporte quelque chose en plus, je n'ai rien trouvé de précis sur google.

    Je pense que le problème vient de la librairie externe (.so) qui est utilisée. Car jai constaté que les triggers avec des procédures simples fonctionnaient avec l'application J2EE.
    Pourtant, cette librairie est accessible en lecture et exécution CHMOD (ainsi que ses répertoires parents). Et le fichier "listener.ora" est configuré de telle façon à autoriser les librairies qui ne sont pas dans $ORACLE_HOME/lib : http://www.idevelopment.info/data/Or...PLSQL_17.shtml

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/10/2010, 12h16
  2. Les Calcul Avec Procédure-Stocker Ou Trigger
    Par Meryjean dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/08/2010, 12h41
  3. [Système] Ouvrir fichier externe avec prog par défaut de l'OS
    Par Pill_S dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 30/05/2004, 11h54
  4. Valeur de retour d'une procédure externe
    Par elekis dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 16/04/2004, 16h45
  5. Problèmes création de procédures et de triggers
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 06/11/2003, 10h42

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