2010-01-10 12 views
1

J'ai un enfant TransactionScope dans un parent TransactionSope. L'enfant TransactionScope est créé, exécuté et validé plusieurs fois sous le parent singulier TransactionScope.Comment débloquer un processus (Insert Stmt) bloqué par un processus parent (Insert Stmt) avec dans un TransactionScope

Le parent TransactionScope prend en charge Insert un seul enregistrement dans la base de données en attendant que le second jeu d'instructions insert termine l'exécution une par une. Après l'achèvement de la première transaction, lors de la première insertion des transactions enfant, un problème s'est produit. Après beaucoup de recherches depuis hier, je voudrais maintenant que le processus que la deuxième insertion est en cours est bloqué par le processus de la première insertion.

Je l'ai trouvé en exécutant SP_WHO2 sur un serveur SQL avec le programme en cours d'exécution.

En attendant, il existe une relation un-plusieurs entre les deux tables impliquées dans le processus d'insertion. La première insertion effectue son opération sur la table parent tandis que la seconde sera sur la table enfant.

Chaque fois que je supprime la contrainte de relation entre les deux tables, la transaction passe à travers, mais ne le fait pas lorsque la contrainte est sur.

Ma question est de savoir comment débloquer le second processus qui est bloqué par le premier insert?

Répondre

1

Si chaque TransactionScope utilise une connexion différente, cela est prévu et de par sa conception.

Maintenant, je ne suis pas un expert en C#, mais ...

+0

+1 Très utile. – Tebo