Bonjour,
J'ai un programme qui plante lamentablement lors d'un traitement, et je retrouve dans le log le message suivant :
J'ai aussi le code SQL de la-dite requête qui a planté :SQL Error State:40001, Native Error Code: 4B5, ODBC Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]La transaction (ID de processus 90) a été bloquée sur les ressources verrou par un autre processus et a été choisie comme victime. Réexécutez la transaction.
Évidement, une fois le message obtenu, le process ID 90 n'existe plus !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT TOP 18 Objekt,Ort,ID,F7021,F7063,F7067 FROM TE_ISI_OJ WHERE LosKZ=0 AND ((((((TE_ISI_OJ.AD2GrpId=100021) OR (TE_ISI_OJ.AD3GrpId=100021) OR (TE_ISI_OJ.F7048=100021) OR (TE_ISI_OJ.F7052=100021) OR (TE_ISI_OJ.F7056=100021) OR (TE_ISI_OJ.F7060=100021)) AND (TE_ISI_OJ.F7080 NOT IN(5,6)) AND (TE_ISI_OJ.F7021!=5) AND ((TE_ISI_OJ.Objektart IN(1,0))))) AND ((((TE_ISI_OJ.ID<>0 AND EXISTS(SELECT ID FROM TE_ISI_OZ WHERE TE_ISI_OJ.ID=ID_OJ AND (TE_ISI_OZ.LosKZ=0 AND ((TE_ISI_OZ.F7001 IN(1,0)))) AND ((EXISTS(SELECT ID FROM TE_ISI_ID WHERE TE_ISI_OZ.BetreuerId<>0 AND TE_ISI_ID.ID=TE_ISI_OZ.BetreuerId AND (TE_ISI_ID.LosKZ=0 AND ((TE_ISI_ID.HierarchyCode LIKE '217.1.5.5.32.7.4.4.1.%'))))))))))))) ORDER BY Objekt,Ort;
SQL Server garde-t-il une trace exploitable du pourquoi du comment de quoiqu'est-ce ?
Genre à partir de l'heure et de l'ID du process tué, ai-je moyen de retrouver :
- la liste des process qui ont provoqué le lock
- si possible le code SQL de ces process
Ceci afin d'identifier à quel endroit je me prend les pieds dans le tapis...
Car entre les triggers, les vues, les scripts, les webservices et tout ce qui tourne autour, mon traitement doit faire pas loin (si ce n'est plus) d'une centaine de requêtes de mise à jour sur les mêmes lignes dans un laps de temps de quelques millisecondes, impossible de désactiver chaque truc un à un pour trouver qui me bloque... Et j'ai des merdes du genre un trigger qui appelle un web service qui déclenche en retour des mises à jour à partir d'une autre session et transaction... le truc impossible à tracer
Par contre, la situation est reproductible, systématiquement.
Partager