Множественные транзакции
Пакет служб Integration Services может включать несколько несвязанных транзакций. Это случается, если пакет содержит иерархию вложенных контейнеров, один из которых не поддерживает транзакции, а для остальных контейнеров необходимы транзакции. Вложенные контейнеры, которым требуются транзакции, запускают отдельные собственные транзакции. Эти транзакции проходят фиксацию или откат, начиная с задачи с самым большим уровнем вложенности в иерархии контейнеров пакета. Однако после фиксации транзакции вложенного контейнера ее откат в случае прерывания внешней транзакции не выполняется.
Например, пакет включает контейнер последовательности, содержащий два контейнера «цикл по каждому элементу», каждый из которых содержит две задачи «Выполнение SQL». На следующей схеме показан этот пример пакета.
В этом примере пакета свойства TransactionOption контейнера последовательности, контейнеров «цикл по каждому элементу» и задач «Выполнение SQL» установлены следующим образом.
Свойство TransactionOption контейнера последовательности установлено в значение Required.
Свойства TransactionOption контейнеров «цикл по каждому элементу» установлены в значение NotSupported.
Свойства TransactionOption задач «Выполнение SQL» установлены в значение Required.
С такими значениями свойств TransactionOption в примере пакета будет пять несвязанных транзакций. Контейнер «последовательность» запускает одну транзакцию, а каждая из четырех задач «Выполнение SQL» запускает собственную транзакцию. Кроме того, транзакции, которые запускаются задачами «Выполнение SQL», не будут подвергаться откату в случае, если транзакция в задаче последовательности окажется прерванной.
|
См. также