Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/08/2007, 09h55   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 1
Points : 1
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 ?
talented_together est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 11h53   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Citation:
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 12h08   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 1
Points : 1
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
talented_together est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 12h22   #4
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
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 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 12h37   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 1
Points : 1
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'
talented_together est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 13h49   #6
Membre confirmé
 
Inscription : janvier 2006
Messages : 178
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : janvier 2006
Messages : 178
Points : 208
Points : 208
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
rbaraer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 14h11   #7
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 1
Points : 1
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...
talented_together est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 11h06   #8
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 1
Points : 1
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
talented_together est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h17.


 
 
 
 
Partenaires

Hébergement Web