Enlistment.Done Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Indica que el participante de la transacción ha finalizado su trabajo.
public:
void Done();
public void Done ();
member this.Done : unit -> unit
Public Sub Done ()
Comentarios
Durante la fase final de la confirmación de la transacción, el administrador de transacciones llama al Commitmétodo , Rollback o InDoubt del participante, en función de si la transacción se va a confirmar o revertir. El administrador de recursos debe realizar cualquier trabajo necesario para finalizar la transacción y, a continuación, informar al administrador de transacciones de que ha terminado llamando al Done método en el enlistment
parámetro .
Si el administrador de recursos se ha inscrito de forma duradera, pero no responde llamando al Done método , el administrador de transacciones no está seguro de que el administrador de recursos haya recibido la llamada de notificación correspondiente. Por lo tanto, el administrador de transacciones sigue esperando una respuesta y mantiene la información pertinente para esta transacción. Si Done nunca se llama a , este fragmento de información se mantiene indefinidamente en la memoria o en un recurso de todo el sistema. Esto da lugar a que los recursos no se puedan reclamar. En el caso de una transacción distribuida, esto podría rellenar finalmente el registro de MSDTC que detiene el proceso de MSDTC. En el caso de una transacción administrada por System.Transactions, esto produce un aumento gradual y continuo en el consumo de memoria del proceso del administrador de recursos. Por lo tanto, es fundamental llamar al método una vez que el administrador de recursos haya terminado con el Done trabajo de preparación.
Una inscripción puede llamar al Done método en cualquier momento antes de llamar a Prepared en la fase de preparación. Al hacerlo, la inscripción se convierte en un voto de solo lectura, lo que significa que vota la confirmación en la transacción, pero no necesita recibir el resultado final. Tenga en cuenta que, después de llamar a este método, el participante inscrito no recibe más notificaciones del administrador de transacciones.