La requête COMMIT TRANSACTION n'a pas de BEGIN TRANSACTION correspondante
Voici un étrange problème, je suis en cours d'exécution sur un serveur de production. Il est arrivé deux fois dans les deux dernières semaines, et c'est un serveur qui reçoit beaucoup de trafic.
Nous avons un peu de code dans un Service Web qui exécute une BEGIN TRAN
puis s'exécute quelques requêtes SQL (deux inserts suivie par une mise à jour). Puis à la fin exécute une COMMIT
. Par deux fois maintenant, nous avons compris le message dans les logs:
La TRANSACTION de validation demande n'a pas de correspondant COMMENCER la TRANSACTION.
Entre les deux premières insertions et de la mise à jour, nous appelons un autre service web, il pourrait donc y avoir un léger décalage entre les deux premières insertions et de la dernière mise à jour avant le COMMIT
est appelé. Cela pourrait-il être la cause de notre problème? Nous sommes à l'exécution de ce sous IIS 7 et Server 2008 R2 (toutes les mises à jour appliquées).
À l'origine, nous avons pensé que cela pourrait être l'application piscines se recycler, mais a changé que de recycler dans le milieu de la nuit. Maintenant, je ne suis pas sûr de ce que serait l'origine de SQL server oublier l'appel à BEGIN TRAN
.
Ce service web est appelé tout à fait un peu. Quelqu'un a vu quelque chose comme ça avant? Je suis à une perte totale pour le moment...
Toute aide ou suggestion a beaucoup apprécié!
source d'informationauteur Sophtware
Vous devez vous connecter pour publier un commentaire.
Il ressemble à votre échec de la transaction, ai roulé en arrière et il n'y a rien à commettre
exemple d'une telle chose
Maintenant exécuter ce
Voici l'erreur
Cela va fonctionner sans problème
Un bon article sur les transactions est Gestion des erreurs de SQL 2005 et plus Tard par Erland Sommarskog
J'ai eu le même problème. C'est ce que j'ai fait pour le résoudre.
La
COMMIT TRANSACTION
demande n'a pas de correspondantBEGIN TRANSACTION
Après que j'ai Vérifié la
SQL
Requête et Ajouter unBEGIN TRAN
il sera exécuté avec succès. Voici Mon exemple de code. Il travaillera: