Compartir a través de


Administración de transacciones automáticas en COM+

En el modelo de programación COM+, puede diseñar los componentes para que hagan lo que mejor hacen, lo que permite la lógica de negocios o establece una conexión de base de datos, y se basa en el marco de procesamiento de transacciones de Microsoft Windows para automatizar las transacciones.

Iniciar una transacción

COM+ inicia automáticamente una transacción cuando encuentra una de las condiciones siguientes:

  • Cuando un cliente no transaccional llama a un componente que requiere una transacción o requiere una nueva transacción.
  • Cuando un cliente transaccional llama a un componente que requiere una nueva transacción.

Si COM+ determina que un objeto debe tener una nueva transacción, comienza primero la transacción y, a continuación, coloca el objeto en él. El proceso consta de los pasos siguientes:

  1. COM+ crea un objeto de contexto, establece los atributos de activación JIT y Synchronization en Requerido y establece las marcas coherentes y realizadas en True y False, respectivamente.
  2. COM+ se comunica con el Coordinador de transacciones distribuidas (DTC) para iniciar una transacción. El DTC coordina la transacción física.
  3. El DTC genera un identificador de transacción y lo devuelve a COM+. El identificador de transacción establece un límite de transacción. Todos los objetos que participan en la transacción comparten el mismo identificador.
  4. Cuando el cliente crea el objeto, COM+ lo activa dentro del límite de la transacción.

Finalizar una transacción

COM+ finaliza una transacción automática al confirmarla o anularla cuando se produce una de las condiciones siguientes:

  • El objeto raíz de la transacción completa su trabajo y COM+ lo libera. Una vez desactivado el objeto raíz, la transacción intenta confirmarse.
  • El cliente libera el objeto raíz. Sin referencia, el objeto raíz desactiva y la transacción intenta confirmar.
  • La transacción supera su umbral de tiempo de espera. La transacción se anula automáticamente si no se confirma dentro del período de tiempo de espera de la transacción, desactivando todos los objetos asociados a la transacción. El período de tiempo de espera de transacción predeterminado es de 60 segundos.

Marcas coherentes y finalizadas

Aceleración de transacciones mediante la notificación al objeto raíz

Terminación de una transacción automática mediante una llamada a SetComplete