powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML Task
6 сообщений из 6, страница 1 из 1
XML Task
    #40082410
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В контейнере перебираю XML-файлы и проверяю их на валидность перед тем как загрузить их в БД. Загрузка регулярная. Файлов несколько десятков тыс день через день.

ValidationDetails у задачи выставлено в True. При этом, как положено, она вываливает детальные результаты валидации в XML-файл, указанный в Destination.

Среди файлов иногда попадаются not well formed. XML Task при этом вываливает ошибку (что не вызывает вопросов), но при этом формирует пустой XML-файл с результатами валидации. Точнее вообще без них (здесь уже не совсем понятно, зачем он это делает). Такой файл сразу после работы XML-Task нужно удалить.

При возникновении такой ошибки через управление очередностью в том же контейнере стоит выполнение задачи File System Task, которая должна удалить выше названный пустой XML-файл.

И ничего не выходит.

[File System Task] Ошибка: An error occurred with the following error message: "Процесс не может получить доступ к файлу "...", так как этот файл используется другим процессом.".

Я так понимаю, XML Task, вывалившийся в ошибку, его и держит. Как победить?!
...
Рейтинг: 0 / 0
XML Task
    #40082411
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smile,

используйте контейнер последовательности если дежит именно xml task.
но доступ к файлу может быть из процесса dtExec (или как он там) для всего пакета, в таком случае нужно запланировать отложенное удаление в другом пакете или что нибудь типа того.
...
Рейтинг: 0 / 0
XML Task
    #40082416
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,
Там две ветки после XML Task. Вторую я уже описал. А первая отрабатывает, если XML Task выполнил валидацию штатно, т.е. если файл был well formed. В ней стоит второй XML Task, в котором из файла с результатами валидации wellformed-файла XPath-запросом достаю результат валидации и если он true, то удалю в File System Task файл с результатами валидации. Он без проблем удаляется, а мне остаются только файлы с результатами невалидных файлов.

Очевидно, что проблема удаления во второй ветке связана с тем, что первый XML Task вываливается в ошибку, а файл с результатами валидации остается все еще не закрытым.
С контейнерами игрался, не помогает =(

Отложенное удаление вторым пакетом — ну как-то не красиво. Почти как руками удалить после работы первого =)
...
Рейтинг: 0 / 0
XML Task
    #40082417
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда пакет выполнился, но еще находится в режиме отладки, удалить руками тоже не получается.
ОС так и пишет, что SSIS Debug Host его и держит.
...
Рейтинг: 0 / 0
XML Task
    #40082424
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Догадываюсь, что XML Task открывает файл, что б писать в него, начинает валидацию, обламывается, генерирует ошибку, а файл остаётся все ещё открытым. Не понятно зачем. Вот как его заставить его закрыть? Через обработчики событий, может, но как именно?
...
Рейтинг: 0 / 0
XML Task
    #40082527
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, результаты валидации пишу в переменную, а не в файл, а дальше, по необходимости, пишу или не пишу ее в файл Script Task-ом.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML Task
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]