Transaction Activity

Parent Previous Next

La actividad TransactionActivity permite brindar un contexto transaccional para la ejecución de las actividades contenidas dentro de ella.


Existen grupos de actividades que deben ejecutarse de manera completa para que pueda continuar la lógica de la red, cuando esto ocurre hablamos de transacciones. En una transacción si no se ejecuta con éxito alguna de las actividades agrupadas, se vuelve atrás toda la operación y no se graban los cambios realizados. Este comportamiento se conoce como “Rollback” de la transacción. En caso de cumplirse de manera exitosa el grupo de actividades dentro de la transacción, la misma se completa. Este comportamiento se conoce como “Commit” de la transacción.



Debido a que la actividad TransactionActivity no es configurable, por lo que no está disponible el asistente de configuración de actividades. Para habilitar un contexto transaccional a una o más actividades solo se requiere colocar dichas actividades dentro de la actividad TransactionActivity. En el ejemplo siguiente sqlActivity1 y sqlActivity2 forman parte de la transacción, sin embargo sqlActivity3 no lo hace, si ocurriese un error en la actividad sqlActivity2, los cambios realizados en la base de datos por la actividad sqlActivity1 son descartados automáticamente.


No todas las actividades están habilitadas para transaccionar, debido a que la actividad TransactionActivity trabaja con MSDTC, solo son capaces de hacerlo aquellas que se comunican con MSDTC. En la versión 2.5.8.0 las actividades disponibles para transaccionar son las actividades de tipo "SQLActivity" y "DataApplicationBlockActivity", las demás actividades pueden colocarse dentro del contexto ofrecido por la actividad TransactionActivity pero no es posible realizar un rollback de las operaciones realizadas por ellas.


Nota: No es posible colocar dentro de una actividad TransactionActivity actividades que detengan el flujo de ejecución de la reacción como las actividades de tipo "User Interaction" o "Delay". La restricción se debe a que el detener el flujo de la ejecución mantendría la transacción abierta hasta la reanudación del flujo, bloqueando los recursos transaccionables por un lapso de tiempo que puede abarcar días o meses.



Anterior / Siguiente