2014-01-22 6 views
1

Я пытаюсь реализовать обработчик сбоя пакета SSIS. Я добавил обработчик события OnError на весь пакет и работу с отказами, когда я ожидаю ошибку в потоке управления.Обработка ошибок проверки SSIS

Основная задача пакета - собрать некоторые данные из db, обработчик ошибок Отправить почту Задача отправки сообщения электронной почты с описанием ошибки.

Теперь я пытаюсь подражать общей ошибке: я вношу некоторые изменения в SQL-запрос (например, устанавливаю неверное имя для одного из столбцов) и пытаюсь запустить пакет.

Что я вижу в том, что пакет не будет работать на этапе проверки и даже не приступать к исполнению, говоря

Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occured. Error Code 0x80040E14. An OLE DB record is available. Source "Microsoft SQL Server Native Client 11.0"  
Hresult 0x80040E14 Description "Statement(s) could not be prepared" 
Description "The multipart identifier "MyTable.SomeWrongField" could not be bound". 
Error: "OLE DB Source" failed validation and returned validation status "VS_BROKEN". 

Он даже не procceed к исполнению, в противном случае сразу после проверки. Как установить дескриптор ошибки, чтобы он обрабатывал КАЖДУЮ ошибку, даже такую ​​проблему (неправильный запрос sql)?

Спасибо.

+0

Вы всегда можете создать другой обработчик событий OnTaskFailed или OnPreValidate с помощью задачи «Отправить почту». –

+0

OnTaskFailed тоже не работает. – user2703790

ответ

1

Ошибка проверки является эквивалентом синтаксической ошибки SSIS. Нет возможности для восстановления, поскольку исполнение мертво в воде. OnTaskFailed и OnError не поймают этот тип ошибки (это одна из причин, по которой мы больше не выполняем уведомления об ошибках внутри самих наших пакетов)

+0

Выполняете ли вы уведомление в случае этих сбоев? – user2703790

Смежные вопросы