Проблема с коллекторным узлом (IIB)

Проблема с узлом-сборщиком: в настоящее время я использую узел-сборщик для группировки сообщений (XML). Мое требование - собирать сообщения до получения последнего сообщения. (Чтение из файлового ввода)

  1. Терминал управления: я отправляю управляющее сообщение, чтобы остановить сбор и передать его следующему узлу. Но это не работает. Поскольку он все еще ожидает выполнения условия тайм-аута / количества.

МОЙ ВОПРОС: Какое условие я могу использовать для сбора сообщений до последнего полученного сообщения?


person Sai    schedule 24.05.2017    source источник


Ответы (2)


Добавьте отдельный входной терминал на узел Collector, который используется для завершения коллекции. Как только вы отправляете сообщение на второй терминал, сборка завершается и распространяется.

person user8497292    schedule 21.08.2017

Терминал управления может использоваться для сигнализации узлу сборщика, когда распространяются полные коллекции, а не для определения того, когда коллекция завершена.

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

Поэтому, если вы заранее не знаете, сколько сообщений хотите включить в коллекцию, у вас есть 3 варианта:

  • Установите количество сообщений на 0 и установите соответствующий тайм-аут для входных клемм.

Таким образом, узел будет включать все сообщения, полученные за время между первым сообщением и значением тайм-аута в коллекции.

  • Установите большое число в качестве количества сообщений и используйте срок действия сбора

По истечении срока действия коллекции неполные коллекции могут быть переданы на терминал истечения срока действия, но это будет работать практически так же, как и предыдущий метод.

  • Создайте свой собственный коллекторский поток

Вы можете разработать поток для объединения сообщений с использованием узлов ввода, получения и вывода MQ, сохраняя промежуточные объединенные сообщения в очередях MQ. Используйте этот поток, чтобы объединить ваши входные данные и отправить полное сообщение во входную очередь вашего потока обработки.

person Attila Repasi    schedule 25.05.2017