Compute Node вычисляет данные из предыдущего потока - PullRequest
0 голосов
/ 17 января 2020

Вот так выглядит мой поток:

File Input -> File Read -> Compute -> Mapping -> Compute -> File Output

Из узла чтения файлов я сохраняю данные в ${LocalEnvironment}. Также попробовал ${Environment}. И вот что происходит за узлом вычисления:

  1. Отправка файла A - данные внутри среды A вычисляются (редактирование после ответа -> не вычисляется, поток неожиданно останавливается).
  2. Отправка файла B - вычисляются данные внутри среды A.
  3. Отправка файла C - вычисляются данные внутри среды B.
  4. Отправка файла D - данные внутри среды C вычислено.

Как это смещение вообще возможно? ${LocalEnvironment} должен быть сброшен в начале потока.

EDIT :

Никогда не используйте переменную окружения. Локальные переменные должны храниться внутри $LocalEnvironment/Variables.

Пояснение

Понятно. И даже сейчас я думаю, что мои переменные не очищаются. При чтении файла все еще выдается $LocalEnvironment/Variables/BLOB/BLOB из предыдущего запуска.

EDIT2: * Настройки узла: Ввод файла:

Input directory: C:\Users\User1\Documents\In
File pattern: *
Action on successful processing: move to mqsiarchive
Message domain: XMLNS (I know it should be XMLNSC but it works)
Use XMLNSC compact parser...: check

Чтение файла:

Input directory: C:\Users\User1\Documents\In\mqsiarchive
File name or pattern: *
Action: Delete
Request directory property location: $LocalEnvironment/Destination/File/Directory
Request filename property location: $LocalEnvironment/Destination/File/Name
Offset property location: $LocalEnvironment/Destination/File/Offset
Length property location: $LocalEnvironment/Destination/File/Length
Result data location: $ResultRoot
Output data location: $OutputLocalEnvironment/Variables
Copy local environment: check
Record selection expression: true()

Вычислить узлы:

Compute mode: LocalEnvironment and Message

Вывод файла (этот не имеет большого значения, поскольку проблема возникает даже без него):

Output directory: C:\Users\User1\Documents\Out
Filename or pattern: test.txt
Stage in mqsitransit...: check
Data location: $Body
Request directory property location: $LocalEnvironment/Destination/File/Directory
Request filename property location: $LocalEnvironment/Destination/File/Name

Свойства, которые я не упомянул: по умолчанию

1 Ответ

1 голос
/ 17 января 2020

Я думаю, что это работает так:

  • В транзакции 1. узлу File Read нечего читать, поскольку каталог архива пуст. Поэтому обрабатывается сообщение A из файла ввода.

  • В 2. транзакции узлы чтения файла находят сообщение A из 1. транзакции. Поэтому сообщение B просто архивируется, а сообщение A с узла File Read обрабатывается (снова).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...