Trabajo con Transacciones desde SQL Server Integration Services 2008 – Contenedor

Seguimos trabajando con Transacciones dentro de SSIS, hemos configurado un paquete y hemos trabajado con transacciones a nivel de tarea.

Para el contenedor establecemos TransactionOption = Required y entonces, empieza a ponerse interesante este tema, porque a la tabla han llegado apenas 504 registros que se corresponden con los registros cargados en la tarea que está fuera del contenedor.

Resultado3 PropiContenedor

Ejecutamos el paquete

EjecutaContenedor

¿Qué ha ocurrido? Veamos un fragmento del Progreso de este paquete donde se muestra que se inicia y se anula la transacción para el contenedor en su totalidad, por eso se anula también la carga de datos ocurrida con éxito con la primera tarea.

Logtransac4

Cuando introduje la serie sobre transacciones comentaba que cuando la propiedad TransactionOption = Required , indica que este objeto se ejecuta en el contexto de una nueva transacción si el contenedor primario aún no ha iniciado una transacción, en cuyo caso pasa a formar parte de la misma transacción. Por esta razón no encontramos en el log el momento en que se inicie la nueva transacción, y es que no se inicia, sin embargo, sí que se anula como veremos a continuación. Sobre este comportamiento desconozco las causas.

Logtransac5

¿Qué pasaría si una de las tareas del contenedor fuese auditoría o de envío de mensaje o cualquier otra tarea indispensable?

Pues para esos casos, en los que necesitamos que alguna(s) tarea(s) dentro de un contenedor se ejecuten con independencia del resultado de las demás, tenemos que configurar TransactionOption = NotSupported, como mostramos a continuación.

PropiCortas

En este caso, a pesar del error en la segunda tarea y a pesar de que el contenedor está configurado como Required, las acciones que ocurren en la primera tarea, configurada como NotSupported no se afectan.

Resultado2

El log no ofrece ninguna información sobre el estado de la propiedad configurada como NotSupported para el manejo de transacciones.

Hasta aquí nuestra breve incursión por las características del trabajo con Transacciones desde SSIS, en la próxima entrada estaremos hablando de Configuración y creación de Registros con SSIS.