Ошибка 0xC0011008 Не удалось загрузить пакет - PullRequest
0 голосов
/ 26 апреля 2018

Я сталкиваюсь со странным поведением SQL Server Agent при выполнении SSIS пакетов.

У меня есть работа, включающая много шагов (в основном пакеты служб SSIS). Некоторые шаги в большинстве случаев терпят неудачу каждый день, даже если конфигурация одинакова для всех шагов.

Я пытался удалить / создать работу, удалить / создать SQL Server Agent Proxy, но безуспешно.

Я не могу найти никакой разницы между неудачными шагами и успешными.

Это ошибка, возвращаемая агентом SQL Server:

Пакет не был загружен из-за ошибки 0xC0011008 «Ошибка загрузки из XML. Никакая дополнительная подробная информация об ошибке не может быть указана для этой проблемы, поскольку не был передан объект Events, где подробная информация об ошибке

Версия SQL Server: 2014

Версия SSIS: 2014

РЕДАКТИРОВАТЬ:

В журнале событий я нашел Information Message из User Profile Service, который говорит:

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

Процесс 5924 (\ Device \ HarddiskVolume2 \ Program Files \ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe) открыл ключ \ REGISTRY \ USER \ SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX \ Панель управления \ International

Процесс 5924 (\ Device \ HarddiskVolume2 \ Program Files \ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe) открыл ключ \ REGISTRY \ USER \ SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX \ Software \ Microsoft \ Windows \ CurrentVersion

SID соответствует Proxy User, используемому для выполнения шагов задания SQL. Временная метка совпадает, когда ошибка возникает в агенте SQL.

Я думаю, это то, что заставляет шаги терпеть неудачу.

Можем ли мы предотвратить выгрузку Windows этим реестром?

1 Ответ

0 голосов
/ 03 мая 2018

Ошибка действительно была вызвана тем, что User Profile Service вызывает выгрузку реестра.

Решение, которое работало для меня, состояло в том, чтобы изменить параметр политики Do not forcefully unload the user registry at user logoff с " Не настроено " на Включено .

  1. Запустить редактор локальной групповой политики (gpedit.msc)

  2. Перейти к Конфигурация компьютера > Административные шаблоны > Система > Профили пользователей

  3. Установить " Не принудительно выгружать реестр пользователей при выходе пользователя из системы " на Включено

  4. Выполнить команду gpupdate.

Подробности можно найти здесь: https://support.microsoft.com/en-us/help/2287297/a-com-application-may-stop-working-on-windows-server-2008-when-a-user

...