TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Método

Definición

Vuelve a inscribir un participante duradero en una transacción.

public:
 static System::Transactions::Enlistment ^ Reenlist(Guid resourceManagerIdentifier, cli::array <System::Byte> ^ recoveryInformation, System::Transactions::IEnlistmentNotification ^ enlistmentNotification);
public:
 static System::Transactions::Enlistment ^ Reenlist(Guid manager, cli::array <System::Byte> ^ recoveryInfo, System::Transactions::IEnlistmentNotification ^ notification);
public static System.Transactions.Enlistment Reenlist (Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
public static System.Transactions.Enlistment Reenlist (Guid manager, byte[] recoveryInfo, System.Transactions.IEnlistmentNotification notification);
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
Public Shared Function Reenlist (resourceManagerIdentifier As Guid, recoveryInformation As Byte(), enlistmentNotification As IEnlistmentNotification) As Enlistment
Public Shared Function Reenlist (manager As Guid, recoveryInfo As Byte(), notification As IEnlistmentNotification) As Enlistment

Parámetros

resourceManagerIdentifiermanager
Guid

Guid que identifica de forma única el administrador de recursos.

recoveryInformationrecoveryInfo
Byte[]

Contiene información adicional de información de recuperación.

enlistmentNotificationnotification
IEnlistmentNotification

Objeto de recurso que implementa IEnlistmentNotification para recibir las notificaciones.

Devoluciones

Enlistment

Objeto Enlistment que describe la inscripción.

Excepciones

recoveryInformation no es válido.

o bien La información del administrador de transacciones especificada en recoveryInformation no coincide con el administrador de transacciones configurado.

o bien System.Transactions no reconoce RecoveryInformation.

Ya se ha llamado al método RecoveryComplete(Guid) para el parámetro resourceManagerIdentifier especificado. Se rechaza la nueva inscripción.

resourceManagerIdentifier no coincide con el contenido de la información de recuperación especificada en el parámetro recoveryInformation.

Comentarios

Importante

Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

El administrador de recursos facilita la resolución de inscripciones duraderas en una transacción volviendo a inscribir al participante de la transacción después de un error de recurso.

El resourceManagerIdentifier parámetro se usa para etiquetar de forma coherente el participante de una transacción en caso de error de recurso. Al llamar al Reenlist método , el administrador de recursos debe proporcionar lo mismo resourceManagerIdentifier que usó cuando se llamó originalmente al método durante la EnlistDurable inscripción, o se produce una TransactionException excepción .

Cuando se vuelve a inscribir un participante con este método, se llama a los métodos de la fase 2 de IEnlistmentNotification que corresponden al resultado de la transacción (es decir, Commit, Rollback o InDoubt) según sea adecuado.

Una vez que los participantes se vuelvan a inscribir correctamente, debe llamar RecoveryComplete a para completar la recuperación.

Solo debe llamar a este método cuando un administrador de recursos se reinicie desde un error. Además, solo debería volver a inscribir las transacciones sin resolver registradas por un administrador de recursos durante fase de preparación inicial de una confirmación en dos fases. Cualquier intento de llamar a este método en momentos que no corresponda puede generar resultados erróneos.

Si se produce un error en el administrador de transacciones y el administrador de recursos realiza la recuperación solo un poco después de llamar al Prepared método en una inscripción en la fase 1 del protocolo de confirmación de Two-Phase, el administrador de recursos puede recibir la InDoubt devolución de llamada o Rollback .

Para obtener más información sobre la recuperación, consulte Realización de la recuperación.

Nota Este método usa LinkDemand para evitar que se llame desde código que no es de confianza; sin embargo, solo se requiere el llamador inmediato para poseer el FullTrust conjunto de permisos.

Se aplica a

Consulte también