Как последовательно запускать задания SSIS с помощью агента SQL

У меня есть 5 заданий SSIS для последовательного запуска. Для этого я создал задание с 5 шагами, каждый из которых связан с одним SSIS. Шаги настроены следующим образом:

  • EXEC msdb.dbo.sp_start_job имя службы SSIS
  • В случае успеха перейдите к следующему шагу.
  • Если ошибка, выйти из работы.

Все шаги объединены в цепочку, как указано выше, но, по-видимому, некоторые шаги выполняются параллельно.

Что еще мне нужно сделать, чтобы заставить их работать последовательно?

заранее спасибо


person Hubert Solecki    schedule 04.10.2019    source источник
comment
Ради интереса, почему вы все еще используете msdb, а не SSISDB? Что касается того, о чем вы спрашиваете, почему бы не иметь главный пакет, который последовательно вызывает каждый пакет (используя задачу «Выполнение пакета») в потоке управления и просто запускает этот пакет?   -  person Larnu    schedule 04.10.2019
comment
Только что зашел в проект и исправил некоторые ошибки.... Посмотрю, спасибо   -  person Hubert Solecki    schedule 04.10.2019
comment
На самом деле, я скучаю по тому, что вы написали, я думал, что вы используете msdb для запуска пакета, но вы используете его для запуска задания агента; извинения. Вы, вероятно, используете SSISDB, поэтому мое замечание о главном пакете, вероятно, кажется лучшей идеей; на мой взгляд.   -  person Larnu    schedule 04.10.2019
comment
Для последовательного запуска используйте шаг выполнения служб SSIS. Не вызывайте задание sql, которое является асинхронным   -  person Nick.McDermaid    schedule 05.10.2019
comment
Создайте одно задание с каждым шагом, вызывающим пакет служб SSIS в том порядке, в котором вы хотите, чтобы они выполнялись.   -  person Tim Mylott    schedule 07.10.2019


Ответы (1)


Если я вас правильно понял, ваша проблема связана с тем, что процедура msdb.dbo.sp_start_job делает именно то, что она говорит: она запускает задание, а затем завершает работу. Он не ждет завершения задания.

Если вам нужно сериализовать выполнение ваших пакетов, в вашем основном задании вам нужно будет выполнять сами пакеты, а не другие задания, которые их запускают. Таким образом, следующий пакет не запустится, пока не завершится предыдущий.

person Roger Wolf    schedule 05.10.2019