как перезапустить пакет с того места, где он остановился при выборе пользователя

У нас есть основной пакет SSIS, и он вызывает несколько других дочерних пакетов и некоторые задачи. У нас есть сборка портала пользовательского интерфейса для запуска основного пакета и проверки состояния пакета. Всякий раз, когда пакет терпит неудачу (т.е. из-за проблем с сетью или других ошибок который может быть исправлен пользователем.) в конкретной задаче либо в основном пакете, либо в дочернем пакете. Пользователю будет предоставлено два варианта запуска/возобновления в пользовательском интерфейсе для этого пакета. Если он выберет «Возобновить», пакет должен начаться с того места, где он остановился ранее. Если он выберет Start, пакет должен начаться с самого начала.

Я думал добиться этого с помощью контрольных точек в ssis, но мой вопрос в том, что если дочерний пакет выйдет из строя. поэтому, когда пользователь выбирает возобновление основного пакета, он должен начинаться с невыполненной задачи в дочернем пакете, который вызывается в основном пакете. Иногда пользователь может захотеть начать сначала и выбрать «Пуск», контрольные точки должны быть отключены, и он должен начинаться с начала.


person Ram Das    schedule 16.07.2015    source источник


Ответы (1)


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

person ashim    schedule 16.07.2015
comment
что, если пользователь не выбирает возобновление и хочет начать с самого начала. поэтому пакет должен начинаться с начальной точки. - person Ram Das; 16.07.2015
comment
затем вы можете объявить глобальную пользовательскую переменную как логическую, присвоить статус контрольной точки пользовательскому значению в задаче сценария. Теперь вы можете изменить значение переменной в конфигурации пакета (xml) во время выполнения, чтобы использовать или не использовать контрольные точки в зависимости от предпочтений пользователя. - person ashim; 16.07.2015
comment
Я попытался использовать данное предложение. Предположим, что основной пакет содержит следующие задачи. 1)[Выполнить задачу SQL 1] 2)[Выполнить задачу SQL 2] 3)[Выполнить задачу пакета 1] 4)[Выполнить задачу SQL 3] 5)[Выполнить задачу пакета 2]. если пакет терпит неудачу в конкретной задаче в дочернем пакете [Выполнение задачи пакета 1]. в следующий раз он запускается из [Выполнение задачи SQL 3] вместо [Выполнение задачи пакета 1]. - person Ram Das; 20.07.2015
comment
Используйте ограничение приоритета для успеха или неудачи, если ваш сценарий таков (ограничение приоритета как для успеха, так и для неудачи). Таким образом, вы можете перенаправить неисправную часть на любую следующую часть (здесь пакет Execute или Execute Sql) - person ashim; 20.07.2015
comment
Нет, это не решит мою проблему. если пакет дает сбой при выполнении определенной задачи, если мы снова запускаем пакет, он должен начинаться с точки сбоя. но это начиная со следующей задачи. В приведенном выше примере предполагалось, что он начнется с [Выполнение задачи пакета 1], но он начинается с [Выполнение задачи SQL 3]. - person Ram Das; 21.07.2015
comment
Мне нужно просмотреть пакет, чтобы дать вам решение - person ashim; 21.07.2015