Transações múltiplas
É possível que um pacote do Integration Services inclua várias transações não relacionadas. Isto acontece quando um pacote contém uma hierarquia de contêineres aninhados e um desses contêineres não suporta transações enquanto os contêineres restantes requererem transações. Os contêineres aninhados que requerem transações iniciarão por si só transações separadas. Essas transações são confirmadas ou revertidas na ordem da tarefa interna na hierarquia de contêineres aninhados para o pacote. Entretanto, depois que a transação de um contêiner interno é confirmada, ela não é 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 um desses contêineres inclui duas tarefas Executar SQL. O diagrama abaixo mostra um exemplo desse pacote.
Neste exemplo de pacote, as propriedades TransactionOption do contêiner Seqüência, dos contêineres 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 Required.
As propriedades TransactionOption dos contêineres Loop Foreach são definidas como NotSupported.
As propriedades TransactionOption das tarefas Executar SQL são definidas como Required.
Com essas configurações para as propriedades TransactionOption, haverá cinco transações não relacionadas no pacote de exemplo. O contêiner Seqüência inicia uma transação e quatro tarefas Executar SQL iniciam suas próprias transações. Além disso, as transações iniciadas pelas tarefas Executar SQL não seriam revertidas se a transação da tarefa de Seqüência fosse cancelada.
|
Consulte também