Compartir vía


IEnlistmentNotification.InDoubt(Enlistment) Método

Definición

Notifica a un objeto inscrito que el estado de una transacción está en duda.

public:
 void InDoubt(System::Transactions::Enlistment ^ enlistment);
public void InDoubt (System.Transactions.Enlistment enlistment);
abstract member InDoubt : System.Transactions.Enlistment -> unit
Public Sub InDoubt (enlistment As Enlistment)

Parámetros

enlistment
Enlistment

Objeto Enlistment utilizado para enviar una respuesta al administrador de transacciones.

Comentarios

Se llama a este método para recursos volátiles cuando el administrador de transacciones ha invocado una operación de confirmación de una sola fase a un único recurso duradero y, a continuación, se perdió la conexión al recurso duradero antes de obtener el resultado de la transacción. En ese momento, el resultado de la transacción no se puede determinar de forma segura.

Como InDoubt se considera un estado final para una transacción, no debe llamar a Commit o Rollback después de llamar a InDoubt.

Nota

La implementación de este método para el recurso volátil debe realizar cualquier operación de recuperación o contención que comprenda en los datos afectados. También debe llamar al Done método en en el enlistment parámetro cuando haya terminado su trabajo.

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 InDoubt llamada. Por lo tanto, el administrador de transacciones sigue esperando una respuesta y mantiene información relevante para esta transacción. Si Done nunca se llama a , este fragmento de información se mantiene indefinidamente en memoria o en un recurso de todo el sistema. Esto da como resultado que los recursos no se puedan reclamar. En el caso de una transacción distribuida, esto podría llenar el registro de MSDTC que detiene el proceso de MSDTC. En el caso de una transacción administrada por System.Transactions, esto da como resultado un aumento gradual y continuo en el consumo de memoria del proceso del administrador de recursos. Por lo tanto, es fundamental llamar al Done método una vez que el administrador de recursos haya terminado con el trabajo de preparación.

Se aplica a