PreparingEnlistment (Clase)
Actualización: noviembre 2007
Facilita la comunicación entre un participante de la transacción inscrito y el administrador de transacciones durante la fase de preparación de la transacción.
Ensamblado: System.Transactions (en System.Transactions.dll)
Durante la fase inicial (preparación) de la transacción, el administrador de transacciones pasa este tipo al administrador de recursos mediante una llamada al método Prepare para obtener el voto de un recurso para la transacción. En función de que se vote confirmar o deshacer, la implementación del administrador de recursos debería llamar a los métodos Prepared o ForceRollback de este tipo.
El administrador de recursos también puede llamar en cualquier momento al método Done antes de haber llamado al método Prepared. De esta forma, la inscripción produce un voto de sólo lectura, es decir, confirma la transacción pero no necesita recibir el resultado final.
Los administradores de recursos duraderos pueden recuperar de la propiedad RecoveryInformation la información que necesita el administrador de transacciones para volver a realizar la inscripción. Para obtener más información sobre recuperación, vea Realizar la recuperación.
class myEnlistmentClass : IEnlistmentNotification { public void Prepare(PreparingEnlistment preparingEnlistment) { Console.WriteLine("Prepare notification received"); //Perform transactional work //If work finished correctly, reply prepared preparingEnlistment.Prepared(); // otherwise, do a ForceRollback preparingEnlistment.ForceRollback(); } public void Commit(Enlistment enlistment) { Console.WriteLine("Commit notification received"); //Do any work necessary when commit notification is received //Declare done on the enlistment enlistment.Done(); } public void Rollback(Enlistment enlistment) { Console.WriteLine("Rollback notification received"); //Do any work necessary when rollback notification is received //Declare done on the enlistment enlistment.Done(); } public void InDoubt(Enlistment enlistment) { Console.WriteLine("In doubt notification received"); //Do any work necessary when indout notification is received //Declare done on the enlistment enlistment.Done(); } }
class myEnlistmentClass : IEnlistmentNotification { public void Prepare(PreparingEnlistment preparingEnlistment) { Console.WriteLine("Prepare notification received"); //Perform transactional work //If work finished correctly, reply prepared preparingEnlistment.Prepared(); // otherwise, do a ForceRollback preparingEnlistment.ForceRollback(); } public void Commit(Enlistment enlistment) { Console.WriteLine("Commit notification received"); //Do any work necessary when commit notification is received //Declare done on the enlistment enlistment.Done(); } public void Rollback(Enlistment enlistment) { Console.WriteLine("Rollback notification received"); //Do any work necessary when rollback notification is received //Declare done on the enlistment enlistment.Done(); } public void InDoubt(Enlistment enlistment) { Console.WriteLine("In doubt notification received"); //Do any work necessary when indout notification is received //Declare done on the enlistment enlistment.Done(); } }
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.