Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
topic starter Member Откуда: Сообщений: 245 |
Добрый день всем. Краткая суть проблемы: после развертывания пакета на целевой сервер, пакет перестает работать правильно. А именно: он перестает реагировать на исключительные ситуации. Выглядит это так, будто он молча их "проглатывает". Это происходит с любыми типами ошибок. То есть буквально в любом месте пакета, где при запуске в BIDS возникает исключение и работа пакета прерывается, при запуске на сервере все проходит гладко и пакет дорабатывает до конца. Пробовал развертывать разными способами: с ui (кликая не манифест) - и на SQL-сервер, и в файловую систему; без ui - просто копируя dtsx-файл со своего компа в папку сервера. Запускать пробовал и из Management Studio, и через SQL Agent, и через dtexec. Результат всегда одинаковый: пакет не обрывает свою работу при возникновении ошибок и тупо прёт дальше. Хотя при запуске в BIDS - прерывает! Догадываюсь, что причина скорее всего какая-то простейшая, но не могу додуматься, поиск по форуму и гугл не помогли. С проблемой бьюсь второй день, а решить нужно срочно :-( |
27 дек 12, 21:29 [13697438] Ответить | Цитировать Сообщить модератору |
topic starter Member Откуда: Сообщений: 245 |
Воспроизвел проблему на маленьком тестовом пакете: пакет в цикле перебирает csv-файлы в локальной папке и из каждого файла читает данные. Пакет очень простенький: в потоке управления находится только один контейнер "цикл по каждому элементу", в нем - одна-единственная задача потока данных. В этой задаче - один источник "Неструктурированный файл", который читает csv-файл через диспетчер соединений типа FLATFILE. Больше никаких преобразований и назначений нет. Также на задачу потока данных повешен обработчик OnPreExecute, который выводит в отчет (в обычный txt-файлик) имя обрабатываемого csv-файла. MaximumErrorCount у всех компонентов пакета выставлен в 1. Исходных csv-файлов три штуки, структура у всех одинаковая: текстовое поле и поле даты. Файлы 1.csv и 3.csv - валидные, а 2.csv - нет: вместо даты в поле содержатся буквы, и это приводит к ошибке в момент выполнения задачи потока данных, а именно в момент чтения данных компонентом-источником "Неструктурированный файл". В среде BIDS все работает нормально: как только в цикле встречается неправильный файл, выполнение останавливается с ошибкой "Невозможно преобразовать значение из-за возможной потери данных", и файл отчета выглядит так: 1.csvПри запуске на сервере, выполнение пакета НЕ прерывается и файл отчета выглядит так: 1.csvто есть ошибочный файл №2 был якобы "успешно обработан" и управление в цикле перешло к файлу №3, чего не должно быть! Как это победить? Куда копать? Что почитать? Помогите, добрые люди. |
27 дек 12, 21:40 [13697478] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31780 |
Версии то одинаковые проги, которая исполняет пакеты? Т.е. какая версия клиента в обоих случаях? |
||
27 дек 12, 23:21 [13697888] Ответить | Цитировать Сообщить модератору |
topic starter Member Откуда: Сообщений: 245 |
На моем компе запускаю из-под MS Visual Studio 2008, версия 9.0.30729.4462 QFE. На сервере запускаю сейчас через dtexec. Вот плохо, что сервак у нас до сих пор голый, все никак не соберусь пропатчить. SELECT @@VERSION Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) Тут на форуме говорят, что пока сервис-паки не накатишь, глюков всяких-разных интересных можно нахватать... Неужели это один из них? Да, забыл еще сказать. В свойствах у задачи потока данных стоят FailParentOnFailure=True и FailPackageOnFailure=True. |
27 дек 12, 23:32 [13697913] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31780 |
Это смотрится в MS Visual Studio 2008 в меню Help - About Там есть строка "Microsoft SQL Server Integration Services Designer" Как я понимаю, 9.0.30729.4462 QFE должна соответствовать сиквелу сборки 10.50.2500.0 Т.е. на компе у вас версия новее, так что сервис паки действительно на сервер лучше поставить. Ещё можно проверить, запустив пакет из BIDS на сервере. Ну и пакет нужно смотреть, реакцию на ошибки. Его вообще вы писали, или кто то другой? А то там много мест, где можно ошибки заглушать, например, в обработчиках событий. |
||
27 дек 12, 23:54 [13697979] Ответить | Цитировать Сообщить модератору |
topic starter Member Откуда: Сообщений: 245 |
Сейчас еще немного поэкспериментировал. Не только в свойствах у задачи потока данных, но и в свойствах контейнера "цикл по каждому элементу" поставил FailParentOnFailure=True и FailPackageOnFailure=True. Результат нулевой: по-прежнему на сервере проскакивает через битый файл №2 и переходит к файлу №3. Потом попробовал вообще убрать датафлоутаск, и вместо него поставил следуюший скрипт, генерирующий ошибку "деление на ноль": public void Main() { int z = 0; int n = 5; int m = n / z; Dts.TaskResult = (int)ScriptResults.Success; } ...и вуаля, при запуске на сервере имеем System.DivideByZeroException - и выполнение пакета прервано. Получается, какие-то ошибки игнорируются средой выполнения, а какие-то нет. |
28 дек 12, 00:02 [13697992] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31780 |
|
||
28 дек 12, 00:11 [13698016] Ответить | Цитировать Сообщить модератору |
topic starter Member Откуда: Сообщений: 245 |
alexeyvg, спасибо за советы! Сервер я сейчас экстренно пролечу (как раз все юзеры наконец-то ушли с него), и начну методично по пунктам выполнять ваши рекомендации. Версию клиента сиквела на моем компе что-то не удалось увидеть в студии в окне About.
Пакет целиком мой. Я ж говорю, специально перед тем как на форум писать, сделал маленькую тестовую версию пакета. Облегченную, чтобы только поведение воспроизвести. Там никаких обработчиков нет, кроме OnPreExecute на датафлоутаске. |
||
28 дек 12, 00:12 [13698017] Ответить | Цитировать Сообщить модератору |
topic starter Member Откуда: Сообщений: 245 |
Хоть это радует :-) |
||
28 дек 12, 00:14 [13698022] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31780 |
Нажмите кнопку "копировать", потом вставьте текст в любой текстовый редактор и поищите слово Integration.
Баги конечно могут быть в поведении разных тасков, так что да, нужно накатить сервис-паки, потом смотреть... |
||||||
28 дек 12, 08:18 [13698365] Ответить | Цитировать Сообщить модератору |
topic starter Member Откуда: Сообщений: 245 |
Уррра, чудо все-таки случилось. Глюк исчез моментально и бесследно сразу же после установки SP1 на SQL Server.
alexeyvg, еще раз спасибо, и с меня виртуальное угощение! Ну, и с наступившим вас :-) |
|
3 янв 13, 01:32 [13717998] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |