2016-02-05 4 views
0

Это очень уникальная проблема, с которой я столкнулся. Позвольте мне начать с подробностей:Пакет SSIS для автоматизации обработки

У нас есть родительский пакет (позволяет назвать его A), предназначенный для обработки кубов как частичной, так и полной обработки. Теперь этот пакет вызывает два других пакета (например, B, C) для загрузки промежуточных данных и один для обработки кубов.

Несколько недель назад у нас возникла проблема с подключением, из-за которой обработка всех кубов не удалась. Это происходит как раз или два раза в неделю с тех пор. По-видимому, SQL-сервер не может установить соединение (только на несколько секунд). Но эта потеря соединения не удаляет всю оставшуюся обработку куба.

Теперь единственный способ исправить эту проблему - перезапустить родительский пакет снова и снова. мы запускаем скрипт для обновления флагов, на которых кубы уже были обработаны, прежде чем перезапускать весь пакет. Это помогает нам пропускать кубы, которые уже успешно обработаны.

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

enter image description here

В этом то, что я сделал это, что я ставлю этот процесс куб задачу в контейнер для петель и установить счетчик на 2. Если куб не в состоянии счетов меньше 2, он попытается выполнить переработку, и если счетчик сбоев больше 2, он выходит из цикла и не выполняет обработку этого куба. Ограничивая повторы на 2, мы избегаем риска бесконечного цикла, который может произойти, если есть проблема с данными, и кубы будут терпеть неудачу каждый раз.

Но это не исправляет мою проблему, потому что куб уже приобрел поток и будет обрабатывать тот же поток, а не новый. И чтобы исправить проблему подключения, он должен приобрести новый поток.

Сейчас подходит к моему вопросу,

Как я могу разработать этот пакет таким образом, что если куб не удается, это вызывает повторную обработку куба в новом потоке или еще лучше, останавливает пакет, работает родительский снова пакет после запуска скрипта для обновления флагов и обработки куба. Возможно ли это? или есть лучший способ справиться с этим?

Я никогда раньше не сталкивался с этой проблемой, поэтому я немного зациклен на том, как действовать дальше. Таким образом, любая помощь будет принята с благодарностью.

ответ

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