Локальные вложенные транзакции служб SSIS для обработки ошибок - PullRequest
1 голос
/ 09 ноября 2010

Мы планируем НЕ использовать MSDTC для управления транзакциями в SSIS, а вместо этого хотим использовать локальные trsnactions с помощью транзакции Begin и commit транзакции. С точки зрения дизайна, кажется, все в порядке, кроме одного вопроса. Когда в какой-либо задаче происходит сбой пакета SSIS, у нас есть обработчик события ошибки, который вставляет записи в таблицу ошибок. Итак, теперь происходит то, что когда SSIS откатывает транзакцию, она также откатывает процедуру обработки ошибок. Но я НЕ уверен, как я могу управлять этим детально, поскольку вложенные транзакции НЕ будут работать, когда я начинаю транзакцию в начале выполнения пакета.

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2010

Я перешел на MSDTC для обработки этих транзакций и обработки ошибок в SSIS. Этот новый подход очень чистый, просто пометьте соответствующие потоки в SSIS как txn, требуется или нет, и все готово. Я пометил подпрограмму обработки ошибок как «txn не поддерживается», так как не хотел, чтобы она откатывалась в случае ошибок. Теперь все выглядит хорошо, за исключением затрат на инфраструктуру в нашем случае, поскольку мы объединяем решения для рабочих станций отдельных клиентов.

Большое спасибо

0 голосов
/ 10 ноября 2010

Вот статья о MSDN , в которой объясняется, как использовать блоки TRY-CATCH с TRANSACTION COMMITT, который поддерживает обработку ошибок.

Что касается вашего комментария о вложенных транзакциях, то в действительности они не существуют в SQL Server. Пожалуйста, смотрите это сообщение в блоге от Пола Рэндала.

...