Bonjour à tous
J'ai un problème au niveau d'une transaction sql : j'ai une application réalisée en VB6 avec une conection Adodb sur une base Sql server 2000, il y a une procédure qui enregistre des données dans 6 tables , le tout dans une transaction , environ une fois sur 10000 opérations je trouve que seulement les 2 derniers requêtes sql sont enregistrés dans la base , j'ai fait une trace sql, j'ai trouvé que les 6 requetes ont été exécutés et la transaction se Commit normalement, sauf que j'ai remarqué en comparant avec la trace des requêtes qui ont affecté les 6 tables qu'il y a 2 lignes vides juste avant les 2 dernières requete : voici la structure de la trace : ( j'ai pas mis les requêtes pour simplifier )
Ligne EventClass TextData
1 12 set implicit_transactions on
2 50 NULL
3 50 NULL
4 50 NULL
5 12 Insert into table1
6 12 Insert into table2
7 12 Update Table3
8 12 Update Table4
9 50 NULL
10 12 Select from table5
11 50 NULL
12 12 Update Table5
13 12 Update Table6
14 50 NULL
15 12 IF @@TRANCOUNT > 0 COMMIT TRAN
16 12 set implicit_transactions off
Seulement table5 et Table6 on été affecté, a noter que la durée d'exécution de la ligne 9 et de la ligne 10 sont anormalement élevés( 1seonde chacune) et la différence par rapport à une transaction qui a affecté les 6 tables : les ligne 9 et 11 n'existent pas
ça fait des mois que j'essaie de trouver une solution en vain, Merci pour votre aide
Partager