Перейти к основному содержимому
Начало работы
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя

Idempotent consumer

Общее описание

Блок Idempotent Consumer используется для фильтрации дублирующихся сообщений. Идентификатор сообщения добавляется в хранилище для того, чтобы обнаружить дубликаты в запущенных процессах обмена сообщениями. Если обмен сообщениями закончился ошибкой, идентификатор сообщения будет удален из хранилища. При успешном завершении обмена сообщениями идентификатор остается в хранилище.

Настройка блока

В данном разделе описаны параметры блока Idempotent Consumer, которые необходимо заполнить при настройке и примеры заполнения значений этих параметров.

Базовые параметры блока Idempotent Consumer

Название в UIНазвание атрибутаОбязательныйОписаниеЗначение по умолчаниюТип данных
LanguagelanguageДа

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

Возможные значения:

  • groovy

  • js

  • java

  • constant

  • simple

  • xpath

groovyСписок
ExpressionexpressionДаВыражение для вычисления корреляционного ключа, который будет использоваться для проверки на дублирование. Техническое сообщение, имеющее такой же корреляционный ключ, рассматривается как дублирующее и будет отклонено.Выражение
Result TyperesultTypeНетФормат результата вычисления условия.Строка
Idempotent RepositoryidempotentRepositoryИмя идемпотентного хранилища идентификаторов сообщений. Доступные значения выбираются из списка зарегистрированных в системе хранилищ.Список
TrimtrimНетЗадает нужно ли отсекать перенос строки и пробелы в начале и конце значения.TrueЛогическое значение
DescriptiondescriptionКраткое описание блока.Строка

Расширенные параметры блока Idempotent Consumer

НазваниеНазваниеОбязательныйОписаниеЗначение по умолчаниюТип данных
DisableddisabledОпределяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться.FalseЛогическое значение
EagereagerОпределяет, следует ли сразу при обнаружении дубликата добавлять ключ в идемпотентный репозиторий или подождать завершения процесса.TrueЛогическое значение
Skip DuplicateskipDuplicateОпределяет, следует ли пропускать дубликаты или нет. По умолчанию дубликаты будут пропущены.TrueЛогическое значение
Completion EagercompletionEager

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

Если этот параметр имеет значение True, то блок инициирует завершение процесса, когда достигнут конец блока. Таким образом, если обмен будет продолжен с маршрутизацией после завершения блока, то, что бы там ни происходило, это не повлияет на состояние. Если этот параметр имеет значение False (по умолчанию), то есть не завершается автоматически, то блок завершит работу, когда процесс будет завершен с маршрутизацией. Таким образом, если обмен будет продолжен после завершения блока, то все, что там произойдет, также повлияет на состояние. Например, если обмен завершился неудачно из-за исключения, то блок откатит изменения.

FalseЛогическое значение
Remove On FailureremoveOnFailureОпределяет, следует ли удалять или сохранять ключ в случае ошибки.TrueЛогическое значение