Mehrere Transaktionen
Es ist möglich, dass ein Paket nicht miteinander verbundene Transaktionen in einem Integration Services-Paket enthält. Immer wenn ein Container in der Mitte einer geschachtelten Hierarchie von Containern keine Transaktionen unterstützt, starten die Container, die sich in der Hierarchie oberhalb oder unterhalb des Containers befinden, separate Transaktionen, wenn sie für die Unterstützung von Transaktionen konfiguriert sind. Die Transaktionen führen einen Commit oder Rollback aus, und zwar nacheinander und beginnend beim innersten Task innerhalb der geschachtelten Containerhierarchie bis zum Paket. Nachdem die innere Transaktion einen Commit ausgeführt hat, erfolgt jedoch kein Rollback, wenn eine äußere Transaktion abgebrochen wird.
Veranschaulichung mehrerer Transaktionen
Ein Paket enthält z. B. einen Sequenzcontainer, der zwei Foreach-Schleifencontainer enthält, und jeder Container enthält zwei SQL Ausführen-Tasks. Der Sequenzcontainer und die Execute SQL-Tasks unterstützen Transaktionen, die Foreach-Schleifencontainer hingegen nicht. In diesem Beispiel startet jeder Execute SQL-Task seine eigene Transaktion und führt keinen Rollback aus, wenn die Transaktion auf dem Sequenztask abgebrochen wurde.
Die TransactionOption-Eigenschaften des Sequenzcontainers, der Foreach-Schleifencontainer und die SQL Ausführen-Tasks sind folgendermaßen festgelegt:
Die TransactionOption-Eigenschaft des Sequenzcontainers ist auf Required festgelegt.
Die TransactionOption-Eigenschaften der Foreach-Schleifencontainer sind auf NotSupported festgelegt.
Die TransactionOption-Eigenschaften der SQL Ausführen-Tasks sind auf Required festgelegt.
Das folgende Diagramm zeigt die fünf nicht miteinander verbundenen Transaktionen im Paket. Eine Transaktion wird durch den Sequenzcontainer gestartet, und vier Transaktionen werden durch die SQL Ausführen-Tasks gestartet.
Verwandte Tasks
Konfigurieren eines Pakets für die Verwendung von Transaktionen
Verwandte Inhalte
|