|
XML Task
|
|||
---|---|---|---|
#18+
В контейнере перебираю 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, вывалившийся в ошибку, его и держит. Как победить?! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 18:54 |
|
XML Task
|
|||
---|---|---|---|
#18+
Smile, используйте контейнер последовательности если дежит именно xml task. но доступ к файлу может быть из процесса dtExec (или как он там) для всего пакета, в таком случае нужно запланировать отложенное удаление в другом пакете или что нибудь типа того. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 19:07 |
|
XML Task
|
|||
---|---|---|---|
#18+
felix_ff, Там две ветки после XML Task. Вторую я уже описал. А первая отрабатывает, если XML Task выполнил валидацию штатно, т.е. если файл был well formed. В ней стоит второй XML Task, в котором из файла с результатами валидации wellformed-файла XPath-запросом достаю результат валидации и если он true, то удалю в File System Task файл с результатами валидации. Он без проблем удаляется, а мне остаются только файлы с результатами невалидных файлов. Очевидно, что проблема удаления во второй ветке связана с тем, что первый XML Task вываливается в ошибку, а файл с результатами валидации остается все еще не закрытым. С контейнерами игрался, не помогает =( Отложенное удаление вторым пакетом — ну как-то не красиво. Почти как руками удалить после работы первого =) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 19:26 |
|
XML Task
|
|||
---|---|---|---|
#18+
Когда пакет выполнился, но еще находится в режиме отладки, удалить руками тоже не получается. ОС так и пишет, что SSIS Debug Host его и держит. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 19:32 |
|
XML Task
|
|||
---|---|---|---|
#18+
Догадываюсь, что XML Task открывает файл, что б писать в него, начинает валидацию, обламывается, генерирует ошибку, а файл остаётся все ещё открытым. Не понятно зачем. Вот как его заставить его закрыть? Через обработчики событий, может, но как именно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 20:09 |
|
|
start [/forum/topic.php?fid=46&fpage=20&tid=1684536]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 306ms |
total: | 458ms |
0 / 0 |