Begin Transaction ---Rollback en Integration Service

22/01/2009 - 17:36 por kojikabutosv | Informe spam
Tengo una pregunta, estoy tratando de trasladar unos datos de un
servidor a otro por medio de Integration Service; quisiera saber si al
darme error en uno de los dataflow que he hecho y ya se han agregado
algunos registros en dataflow anteriores éstas se revierten (rollback) o
tengo que configurar algo extra para que si da algún error vuelvan todas
las tablas a su estado original.

gracias nuevamente por su tiempo.

Saludos

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
22/01/2009 - 18:01 | Informe spam
Tienes que configurar el paquete para que sea transaccional, puesto que de
modo predeterminado no lo es


Un saludo
-
www.navento.com
Servicios de Localización GPS


"kojikabutosv" wrote:

Tengo una pregunta, estoy tratando de trasladar unos datos de un
servidor a otro por medio de Integration Service; quisiera saber si al
darme error en uno de los dataflow que he hecho y ya se han agregado
algunos registros en dataflow anteriores éstas se revierten (rollback) o
tengo que configurar algo extra para que si da algún error vuelvan todas
las tablas a su estado original.

gracias nuevamente por su tiempo.

Saludos

Respuesta Responder a este mensaje
#2 Alejandro Mesa
22/01/2009 - 18:15 | Informe spam
kojikabutosv,

Cada "data flow task" tiene un grupo de propiedades, en realidad dos,
relacionadas con transacciones, que son:

- IsolationLevel
- TransactionOption

Primero debes setear la opcion "TransactionOption", con la cual puedes
indicar que esa tarea inicia o no una transaccion (Required), o participa en
una transaccion si al ejecutarse esta tarea, se hace dentro de una
transaccion existente (Supported), o que no participa en transaccion alguna
(NotSupported). Si la opcion seleccionada es "Required", entonces puedes
escoger el nivel de aislamiento (IsolationLevel). Puedes leer en los BOL
sobre los distinctos niveles de aislamiento soportados por SQL Server.

Tambien puedes setear la transaccion a nivel de paquete, por lo que toda
tarea que tenga la propiedad "TransactionOption" como "Supported" puede
participar en la transaccion.

Ejemplos:

1 - Si marcas la propiedad "TransactionOption" de una tarea "data flow task"
como "Required" e indicas el nivel de aislamiento "ReadCommitted", entonces
todos los movimientos de data entre fuentes y destinos que tengas dentro de
la tarea se comportaran como una unidad, osea que todo o nada.

2 - Si usas un contenedor "Sequence Container", y marcas la propiedad
"TransactionOption" como "Required" e indicas el nivel de aislamiento
"ReadCommitted", y ademas usas varias tareas "data flow task" dentro de ese
contenedor y ademas marcas la propiedad "TransactionOption" como "Supported",
entonces todos los movimientos de data se comportaran como una unidad, osea
que todo se lleva a cabo o nada. Lo mismo pasa si incluyes alguna otra tarea
dentro de el contenedor, como por ejemplo "Execute SQL task", la cual puede
modificar data en una que otra tabla. Mucho cuidado con estos seteos, puesto
que SSIS usa MS-DTC para controlar transacciones, por lo que este debe estar
instalado en todos los servidores participando en la transaccion.

How To Use Transactions in SQL Server Integration Services SSIS
http://www.mssqltips.com/tip.asp?tip85


AMB


"kojikabutosv" wrote:

Tengo una pregunta, estoy tratando de trasladar unos datos de un
servidor a otro por medio de Integration Service; quisiera saber si al
darme error en uno de los dataflow que he hecho y ya se han agregado
algunos registros en dataflow anteriores éstas se revierten (rollback) o
tengo que configurar algo extra para que si da algún error vuelvan todas
las tablas a su estado original.

gracias nuevamente por su tiempo.

Saludos

Respuesta Responder a este mensaje
#3 kojikabutosv
22/01/2009 - 18:31 | Informe spam
gracias Alejandro y Carlos, a trabajar se ha dicho, voy a leer el
artículo que me dices Alejandro .

Agradezco el valioso tiempo de ustedes para contestar mi pregunta.

Exitos!!!!

Alejandro Mesa escribió:
kojikabutosv,

Cada "data flow task" tiene un grupo de propiedades, en realidad dos,
relacionadas con transacciones, que son:

- IsolationLevel
- TransactionOption

Primero debes setear la opcion "TransactionOption", con la cual puedes
indicar que esa tarea inicia o no una transaccion (Required), o participa en
una transaccion si al ejecutarse esta tarea, se hace dentro de una
transaccion existente (Supported), o que no participa en transaccion alguna
(NotSupported). Si la opcion seleccionada es "Required", entonces puedes
escoger el nivel de aislamiento (IsolationLevel). Puedes leer en los BOL
sobre los distinctos niveles de aislamiento soportados por SQL Server.

Tambien puedes setear la transaccion a nivel de paquete, por lo que toda
tarea que tenga la propiedad "TransactionOption" como "Supported" puede
participar en la transaccion.

Ejemplos:

1 - Si marcas la propiedad "TransactionOption" de una tarea "data flow task"
como "Required" e indicas el nivel de aislamiento "ReadCommitted", entonces
todos los movimientos de data entre fuentes y destinos que tengas dentro de
la tarea se comportaran como una unidad, osea que todo o nada.

2 - Si usas un contenedor "Sequence Container", y marcas la propiedad
"TransactionOption" como "Required" e indicas el nivel de aislamiento
"ReadCommitted", y ademas usas varias tareas "data flow task" dentro de ese
contenedor y ademas marcas la propiedad "TransactionOption" como "Supported",
entonces todos los movimientos de data se comportaran como una unidad, osea
que todo se lleva a cabo o nada. Lo mismo pasa si incluyes alguna otra tarea
dentro de el contenedor, como por ejemplo "Execute SQL task", la cual puede
modificar data en una que otra tabla. Mucho cuidado con estos seteos, puesto
que SSIS usa MS-DTC para controlar transacciones, por lo que este debe estar
instalado en todos los servidores participando en la transaccion.

How To Use Transactions in SQL Server Integration Services SSIS
http://www.mssqltips.com/tip.asp?tip85


AMB


"kojikabutosv" wrote:

Tengo una pregunta, estoy tratando de trasladar unos datos de un
servidor a otro por medio de Integration Service; quisiera saber si al
darme error en uno de los dataflow que he hecho y ya se han agregado
algunos registros en dataflow anteriores éstas se revierten (rollback) o
tengo que configurar algo extra para que si da algún error vuelvan todas
las tablas a su estado original.

gracias nuevamente por su tiempo.

Saludos

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida