Задание агента SQL Server 2005 выполняется, но не выводится

По сути, у меня есть задание, которое выполняется в BIDS и является автономным пакетом, и, хотя оно выполняется под агентом SQL Server, оно не завершается должным образом (хотя сообщений об ошибках нет).

Шаги работы:

1) Удалить все строки из таблицы;

2) Используйте Для каждого цикла, чтобы заполнить таблицу из таблиц Excel;

3) Очистить стол.

Я пробовал эту страницу MS (шаги 1 и 2), не видел необходимости начинать изменение со стороны безопасности на сервере.

Также SQLServerCentral.com для этой страницы, без разрешения.

Как я могу получить журнал ошибок или исправить?

Заметьте, я сделал это из-за сбоя сервера, так как это один из тех вопросов, который касается не только администратора или программирования.

Я вошел в систему как учетная запись прокси, под которой я нахожусь, и задание выполняется самостоятельно, но жалуется, что таблицы Excel пусты?

3 ответа

Решение

Я исправил это в конце концов, спасибо за предложения.

В основном я вошел в Windows с учетной записью прокси-пользователя, с которой я работал, и начал видеть ошибки вроде: "Для каждого файлового перечислителя пусто"

Я скопировал файлы проекта и начал тестирование. Оказалось, что я все еще оставил путь к файлу (N:/) в свойствах поля For Each loop, хотя я изменил свойства соединения. Проще, когда у вас есть условия ошибок для работы. Я также должен был воссоздать отображение переменных.

Не удивительно, что люди просто воссоздают весь пакет.

Сейчас исправлено и работает!

Вот как мне удалось отследить "возвращенное состояние" из пакета служб SSIS, вызываемого через задание агента SQL. Если нам повезет, это может относиться к вашей системе.

  • Работа вызывает хранимую процедуру
  • Процедура создает вызов DTEXEC (с дюжиной или более параметров)
  • Процедура вызывает xp_cmdshell, с вызовом в качестве параметра (@Command)
  • Пакет служб SSIS работает
  • "локальная" переменная SSIS инициализируется 1
  • Если возникает ошибка, "поток" служб SSIS переходит к шагу, который устанавливает для этой локальной переменной значение 0
  • На последнем шаге используйте выражения для установки свойства SSIS "ForceExecutionResult" для этой локальной переменной (1 = успех, 0 = отказ)
  • Полная форма вызова служб SSIS сохраняет возвращаемое значение следующим образом:

    EXECUTE @ReturnValue = master.dbo.xp_cmdshell @Command

... и тогда это становится грязным, поскольку вы можете получить множество значений, возвращаемых из SSIS. Я записал действия и действия в таблицу БД, проходя через шаги SSIS, и проконсультировался с этим, чтобы попытаться что-то решить (отсюда и @Description ниже). Вот соответствующий код и комментарии:

--  Evaluate the DTEXEC return code
SET @Message = case
                 when @ReturnValue = 1 and @Description <> 'SSIS Package' then 'SSIS Package execution was stopped or interrupted before it completed'
                 when @ReturnValue in (0,1)   then ''  --  Package success or failure is logged within the package
                 when @ReturnValue = 3        then 'DTEXEC exit code 3, package interrupted'
                 when @ReturnValue in (4,5,6) then 'DTEXEC exit code ' + cast(@Returnvalue as varchar(10)) + ', package could not be run'
                 else 'DTEXEC exit code ' + isnull(cast(@Returnvalue as varchar(10)), '<NULL>') + ' is an unknown and unanticipated value'
               end
--  Oddball case: if cmd.exe process is killed, return value is 1, but process will continue anyway
--  and could finish 100% succesfully... and @ReturnValue will equal 1.  If you can figure out how,
--  write a check for this in here.

Последнее ссылается на ситуацию "что, если во время работы SSIS какой-то администратор-шутник завершает сеанс CMD (скажем, из TaskManager), потому что процесс выполняется слишком долго". У нас никогда этого не было - я знаю об этом - но они были супер-параноидальными, когда я писал это, так что мне пришлось посмотреть на это...

Почему бы не использовать протоколирование, встроенное в SSIS? Мы отправляем наши журналы в таблицу базы данных, а затем анализируем их в другой таблице в более удобном для пользователя формате и видим каждый шаг каждого пакета, который был запущен. И каждая ошибка.

Другие вопросы по тегам