Bonjour,
Il y a un soucis de deadlock sur mon appli.
Je connais l'ordre SQL qui est bloqué et son emplacement dans le package PLSQPL concerné grâce au fichier trace généré par Oracle.
Reste à déterminer l'emplacement de l'ordre SQL qui a bloqué la ligne.
Dans le cas de mon autonomous transaction le scénario est le suivant :
La transaction mère supprime une ligne.
Elle appelle une procédure autonome qui supprime la même ligne.
La fille attend que la mère libère la ligne avec un commit.
Elle ne rend donc pas la main à la mère qui est bloquée à son tour.
=> Deadlock
Pour éviter cela nous utilisons une règle qui dit qu'une table est géré que par transaction autonome ou sans aucune transaction autonome. (tout ou rien).
Pas dur.
Sauf que là je pense que cette règle a été transgressée.
Ma question est :
"Est ce que le contenu du fichier trace (15250 lignes) est sensé me donner l'emplacement (PlSql + Sql) du verrouillage de la ligne ?"
J'ai fureté un peu, lu le doc 62365.1 mais l'interprétation du fichier trace me semble peu documentée.
Une idée ?
Pozzo
Je suis donc à la recherche de l'odre delete
Partager