DTExec: выполнение пакета вернуло DTSER_FAILURE (1) при выполнении пакета служб SSIS
У меня есть этот вопрос в рамках проекта в ssis. Мне пришлось разделить оригинальный проект на разные пакеты, потому что это было слишком много, и иногда это могло спровоцировать некоторые проблемы с памятью. Итак, чтобы связать разные пакеты, я использую "Выполнить задачу пакета", чтобы ссылаться друг на друга. Если я выполняю пакет напрямую из служб SSIS, он работает отлично, проблем нет. Но если я использую планировщик для программирования времени выполнения, я получаю следующее сообщение об ошибке:
Ошибка: 2015-09-22 14:54:37.98 Код: 0xC00220E6 Источник: Выполнить пакет Описание задачи: Нет проекта для ссылки. Ошибка завершения: 2015-09-22 14:54:37.99 Код: 0xC0024107 Источник: Выполнить пакет Описание задачи: Во время проверки задачи возникли ошибки. Ошибка завершения DTExec: выполнение пакета вернуло DTSER_FAILURE (1).
Интересно, что может происходить с проектом и его исполнением.
С уважением
1 ответ
Я не уверен, какой планировщик вы используете или как он настроен, но вы можете отладить свой путь через это, имитируя планировщик с помощью DTExec. Похоже, вы пересекли Setup
а также Execution Method
(см. ниже для этих определений).
Вот краткое изложение.
- Вариант 1. Для установки используйте
Project References
а для метода выполнения используйтеProject/Package
, - Вариант 2. Для установки, для каждого дочернего пакета, используйте
External References
и для метода выполнения используйтеFile
,
(Похоже, вы используете комбинацию Project References
а также File
который в свою очередь отправляет There is no project to reference
ошибка от дочерних пакетов.)
Опция 1
Настроить
Откройте родительский пакет в SSDT, а затем дважды щелкните дочерний пакет. Это должно выглядеть так:
Метод исполнения
Этот параметр означает, что вам нужно выполнить пакет с помощью метода Project/Package через DTExec. Итак, создайте свой проект - это создаст файл ispac. И чтобы выполнить через dtexec, это будет выглядеть так:
dtexec /Proj Path\To\MyProject.ispac /Pack Path\To\The\ParentPackage.dtsx
Примечание: если вы укажете dtsproj
файл вместо ispac
файл в /Proj
параметр, вы получите File contains corrupted data
ошибка!
Вариант 2
Настроить
Откройте родительский пакет в SSDT, а затем дважды щелкните дочерний пакет. Измените это, чтобы выглядеть так:
Это сделано
1. Изменение типа ссылки на внешнюю ссылку
2. Изменение расположения на файловую систему (SQL Server - это еще один вариант)
3. Выберите <New connection...>
создать новое файловое соединение для запуска дочернего пакета (или соединение с сервером SQL)
Метод исполнения
Этот параметр означает, что теперь вы можете использовать метод File, который, вероятно, является способом, которым вы пытаетесь выполнить пакет.
dtexec /f Path\To\My\ParentPackage.dtsx