Compartir a través de


Método IObjectContext::D isableCommit (comsvcs.h)

Declara que las actualizaciones transaccionales del objeto están en un estado incoherente y no se pueden confirmar en su estado actual.

Sintaxis

HRESULT DisableCommit();

Valor devuelto

Este método puede devolver los valores siguientes.

Código devuelto Descripción
S_OK
El método se completó correctamente. Las actualizaciones transaccionales del objeto no se pueden confirmar hasta que el objeto llame a EnableCommit o SetComplete.
E_UNEXPECTED
Se ha producido un error inesperado. Esto puede ocurrir si un objeto pasa su puntero IObjectContext a otro objeto y el otro objeto llama a DisableCommit mediante este puntero. Un puntero IObjectContext no es válido fuera del contexto del objeto que lo obtuvo originalmente.
CONTEXT_E_NOCONTEXT
El objeto actual no tiene un contexto asociado. Esto probablemente se debe a que no se creó con uno de los métodos CreateInstance de COM+.

Comentarios

Puede usar el método DisableCommit para evitar que una transacción se confirme prematuramente entre las llamadas de método en un objeto con estado. Cuando un objeto invoca DisableCommit, indica que su trabajo es incoherente y que no puede completar su trabajo hasta que recibe invocaciones de método adicionales del cliente. También indica que debe mantener su estado para realizar ese trabajo. Esto impide que COM+ desactive el objeto y recupere sus recursos a cambio de una llamada de método. Cuando un objeto ha llamado a DisableCommit, si un cliente intenta confirmar la transacción antes de que el objeto haya llamado a EnableCommit o SetComplete, se anula la transacción.

Por ejemplo, supongamos que tiene un componente GeneralLedger que actualiza una base de datos. Un cliente realiza varias llamadas a un objeto GeneralLedger para publicar entradas en varias cuentas. Hay una restricción de integridad que indica que los débitos deben ser iguales a los créditos cuando se devuelve la invocación del método final o la transacción debe anularse. El objeto GeneralLedger tiene un método de inicialización en el que el cliente le informa de la secuencia de llamadas que va a realizar el cliente y el objeto GeneralLedger llama a DisableCommit. El objeto mantiene su estado entre llamadas para que, después de realizar la llamada final en la secuencia, el objeto puede asegurarse de que la restricción de integridad se cumpla antes de permitir que se confirme su trabajo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado comsvcs.h

Consulte también

IObjectContext