Compartilhar via


Transações múltiplas

É possível que um pacote inclua transações não relacionadas em um pacote Integration Services. A qualquer hora que um contêiner no meio de uma hierarquia de contêineres aninhada não oferecer suporte a transações, os contêineres acima ou abaixo da mesma na hierarquia começa a separar as transações, se elas estiverem configuradas para oferecem suporte às transações. As transações confirmam ou revertem na ordem da tarefa interna na hierarquia de contêineres aninhados para o pacote. Entretanto, depois que a transação interna é confirmada, ela não será revertida se uma transação externa for anulada.

Por exemplo, um pacote tem um contêiner de Seqüência que mantém dois contêineres Loop Foreach, e cada contêiner inclui duas tarefas Executar SQL. O contêiner Seqüência oferece suporte a transações, os contêineres Loop Foreach não oferecem e as tarefas Executar SQL oferecem. Nesse exemplo, cada tarefa Executar SQL começaria sua própria transação e não reverteria se a transação da tarefa de Seqüência fosse cancelada.

As propriedades TransactionOption do contêiner Seqüência, do contêiner Loop Foreach e das tarefas Executar SQL são definidas da seguinte maneira:

  • As propriedades TransactionOption do contêiner de Seqüência está definida como Obrigatória.

  • As propriedades TransactionOption dos contêineres Loop Foreach são definidas como NotSupported.

  • As propriedades TransactionOption das tarefas Executar SQL são definidas como Obrigatória.

O diagrama a seguir mostra as cinco transações não relacionadas no pacote. Uma transação é iniciada pelo contêiner de Seqüência e quatro transações são iniciadas pelas tarefas Executar SQL.

Implementação de várias transações