TransactionScope et transaction sous SQL Server 2005
Bonjour,
j'ai développé une WebMethod qui utilise une transaction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
using (TransactionScope scope = new TransactionScope())
{
SqlConnection connection = null;
SqlCommand command = null;
[..] // Traitement
try
{
// Appel d'une procédure stockée utilisant une transaction
command.ExecuteNonQuery();
}
catch (Exception ex)
{
log.Error(ex.Message);
throw new Exception("Erreur de sauvegarde dans la base de données.", ex);
}
trs.Complete();
[..] // Traitement
} |
Comme vous le voyez cette WebMethod fait appel à une procédure stockée qui utilise aussi une transaction.
Cette procédure stockée développée dans une base de données sous SQL Server 2005 est définie ci-dessous:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
CREATE PROCEDURE [dbo].[MyProcedure]
(
-- Liste des paramètres
)
AS
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION MyTransaction
-- Traitement
COMMIT TRANSACTION MyTransaction |
Il arrive que l'exception avec le message suivant soit lancée par la base de données:
Citation:
La transaction distribuée est terminée. Inscrivez cette session, soit dans une nouvelle transaction, soit dans une transaction NULL.
Que dois-je fais d'après vous pour corriger ce problème ?
Merci d'avance,
Zoax