Доступные типы маршрутов

AGGREGATOR: Маршрут для агрегирования нескольких сообщений на основе заданных критериев.

LISTENER-QUEUE-ARTEMIS: Маршрут для интеграции с использованием очередей брокера сообщений ActiveMQ Artemis, с прослушиванием и обработкой сообщений в рамках интеграционных маршрутов.

QUARTZ: Маршрут используется для планирования задач с помощью Quartz Scheduler. Он позволяет запускать маршруты на основе расписания, которое можно настроить с помощью Cron выражений или простых интервалов времени.

ROUTE-CALLABLE: Маршрут для выполнения настраиваемых логик и операций, позволяющий вызывать различные функции и взаимодействовать с внешними системами.

SUBSCRIPTION-TOPIC-ARTEMIS: Маршрут для интеграции с использованием подписки на топики брокера сообщений ActiveMQ Artemis, с прослушиванием и обработкой сообщений в рамках интеграционных маршрутов.

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

AGGREGATOR

При настройке маршрута агрегатора необходимо указать хотя бы одно из следующих полей:

  • Completion Predicate: Предикат для указания завершения агрегированного обмена.

  • Completion Timeout Expression: Выражение для задания времени ожидания завершения агрегации.

  • Completion Size Expression: Выражение, определяющее количество сообщений, после достижения которого агрегация будет завершена.

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

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для маршрута агрегатора. Предустановленное значение - AGGREGATOR.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

On-complete route

Маршрут, который будет выполнен после завершения агрегации.

Correlation Expression

Обязательный параметр. Выражение, используемое для вычисления ключа корреляции для агрегации сообщений. Сообщения с одинаковым ключом корреляции будут агрегироваться вместе. Если ключ корреляции не может быть применен, будет сгенерировано исключение. Вы можете отключить это с помощью параметра ignoreBadCorrelationKeys.

Completion Predicate

Предикат для указания завершения агрегированного обмена. Если не задан, будет использован объект AggregationStrategy как completionPredicate, если он реализует Predicate.

Completion Timeout Expression

Время в миллисекундах, в течение которого агрегированное сообщение должно оставаться неактивным до завершения (тайм-аут). Может быть задано как фиксированное значение или с помощью выражения для динамической оценки тайм-аута. Если заданы оба параметра, Camel будет использовать фиксированное значение, если результат выражения равен null или 0. Не может использоваться одновременно с completionInterval. По умолчанию проверка тайм-аута выполняется каждую секунду; частоту проверок можно настроить с помощью параметра completionTimeoutCheckerInterval. Тайм-аут приблизительный и может не сработать точно по истечении указанного времени. Не рекомендуется использовать очень низкие значения тайм-аута или частоты проверок.

Parallel Processing

Когда агрегация сообщений завершается, они передаются дальше. Этот параметр определяет, будет ли Camel использовать пул потоков для параллельной обработки сообщений. Если пользовательский пул не указан, Camel создаст стандартный пул с 10 потоками.

Optimistic Locking

Включает или отключает оптимистичное блокирование.

Aggregation Repository Ref

Устанавливает пользовательский агрегатный репозиторий. По умолчанию используется org.apache.camel.processor.aggregate.MemoryAggregationRepository.

Strategy Ref

Стратегии агрегации:

Factory:

GROUPED :: BODY - Агрегирует входящие сообщения в один объект, который содержит все агрегированные тела сообщений в виде списка типа Object в теле сообщения.

String - Агрегирует входящие сообщения в один объект, который содержит все агрегированные тела сообщений в виде строки в теле сообщения.

Delimiter - Разделитель, с помощью которого выполняется объединение.

Completion On New Correlation Group

Завершает агрегацию при поступлении новой корреляционной группы.

Eager Check Completion

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

Ignore Invalid Correlation Keys

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

Close Correlation Key On Completion

Закрывает ключ корреляции после завершения агрегации. Если позднее поступят сообщения с ключом, который уже был закрыт, они будут отклонены, и будет сгенерировано исключение ClosedCorrelationKeyException.

Discard On Completion Timeout

Удаляет агрегированное сообщение по истечении времени завершения.

Discard On Aggregation Failure

Удаляет агрегированное сообщение, если агрегация завершилась с ошибкой (из-за исключения из AggregationStrategy). Частично агрегированное сообщение будет отброшено и не отправлено из агрегатора. Не может использоваться одновременно с completionFromBatchConsumer.

Complete All On Stop

Завершает обработку всех текущих и частично агрегированных сообщений при остановке маршрута.

Main

Параметр Описание

Global call mode

Определяет способ вызова маршрута (для всех сущностей в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

Local call mode

Определяет способ вызова маршрута (только для текущей сущности в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

Completion

Completion Size Expression Выражение, определяющее количество сообщений, после достижения которого агрегация завершится.

Completion Size

Количество сообщений для завершения агрегации. Может быть задано как фиксированное значение или с помощью выражения для динамической оценки размера. Если заданы оба значения, будет использовано фиксированное значение, если результат выражения равен null или 0.

Completion Interval

Время в миллисекундах, через которое агрегатор завершает обработку агрегированных сообщений. Camel выполняет фоновую задачу, которая срабатывает через указанный интервал. Не может использоваться одновременно с completionTimeout; необходимо выбрать один из двух.

Completion Timeout

Время в миллисекундах, в течение которого агрегированное сообщение должно оставаться неактивным до завершения (тайм-аут). Может быть задано как фиксированное значение или с помощью выражения для динамической оценки тайм-аута. Если заданы оба параметра, Camel будет использовать фиксированное значение, если результат выражения равен null или 0. Не может использоваться одновременно с completionInterval. По умолчанию проверка тайм-аута выполняется каждую секунду; частоту проверок можно настроить с помощью параметра completionTimeoutCheckerInterval. Тайм-аут приблизительный и может не сработать точно по истечении указанного времени. Не рекомендуется использовать слишком низкие значения тайм-аута или частоты проверок.

Completion From Batch Consumer

Включает режим агрегации, при котором сообщения собираются от org.apache.camel.BatchConsumer. Агрегация завершается, когда BatchConsumer сообщает о завершении обработки пакета сообщений, проверяя свойство org.apache.camel.Exchange#BATCH_COMPLETE. Не может использоваться одновременно с discardOnAggregationFailure.

Force Completion On Stop

Принудительно завершает агрегацию сообщений при остановке маршрута.

LISTENER-QUEUE-ARTEMIS

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - LISTENER :: QUEUE :: ARTEMIS

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route

Редактирование маршрута.

Connection

Используемая коннекция

Queue name

Название очереди, которая используется в качестве пункта назначения.

Consumer priority

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

Common

Параметр Описание

Client Id

Определяет JMS идентификатор клиента, который должен быть уникальным и может использоваться только одним экземпляром JMS-соединения. Обычно требуется только для долговременных подписок на топики. При использовании Apache ActiveMQ вы можете рассмотреть возможность использования виртуальных топиков.

Disable Reply To

Определяет, игнорирует ли Camel заголовок JMSReplyTo в сообщениях. Если значение установлено в true, Camel не будет отправлять ответ на адрес, указанный в заголовке JMSReplyTo. Эта опция может быть полезна, если вы хотите, чтобы Camel только получал сообщения из маршрута, не отправляя автоматические ответные сообщения, так как их обработку выполняет другой компонент в вашем коде. Также вы можете использовать эту опцию, если хотите настроить Camel как прокси между различными брокерами сообщений, маршрутизируя сообщения из одной системы в другую.

Durable Subscription Name

Имя подписчика для долговременных подписок на топики. Также необходимо настроить параметр clientId.

Jms Message Type

Позволяет принудительно использовать определенную реализацию javax.jms.Message для отправки JMS-сообщений. Возможные значения: Bytes, Map, Object, Stream, Text. По умолчанию Camel определяет тип JMS-сообщения в зависимости от типа тела входного сообщения. Этот параметр дает возможность явно указать тип сообщения.

Test Connection On Startup

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

Consumer

Параметр Описание

Acknowledgement Mode Name

Имя режима подтверждения JMS, которое может быть одним из:

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

CLIENT_ACKNOWLEDGE: Сообщение считается подтверждённым клиентом только после явного вызова метода acknowledge() на сообщении.

AUTO_ACKNOWLEDGE: Сообщения автоматически подтверждаются системой JMS сразу после их успешной доставки клиенту, без необходимости вызова acknowledge().

DUPS_OK_ACKNOWLEDGE: Сообщения подтверждаются системой JMS автоматически, но допускается возможность дублирования сообщений при сбоях.

Async Consumer

Определяет, обрабатывает ли JmsConsumer обмен сообщениями асинхронно. При включении JmsConsumer может забирать следующее сообщение из очереди JMS, пока предыдущее обрабатывается асинхронно (механизмом асинхронной маршрутизации), что может привести к обработке сообщений не в строгом порядке. Если отключено (по умолчанию), обмен полностью обрабатывается перед получением следующего сообщения из очереди. Если транзакция включена, асинхронная обработка (asyncConsumer=true) не будет работать, так как транзакция должна выполняться синхронно (Camel 3.0 может поддерживать асинхронные транзакции).

Auto Startup

Определяет автоматический запуск потребителя при старте.

Cache Level

Устанавливает уровень кеша по идентификатору для основных ресурсов JMS. Смотрите опцию cacheLevelName для получения более подробной информации.

Cache Level Name

Устанавливает уровень кеша по имени для основных ресурсов JMS. Возможные значения: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE и CACHE_SESSION. Значение по умолчанию — CACHE_AUTO.

Concurrent Consumers

Определяет количество потребителей, работающих одновременно при потреблении данных из JMS (не для запросов/ответов через JMS). Также смотрите опцию maxMessagesPerTask, чтобы управлять динамическим масштабированием потоков увеличением/уменьшением. При выполнении запросов/ответов через JMS используется опция replyToConcurrentConsumers для управления количеством одновременных потребителей на слушателе ответных сообщений.

Max Concurrent Consumers

Определяет максимальное количество потребителей, работающих одновременно при потреблении данных из JMS (не для запросов/ответов через JMS). Также смотрите опцию maxMessagesPerTask, чтобы управлять динамическим масштабированием потоков увеличением/уменьшением. При выполнении запросов/ответов через JMS используется опция replyToConcurrentConsumers для управления количеством одновременных потребителей на слушателе ответных сообщений.

Reply To

Определяет назначение ReplyTo, которое переопределяет любое входящее значение Message.getJMSReplyTo().

Reply To Delivery Persistent

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

Selector

Определяет используемый JMS-селектор.

Subscription Durable

Определяет, будет ли подписка долговременной. Имя долговременной подписки может быть указано через свойство subscriptionName. По умолчанию значение false. Установите true, чтобы зарегистрировать долговременную подписку, обычно в сочетании со значением subscriptionName (если имя класса вашего слушателя сообщений не подходит в качестве имени подписки). Имеет смысл только при прослушивании топика (pub-sub домен), поэтому данный параметр также переключает флаг pubSubDomain.

Subscription Name

Задает имя создаваемой подписки. Применяется для топиков (в домене pub-sub) с общей или долговременной подпиской. Имя подписки должно быть уникальным в рамках идентификатора JMS клиента. По умолчанию используется имя класса указанного слушателя сообщений. Обратите внимание, что для каждой подписки разрешен только один одновременный потребитель (это значение по умолчанию для контейнера слушателя сообщений), за исключением общей подписки, которая требует поддержки JMS 2.0.

Subscription Shared

Определяет, будет ли подписка общей. Имя общей подписки может быть задано через свойство subscriptionName. По умолчанию значение false. Установите чек-бокс, чтобы зарегистрировать общую подписку, обычно в сочетании со значением subscriptionName (если имя класса вашего слушателя сообщений не подходит в качестве имени подписки). Обратите внимание, что общие подписки также могут быть долговременными, поэтому этот флаг может (и часто будет) сочетаться с subscriptionDurable. Имеет смысл только при прослушивании топика (в домене pub-sub), поэтому данный метод также переключает флаг pubSubDomain. Требуется совместимый с JMS 2.0 брокер сообщений.

Consumer (advanced)

Параметр Описание

Accept Messages While Stopping

Определяет, будет ли потребитель принимать сообщения во время остановки. Рассмотрите возможность включения чек-бокса, если вы запускаете и останавливаете JMS-маршруты, когда сообщения все еще находятся в очереди. Если чек-бокс отключен и вы останавливаете JMS-маршрут, сообщения могут быть отклонены, что приведет к необходимости их повторной доставки со стороны JMS-брокера. Это может привести к повторным отклонениям, в результате чего сообщения могут быть перемещены в очередь «мертвых букв». Чтобы избежать этой ситуации, рекомендуется включить данную опцию.

Allow Reply Manager Quick Stop

Определяет, разрешает ли DefaultMessageListenerContainer, используемый в менеджерах ответов для обмена сообщениями типа «запрос-ответ», быструю остановку флага DefaultMessageListenerContainer.runningAllowed, если включен флаг JmsConfiguration#isAcceptMessagesWhileStopping и в данный момент происходит остановка org.apache.camel.CamelContext. Эта возможность быстрой остановки активирована по умолчанию для обычных JMS-потребителей, но для её включения в менеджерах ответов необходимо активировать этот флаг.

Consumer Type

Определяет тип потребителя, который следует использовать. Возможные значения: Simple, Default или Custom.
Тип потребителя определяет, какой слушатель Spring JMS будет применяться.
Default использует org.springframework.jms.listener.DefaultMessageListenerContainer;
Simple — org.springframework.jms.listener.SimpleMessageListenerContainer;
Custom определяет, какая реализация org.springframework.jms.listener.AbstractMessageListenerContainer будет использоваться, в зависимости от фабрики, заданной в опции messageListenerContainerFactory.

Default Task Executor Type

Параметр, задающий тип TaskExecutor, который будет использоваться по умолчанию в DefaultMessageListenerContainer для потребителей и для потребителей в ReplyTo продюсерских конечных точках. Доступные значения: SimpleAsync (использует Spring SimpleAsyncTaskExecutor) и ThreadPool (использует Spring ThreadPoolTaskExecutor с оптимальными параметрами, аналогичными кэшируемому пулу потоков). Если параметр не задан, применяется предустановленное поведение: для потребителей — кэшированный пул потоков, а для ReplyTo потребителей — SimpleAsync. Рекомендуется выбирать ThreadPool для уменьшения избыточного создания потоков в конфигурациях, где число одновременно работающих потребителей может динамически изменяться.

Eager Loading Of Properties

Включает ускоренную загрузку свойств JMS и полезной нагрузки сразу после загрузки сообщения. Хотя это обычно неэффективно, так как свойства JMS могут не понадобиться, иногда такая загрузка может помочь выявить проблемы с базовым JMS-провайдером и использованием свойств JMS на ранней стадии. Смотрите также опцию eagerPoisonBody.

Eager Poison Body

Если функция eagerLoadingOfProperties включена и полезная нагрузка JMS-сообщения (тело JMS или свойства JMS) является "ядом" (не может быть прочитана или сопоставлена), то данный текст устанавливается в качестве тела сообщения, чтобы его можно было обработать (причина "яда" уже сохранена в виде исключения в Exchange). Эту опцию можно отключить, установив eagerPoisonBody=false. Смотрите также опцию eagerLoadingOfProperties.

Expose Listener Session

Определяет, следует ли открывать сессию слушателя при получении сообщений.

Reply To Same Destination Allowed

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

Task Executor

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

Exception Handler

Позволяет потребителю использовать пользовательский обработчик исключений (ExceptionHandler). Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не будет использоваться. По умолчанию потребитель обрабатывает исключения, которые регистрируются на уровнях WARN или ERROR и игнорируются.

Exchange Pattern

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

InOnly: Сообщение отправляется без ожидания ответа.
InOut: Сообщение отправляется с ожиданием ответа.
InOptionalOut: Сообщение может быть отправлено с ожиданием ответа, но ответ не является обязательным.

Advanced

Параметр Описание

Allow Serialized Headers

Определяет, включать или нет сериализованные заголовки. Применяется только при условии, что transferExchange равно true. Это требует, чтобы объекты были сериализуемыми. Camel исключает любые несериализуемые объекты и записывает соответствующее сообщение в журнал на уровне WARN.

Artemis Streaming Enabled

Активация потокового режима Apache Artemis.

Async Start Listener

Определяет, нужно ли запускать слушатель сообщений JmsConsumer асинхронно при старте маршрута. Если JmsConsumer не может установить соединение с удалённым JMS-брокером, он может заблокироваться во время попыток повторного подключения или переключения, что может привести к блокировке Camel при запуске маршрутов. Активировав этот параметр, вы позволите маршрутам запускаться, в то время как JmsConsumer будет подключаться к JMS-брокеру в асинхронном режиме, используя отдельный поток. Однако важно помнить, что если соединение не удастся установить, в журнале будет зарегистрировано исключение на уровне WARN, и потребитель не сможет получать сообщения. Для повторной попытки вы сможете перезапустить маршрут.

Async Stop Listener

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

Basic Property Binding

Определяет, должен ли компонент использовать базовое связывание свойств (Camel 2.x) или новое связывание свойств с дополнительными возможностями.

Configuration

Использование общей JMS конфигурации.

Destination Resolver

Подключаемый модуль org.springframework.jms.support.destination.DestinationResolver, который позволяет использовать собственный резольвер (например, для поиска реального пункта назначения в реестре JNDI).

Error Handler

Определяет org.springframework.util.ErrorHandler, который будет вызываться при возникновении любых необработанных исключений в процессе обработки сообщения. По умолчанию такие исключения регистрируются на уровне WARN, если обработчик ошибок не был настроен. Вы можете настроить уровень протоколирования и необходимость записи трассировок стека с помощью опций errorHandlerLoggingLevel и errorHandlerLogStackTrace. Это делает настройку более удобной по сравнению с необходимостью разработки собственного обработчика ошибок.

Exception Listener

Указывает слушателя исключений JMS, который будет уведомлен о любых внутренних исключениях JMS.

Idle Consumer Limit

Указывает лимит на количество потребителей, которые могут быть неактивны в любой момент времени.

Idle Task Execution Limit

Указывает предел для бездействующих выполнений задачи получения, при которых не было получено ни одного сообщения в процессе выполнения. Если этот предел будет достигнут, задача завершится, и получение сообщений будет передано другим выполняющимся задачам (в случае динамического планирования; смотрите параметр maxConcurrentConsumers). Дополнительная документация доступна в Spring.

Include All JMSXProperties

Определяет, следует ли включать все свойства JMSXxxx при отображении из JMS в Camel Message. Активация чек-бокса приведет к включению таких свойств, как JMSXAppID, JMSXUserID и т. д. Обратите внимание, что если вы используете пользовательскую стратегию фильтрации заголовков, эта опция не будет применяться.

Jms Key Format Strategy

Подключаемая стратегия для кодирования и декодирования ключей JMS, чтобы они соответствовали спецификации JMS. Camel предоставляет две реализации по умолчанию: default и passthrough. Стратегия default безопасно маршализует точки и дефисы (. и -). Стратегия passthrough оставляет ключ без изменений. Она может использоваться для JMS-брокеров, которые не обращают внимания на наличие недопустимых символов в ключах заголовков JMS. Вы также можете предоставить свою собственную реализацию org.apache.camel.component.jms.JmsKeyFormatStrategy и ссылаться на нее с помощью нотации #.

Map Jms Message

Определяет, должен ли Camel автоматически сопоставлять полученное JMS-сообщение с подходящим типом полезной нагрузки, например, javax.jms.TextMessage со строкой и т.д.

Max Messages Per Task

Определяет количество сообщений, обрабатываемых одной задачей. Значение -1 позволяет обработать неограниченное количество сообщений. Если используется диапазон для параллельных потребителей (например, min и max), эта опция позволяет установить, например, значение 100, чтобы контролировать скорость сокращения числа потребителей, когда объем работы уменьшается.

Message Converter

Используйте пользовательский конвертер Spring org.springframework.jms.support.converter.MessageConverter, чтобы контролировать процесс отображения данных в/из javax.jms.Message.

Message Created Strategy

Для использования данной MessageCreatedStrategy, которая вызывается, когда Camel создает новые экземпляры объектов javax.jms.Message при отправке JMS-сообщения.

Message Id Enabled

При отправке указывает, следует ли добавлять идентификаторы сообщений. Это всего лишь подсказка для JMS-брокера. Если JMS-провайдер принимает эту подсказку, идентификатор сообщения должен быть установлен в null; если провайдер игнорирует подсказку, идентификатор сообщения должен быть установлен на его обычное уникальное значение.

Message Listener Container Factory

Идентификатор реестра MessageListenerContainerFactory, используемый для определения того, какой org.springframework.jms.listener.AbstractMessageListenerContainer использовать для потребления сообщений. Установка этого параметра автоматически устанавливает consumerType в Custom.

Message Timestamp Enabled

Определяет, должны ли временные метки по умолчанию быть включены при отправке сообщений. Это всего лишь подсказка для JMS-брокера. Если JMS-провайдер принимает эту подсказку, временная метка этих сообщений должна быть установлена в ноль; если провайдер игнорирует подсказку, временная метка должна быть установлена на свое обычное значение.

Pub Sub No Local

Определяет, следует ли запрещать доставку сообщений, опубликованных через собственное соединение.

Receive Timeout

Таймаут для получения сообщений (в миллисекундах).

Recovery Interval

Определяет интервал между попытками восстановления соединения в миллисекундах. По умолчанию составляет 5000 мс, то есть 5 секунд.

Request Timeout Checker Interval

Настраивает, как часто Camel должен проверять истекшие Exchanges при выполнении запроса/ответа через JMS. По умолчанию Camel проверяет раз в секунду. Однако если вам необходимо быстрее реагировать на истечение времени ожидания, вы можете уменьшить этот интервал, чтобы проверять чаще. Таймаут определяется опцией requestTimeout.

Transfer Exception

Если эта функция включена и вы используете обмен сообщениями Request Reply (InOut), и обмен не удался на стороне потребителя, то вызванное исключение будет отправлено обратно в ответ в виде javax.jms.ObjectMessage. Если клиент — это Camel, то возвращенное исключение будет повторно выброшено. Это позволяет использовать Camel JMS в качестве моста в маршрутизации — например, используя постоянные очереди для обеспечения надежной маршрутизации. Обратите внимание, что если также включен параметр transferExchange, эта опция имеет приоритет. Перехваченное исключение должно быть сериализуемым. Исходное исключение на стороне потребителя может быть обернуто во внешнее исключение, например, org.apache.camel.RuntimeCamelException, при возврате к производителю. Используйте это с осторожностью, так как данные используют сериализацию объектов Java и требуют, чтобы получатель мог десериализовать данные на уровне класса, что приводит к сильной связности между производителями и потребителями!

Transfer Exchange

Вы можете передавать весь обмен сообщениями, а не только тело и заголовки. При этом передаются следующие поля: входное тело, выходное тело, тело ошибки, входные заголовки, выходные заголовки, заголовки ошибок, свойства обмена и исключение обмена. Это требует, чтобы все объекты были сериализуемыми. Camel исключит любые несериализуемые объекты и зафиксирует это в журнале на уровне WARN. Данная опция должна быть включена как на стороне производителя, так и на стороне потребителя, чтобы Camel мог распознать полезную нагрузку как обмен, а не как обычную полезную нагрузку. Используйте эту возможность с осторожностью, так как данные используют сериализацию объектов Java и требуют, чтобы получатель мог десериализовать данные на уровне класса, что приводит к сильной связанности между производителями и потребителями, которым необходимо использовать совместимые версии Camel.

Use Message IDAs Correlation ID

Определяет, следует ли всегда использовать JMSMessageID в качестве JMSCorrelationID для сообщений типа InOut.

Wait For Provision Correlation To Be Updated Counter

Количество попыток ожидания обновления временного идентификатора корреляции до фактического идентификатора корреляции при выполнении запросов/ответов через JMS и при включенной опции useMessageIDAsCorrelationID.

Wait For Provision Correlation To Be Updated Thread Sleeping Time

Интервал в миллисекундах, на который система будет приостанавливать выполнение каждый раз, ожидая обновления временного идентификатора корреляции.

Synchronous

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

Filter

Параметр Описание

Header Filter Strategy

Для использования пользовательской стратегии фильтрации заголовков org.apache.camel.spi.HeaderFilterStrategy для фильтрации заголовков в сообщениях Camel.

Logging

Параметр Описание

Error Handler Logging Level

Позволяет настроить уровень логирования по умолчанию для обработчика ошибок (errorHandler) при регистрации неперехваченных исключений.

Error Handler Log Stack Trace

Позволяет контролировать, должны ли стековые трассы регистрироваться или нет, используя стандартный обработчик ошибок (errorHandler).

Transaction

Параметр Описание

Transacted

Определяет, следует ли использовать транзакционный режим.

Transaction (advanced)

Параметр Описание

Lazy Create Transaction Manager

Если установлено значение true, Camel создаст JmsTransactionManager, если при включенной опции transacted=true не будет передан transactionManager.

Transaction Manager

Используемый менеджер транзакций Spring.

Transaction Name

Имя используемой транзакции.

Transaction Timeout

Значение тайм-аута транзакции (в секундах), если используется транзакционный режим.

QUARTZ

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - QUARTZ.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route content

Редактирование маршрута.

Group Name

Имя группы, которое будет использоваться для Quartz. Комбинация имени группы и имени таймера должна быть уникальной.

Trigger Name

Имя таймера, которое будет использоваться для Quartz. Комбинация имени таймера и имени группы должна быть уникальной.

Consumer

Параметр Описание

Bridge Error Handler

Позволяет перенаправлять исключения, возникающие во время работы потребителя в систему маршрутизации ошибок Camel. Это означает, что любые исключения, которые по умолчанию обрабатываются стандартным обработчиком исключений (org.apache.camel.spi.ExceptionHandler) и логируются на уровне WARN или ERROR, теперь будут обрабатываться как сообщения и управляться через механизмы обработки ошибок.

Prefix Job Name With Endpoint Id

Определяет, нужно ли добавлять идентификатор конечной точки в имя задания Quartz. По умолчанию установлено значение false.

Cron

Указывает cron-выражение для определения времени триггера. Используйте + вместо пробелов, например, 0+0/1++1/1++?+* (каждую минуту). Значение по умолчанию — каждую секунду.

Delete Job

Если установлено значение true, задание автоматически удаляется, когда маршрут останавливается. Если установлено значение false, задание останется в планировщике. При значении false также возможно повторное использование заранее настроенного триггера с URI Camel, убедитесь, что имена совпадают. Обратите внимание, что нельзя одновременно устанавливать deleteJob и pauseJob в true.

Durable Job

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

Pause Job

Если установлено значение true, триггер автоматически становится на паузу, когда маршрут останавливается. Если установлено значение false, триггер останется в планировщике. При значении false также возможно повторное использование заранее настроенного триггера с URI Camel, убедитесь, что имена совпадают. Обратите внимание, что нельзя одновременно устанавливать deleteJob и pauseJob в true.

Recoverable Job

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

Stateful

Использует Quartz PersistJobDataAfterExecution и DisallowConcurrentExecution вместо стандартного задания.

Advanced

Параметр Описание

Basic Property Binding

Определяет, следует ли использовать основное связывание свойств (Camel 2.x) или более новую версию связывания свойств с дополнительными возможностями.

Synchronous

Устанавливает, следует ли использовать строго синхронную обработку, или Camel может использовать асинхронную обработку (если это поддерживается).

Using Fixed Camel Context Name

Если значение равно true, JobDataMap использует имя CamelContext напрямую для ссылки на CamelContext, если значение равно false, JobDataMap использует имя управления CamelContext, которое может быть изменено во время развертывания.

Scheduler

Параметр Описание

Auto Start Scheduler

Должен ли планировщик автоматически запускаться. По умолчанию эта опция установлена в true.

Start Delayed Seconds

Задержка старта в секундах. Время ожидания перед запуском планировщика Quartz.

Fire Now

Немедленный запуск. Если установлено в true, триггер сработает сразу после запуска маршрута при использовании SimpleTrigger.

Trigger Start Delay

Время (миллисекунды), на которое следует отложить начало работы триггера, если планировщик уже запущен. Эта задержка позволяет убедиться, что конечная точка маршрута полностью готова к обработке, прежде чем триггер начнет выполнение задания.

Consumer (advanced)

Параметр Описание

Exchange Pattern

Шаблон обмена сообщений определяет тип взаимодействия между потребителем и поставщиком в контексте маршрутизации сообщений:

InOnly — Потребитель отправляет запрос без ожидания ответа от поставщика. Этот шаблон подходит для сценариев, когда важно только доставить сообщение, а подтверждение его получения не требуется.

InOut — Потребитель отправляет запрос и ожидает получить ответ от поставщика. Это стандартный шаблон обмена для операций, требующих подтверждения успешного выполнения или получения результата обработки запроса.

InOptionalOut — Потребитель отправляет запрос и может ожидать ответ, но получение ответа является необязательным. Этот шаблон используется в случаях, когда ответ на запрос может быть полезен, но не критически важен для продолжения работы потребителя.

ROUTE-CALLABLE

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - ROUTE :: CALLABLE.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route

Редактирование маршрута.

Main

Параметр Описание

Global call mode

Определяет способ вызова маршрута (для всех сущностей в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

Local call mode

Определяет способ вызова маршрута (только для текущей сущности в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

SUBSCRIPTION-TOPIC-ARTEMIS

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - SUBSCRIPTION :: TOPIC :: ARTEMIS

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route

Редактирование маршрута.

Connection

Используемая коннекция

Topic name

Название топика, который используется в качестве пункта назначения.

Consumer priority

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

Common

Параметр Описание

Client Id

Определяет JMS идентификатор клиента, который должен быть уникальным и может использоваться только одним экземпляром JMS-соединения. Обычно требуется только для долговременных подписок на топики. При использовании Apache ActiveMQ вы можете рассмотреть возможность использования виртуальных топиков.

Disable Reply To

Определяет, игнорирует ли Camel заголовок JMSReplyTo в сообщениях. Если значение установлено в true, Camel не будет отправлять ответ на адрес, указанный в заголовке JMSReplyTo. Эта опция может быть полезна, если вы хотите, чтобы Camel только получал сообщения из маршрута, не отправляя автоматические ответные сообщения, так как их обработку выполняет другой компонент в вашем коде. Также вы можете использовать эту опцию, если хотите настроить Camel как прокси между различными брокерами сообщений, маршрутизируя сообщения из одной системы в другую.

Durable Subscription Name

Имя подписчика для долговременных подписок на топики. Также необходимо настроить параметр clientId.

Jms Message Type

Позволяет принудительно использовать определенную реализацию javax.jms.Message для отправки JMS-сообщений. Возможные значения: Bytes, Map, Object, Stream, Text. По умолчанию Camel определяет тип JMS-сообщения в зависимости от типа тела входного сообщения. Этот параметр дает возможность явно указать тип сообщения.

Test Connection On Startup

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

Consumer

Параметр Описание

Acknowledgement Mode Name

Имя режима подтверждения JMS, которое может быть одним из:

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

CLIENT_ACKNOWLEDGE: Сообщение считается подтверждённым клиентом только после явного вызова метода acknowledge() на сообщении.

AUTO_ACKNOWLEDGE: Сообщения автоматически подтверждаются системой JMS сразу после их успешной доставки клиенту, без необходимости вызова acknowledge().

DUPS_OK_ACKNOWLEDGE: Сообщения подтверждаются системой JMS автоматически, но допускается возможность дублирования сообщений при сбоях.

Async Consumer

Определяет, обрабатывает ли JmsConsumer обмен сообщениями асинхронно. При включении JmsConsumer может забирать следующее сообщение из очереди JMS, пока предыдущее обрабатывается асинхронно (механизмом асинхронной маршрутизации), что может привести к обработке сообщений не в строгом порядке. Если отключено (по умолчанию), обмен полностью обрабатывается перед получением следующего сообщения из очереди. Если транзакция включена, асинхронная обработка (asyncConsumer=true) не будет работать, так как транзакция должна выполняться синхронно (Camel 3.0 может поддерживать асинхронные транзакции).

Auto Startup

Определяет автоматический запуск потребителя при старте.

Cache Level

Устанавливает уровень кеша по идентификатору для основных ресурсов JMS. Смотрите опцию cacheLevelName для получения более подробной информации.

Cache Level Name

Устанавливает уровень кеша по имени для основных ресурсов JMS. Возможные значения: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE и CACHE_SESSION. Значение по умолчанию — CACHE_AUTO.

Concurrent Consumers

Определяет количество потребителей, работающих одновременно при потреблении данных из JMS (не для запросов/ответов через JMS). Также смотрите опцию maxMessagesPerTask, чтобы управлять динамическим масштабированием потоков увеличением/уменьшением. При выполнении запросов/ответов через JMS используется опция replyToConcurrentConsumers для управления количеством одновременных потребителей на слушателе ответных сообщений.

Max Concurrent Consumers

Определяет максимальное количество потребителей, работающих одновременно при потреблении данных из JMS (не для запросов/ответов через JMS). Также смотрите опцию maxMessagesPerTask, чтобы управлять динамическим масштабированием потоков увеличением/уменьшением. При выполнении запросов/ответов через JMS используется опция replyToConcurrentConsumers для управления количеством одновременных потребителей на слушателе ответных сообщений.

Reply To

Определяет назначение ReplyTo, которое переопределяет любое входящее значение Message.getJMSReplyTo().

Reply To Delivery Persistent

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

Selector

Определяет используемый JMS-селектор.

Subscription Durable

Определяет, будет ли подписка долговременной. Имя долговременной подписки может быть указано через свойство subscriptionName. По умолчанию значение false. Установите true, чтобы зарегистрировать долговременную подписку, обычно в сочетании со значением subscriptionName (если имя класса вашего слушателя сообщений не подходит в качестве имени подписки). Имеет смысл только при прослушивании топика (pub-sub домен), поэтому данный параметр также переключает флаг pubSubDomain.

Subscription Name

Задает имя создаваемой подписки. Применяется для топиков (в домене pub-sub) с общей или долговременной подпиской. Имя подписки должно быть уникальным в рамках идентификатора JMS клиента. По умолчанию используется имя класса указанного слушателя сообщений. Обратите внимание, что для каждой подписки разрешен только один одновременный потребитель (это значение по умолчанию для контейнера слушателя сообщений), за исключением общей подписки, которая требует поддержки JMS 2.0.

Subscription Shared

Определяет, будет ли подписка общей. Имя общей подписки может быть задано через свойство subscriptionName. По умолчанию значение false. Установите чек-бокс, чтобы зарегистрировать общую подписку, обычно в сочетании со значением subscriptionName (если имя класса вашего слушателя сообщений не подходит в качестве имени подписки). Обратите внимание, что общие подписки также могут быть долговременными, поэтому этот флаг может (и часто будет) сочетаться с subscriptionDurable. Имеет смысл только при прослушивании топика (в домене pub-sub), поэтому данный метод также переключает флаг pubSubDomain. Требуется совместимый с JMS 2.0 брокер сообщений.

Consumer (advanced)

Параметр Описание

Accept Messages While Stopping

Определяет, будет ли потребитель принимать сообщения во время остановки. Рассмотрите возможность включения чек-бокса, если вы запускаете и останавливаете JMS-маршруты, когда сообщения все еще находятся в очереди. Если чек-бокс отключен и вы останавливаете JMS-маршрут, сообщения могут быть отклонены, что приведет к необходимости их повторной доставки со стороны JMS-брокера. Это может привести к повторным отклонениям, в результате чего сообщения могут быть перемещены в очередь «мертвых букв». Чтобы избежать этой ситуации, рекомендуется включить данную опцию.

Allow Reply Manager Quick Stop

Определяет, разрешает ли DefaultMessageListenerContainer, используемый в менеджерах ответов для обмена сообщениями типа «запрос-ответ», быструю остановку флага DefaultMessageListenerContainer.runningAllowed, если включен флаг JmsConfiguration#isAcceptMessagesWhileStopping и в данный момент происходит остановка org.apache.camel.CamelContext. Эта возможность быстрой остановки активирована по умолчанию для обычных JMS-потребителей, но для её включения в менеджерах ответов необходимо активировать этот флаг.

Consumer Type

Определяет тип потребителя, который следует использовать. Возможные значения: Simple, Default или Custom.
Тип потребителя определяет, какой слушатель Spring JMS будет применяться.
Default использует org.springframework.jms.listener.DefaultMessageListenerContainer;
Simple — org.springframework.jms.listener.SimpleMessageListenerContainer;
Custom определяет, какая реализация org.springframework.jms.listener.AbstractMessageListenerContainer будет использоваться, в зависимости от фабрики, заданной в опции messageListenerContainerFactory.

Default Task Executor Type

Параметр, задающий тип TaskExecutor, который будет использоваться по умолчанию в DefaultMessageListenerContainer для потребителей и для потребителей в ReplyTo продюсерских конечных точках. Доступные значения: SimpleAsync (использует Spring SimpleAsyncTaskExecutor) и ThreadPool (использует Spring ThreadPoolTaskExecutor с оптимальными параметрами, аналогичными кэшируемому пулу потоков). Если параметр не задан, применяется предустановленное поведение: для потребителей — кэшированный пул потоков, а для ReplyTo потребителей — SimpleAsync. Рекомендуется выбирать ThreadPool для уменьшения избыточного создания потоков в конфигурациях, где число одновременно работающих потребителей может динамически изменяться.

Eager Loading Of Properties

Включает ускоренную загрузку свойств JMS и полезной нагрузки сразу после загрузки сообщения. Хотя это обычно неэффективно, так как свойства JMS могут не понадобиться, иногда такая загрузка может помочь выявить проблемы с базовым JMS-провайдером и использованием свойств JMS на ранней стадии. Смотрите также опцию eagerPoisonBody.

Eager Poison Body

Если функция eagerLoadingOfProperties включена и полезная нагрузка JMS-сообщения (тело JMS или свойства JMS) является "ядом" (не может быть прочитана или сопоставлена), то данный текст устанавливается в качестве тела сообщения, чтобы его можно было обработать (причина "яда" уже сохранена в виде исключения в Exchange). Эту опцию можно отключить, установив eagerPoisonBody=false. Смотрите также опцию eagerLoadingOfProperties.

Expose Listener Session

Определяет, следует ли открывать сессию слушателя при получении сообщений.

Reply To Same Destination Allowed

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

Task Executor

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

Exception Handler

Позволяет потребителю использовать пользовательский обработчик исключений (ExceptionHandler). Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не будет использоваться. По умолчанию потребитель обрабатывает исключения, которые регистрируются на уровнях WARN или ERROR и игнорируются.

Exchange Pattern

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

InOnly: Сообщение отправляется без ожидания ответа.
InOut: Сообщение отправляется с ожиданием ответа.
InOptionalOut: Сообщение может быть отправлено с ожиданием ответа, но ответ не является обязательным.

Advanced

Параметр Описание

Allow Serialized Headers

Определяет, включать или нет сериализованные заголовки. Применяется только при условии, что transferExchange равно true. Это требует, чтобы объекты были сериализуемыми. Camel исключает любые несериализуемые объекты и записывает соответствующее сообщение в журнал на уровне WARN.

Artemis Streaming Enabled

Активация потокового режима Apache Artemis.

Async Start Listener

Определяет, нужно ли запускать слушатель сообщений JmsConsumer асинхронно при старте маршрута. Если JmsConsumer не может установить соединение с удалённым JMS-брокером, он может заблокироваться во время попыток повторного подключения или переключения, что может привести к блокировке Camel при запуске маршрутов. Активировав этот параметр, вы позволите маршрутам запускаться, в то время как JmsConsumer будет подключаться к JMS-брокеру в асинхронном режиме, используя отдельный поток. Однако важно помнить, что если соединение не удастся установить, в журнале будет зарегистрировано исключение на уровне WARN, и потребитель не сможет получать сообщения. Для повторной попытки вы сможете перезапустить маршрут.

Async Stop Listener

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

Basic Property Binding

Определяет, должен ли компонент использовать базовое связывание свойств (Camel 2.x) или новое связывание свойств с дополнительными возможностями.

Configuration

Использование общей JMS конфигурации.

Destination Resolver

Подключаемый модуль org.springframework.jms.support.destination.DestinationResolver, который позволяет использовать собственный резольвер (например, для поиска реального пункта назначения в реестре JNDI).

Error Handler

Определяет org.springframework.util.ErrorHandler, который будет вызываться при возникновении любых необработанных исключений в процессе обработки сообщения. По умолчанию такие исключения регистрируются на уровне WARN, если обработчик ошибок не был настроен. Вы можете настроить уровень протоколирования и необходимость записи трассировок стека с помощью опций errorHandlerLoggingLevel и errorHandlerLogStackTrace. Это делает настройку более удобной по сравнению с необходимостью разработки собственного обработчика ошибок.

Exception Listener

Указывает слушателя исключений JMS, который будет уведомлен о любых внутренних исключениях JMS.

Idle Consumer Limit

Указывает лимит на количество потребителей, которые могут быть неактивны в любой момент времени.

Idle Task Execution Limit

Указывает предел для бездействующих выполнений задачи получения, при которых не было получено ни одного сообщения в процессе выполнения. Если этот предел будет достигнут, задача завершится, и получение сообщений будет передано другим выполняющимся задачам (в случае динамического планирования; смотрите параметр maxConcurrentConsumers). Дополнительная документация доступна в Spring.

Include All JMSXProperties

Определяет, следует ли включать все свойства JMSXxxx при отображении из JMS в Camel Message. Активация чек-бокса приведет к включению таких свойств, как JMSXAppID, JMSXUserID и т. д. Обратите внимание, что если вы используете пользовательскую стратегию фильтрации заголовков, эта опция не будет применяться.

Jms Key Format Strategy

Подключаемая стратегия для кодирования и декодирования ключей JMS, чтобы они соответствовали спецификации JMS. Camel предоставляет две реализации по умолчанию: default и passthrough. Стратегия default безопасно маршализует точки и дефисы (. и -). Стратегия passthrough оставляет ключ без изменений. Она может использоваться для JMS-брокеров, которые не обращают внимания на наличие недопустимых символов в ключах заголовков JMS. Вы также можете предоставить свою собственную реализацию org.apache.camel.component.jms.JmsKeyFormatStrategy и ссылаться на нее с помощью нотации #.

Map Jms Message

Определяет, должен ли Camel автоматически сопоставлять полученное JMS-сообщение с подходящим типом полезной нагрузки, например, javax.jms.TextMessage со строкой и т.д.

Max Messages Per Task

Определяет количество сообщений, обрабатываемых одной задачей. Значение -1 позволяет обработать неограниченное количество сообщений. Если используется диапазон для параллельных потребителей (например, min и max), эта опция позволяет установить, например, значение 100, чтобы контролировать скорость сокращения числа потребителей, когда объем работы уменьшается.

Message Converter

Используйте пользовательский конвертер Spring org.springframework.jms.support.converter.MessageConverter, чтобы контролировать процесс отображения данных в/из javax.jms.Message.

Message Created Strategy

Для использования данной MessageCreatedStrategy, которая вызывается, когда Camel создает новые экземпляры объектов javax.jms.Message при отправке JMS-сообщения.

Message Id Enabled

При отправке указывает, следует ли добавлять идентификаторы сообщений. Это всего лишь подсказка для JMS-брокера. Если JMS-провайдер принимает эту подсказку, идентификатор сообщения должен быть установлен в null; если провайдер игнорирует подсказку, идентификатор сообщения должен быть установлен на его обычное уникальное значение.

Message Listener Container Factory

Идентификатор реестра MessageListenerContainerFactory, используемый для определения того, какой org.springframework.jms.listener.AbstractMessageListenerContainer использовать для потребления сообщений. Установка этого параметра автоматически устанавливает consumerType в Custom.

Message Timestamp Enabled

Определяет, должны ли временные метки по умолчанию быть включены при отправке сообщений. Это всего лишь подсказка для JMS-брокера. Если JMS-провайдер принимает эту подсказку, временная метка этих сообщений должна быть установлена в ноль; если провайдер игнорирует подсказку, временная метка должна быть установлена на свое обычное значение.

Pub Sub No Local

Определяет, следует ли запрещать доставку сообщений, опубликованных через собственное соединение.

Receive Timeout

Таймаут для получения сообщений (в миллисекундах).

Recovery Interval

Определяет интервал между попытками восстановления соединения в миллисекундах. По умолчанию составляет 5000 мс, то есть 5 секунд.

Request Timeout Checker Interval

Настраивает, как часто Camel должен проверять истекшие Exchanges при выполнении запроса/ответа через JMS. По умолчанию Camel проверяет раз в секунду. Однако если вам необходимо быстрее реагировать на истечение времени ожидания, вы можете уменьшить этот интервал, чтобы проверять чаще. Таймаут определяется опцией requestTimeout.

Transfer Exception

Если эта функция включена и вы используете обмен сообщениями Request Reply (InOut), и обмен не удался на стороне потребителя, то вызванное исключение будет отправлено обратно в ответ в виде javax.jms.ObjectMessage. Если клиент — это Camel, то возвращенное исключение будет повторно выброшено. Это позволяет использовать Camel JMS в качестве моста в маршрутизации — например, используя постоянные очереди для обеспечения надежной маршрутизации. Обратите внимание, что если также включен параметр transferExchange, эта опция имеет приоритет. Перехваченное исключение должно быть сериализуемым. Исходное исключение на стороне потребителя может быть обернуто во внешнее исключение, например, org.apache.camel.RuntimeCamelException, при возврате к производителю. Используйте это с осторожностью, так как данные используют сериализацию объектов Java и требуют, чтобы получатель мог десериализовать данные на уровне класса, что приводит к сильной связности между производителями и потребителями!

Transfer Exchange

Вы можете передавать весь обмен сообщениями, а не только тело и заголовки. При этом передаются следующие поля: входное тело, выходное тело, тело ошибки, входные заголовки, выходные заголовки, заголовки ошибок, свойства обмена и исключение обмена. Это требует, чтобы все объекты были сериализуемыми. Camel исключит любые несериализуемые объекты и зафиксирует это в журнале на уровне WARN. Данная опция должна быть включена как на стороне производителя, так и на стороне потребителя, чтобы Camel мог распознать полезную нагрузку как обмен, а не как обычную полезную нагрузку. Используйте эту возможность с осторожностью, так как данные используют сериализацию объектов Java и требуют, чтобы получатель мог десериализовать данные на уровне класса, что приводит к сильной связанности между производителями и потребителями, которым необходимо использовать совместимые версии Camel.

Use Message IDAs Correlation ID

Определяет, следует ли всегда использовать JMSMessageID в качестве JMSCorrelationID для сообщений типа InOut.

Wait For Provision Correlation To Be Updated Counter

Количество попыток ожидания обновления временного идентификатора корреляции до фактического идентификатора корреляции при выполнении запросов/ответов через JMS и при включенной опции useMessageIDAsCorrelationID.

Wait For Provision Correlation To Be Updated Thread Sleeping Time

Интервал в миллисекундах, на который система будет приостанавливать выполнение каждый раз, ожидая обновления временного идентификатора корреляции.

Synchronous

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

Filter

Параметр Описание

Header Filter Strategy

Для использования пользовательской стратегии фильтрации заголовков org.apache.camel.spi.HeaderFilterStrategy для фильтрации заголовков в сообщениях Camel.

Logging

Параметр Описание

Error Handler Logging Level

Позволяет настроить уровень логирования по умолчанию для обработчика ошибок (errorHandler) при регистрации неперехваченных исключений.

Error Handler Log Stack Trace

Позволяет контролировать, должны ли стековые трассы регистрироваться или нет, используя стандартный обработчик ошибок (errorHandler).

Transaction

Параметр Описание

Transacted

Transacted

Определяет, следует ли использовать транзакционный режим.

Transaction (advanced)

Параметр Описание

Lazy Create Transaction Manager

Если установлено значение true, Camel создаст JmsTransactionManager, если при включенной опции transacted=true не будет передан transactionManager.

Transaction Manager

Используемый менеджер транзакций Spring.

Transaction Name

Имя используемой транзакции.

Transaction Timeout

Значение тайм-аута транзакции (в секундах), если используется транзакционный режим.

TIMER

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - TIMER.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route content

Редактирование маршрута.

Timer Name

Имя таймера.

Consumer

Параметр Описание

Bridge Error Handler

Позволяет перенаправлять исключения, возникающие во время работы потребителя в систему маршрутизации ошибок Camel. Это означает, что любые исключения, которые по умолчанию обрабатываются стандартным обработчиком исключений (org.apache.camel.spi.ExceptionHandler) и логируются на уровне WARN или ERROR, теперь будут обрабатываться как сообщения и управляться через механизмы обработки ошибок.

Delay

Задержка перед срабатыванием первого события. Значение по умолчанию - 1 секунда.

Fixed Rate

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

Include Metadata

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

Period

Если значение больше 0, генерирует периодические события каждый раз через указанный интервал времени. Значение по умолчанию - 1 секунда.

Repeat Count

Задает максимальное количество срабатываний. Например, если установить значение 1, таймер сработает только один раз. Если установить значение 5, таймер сработает пять раз. Значение 0 или отрицательное значение означает, что таймер будет срабатывать бесконечно.

Advanced

Параметр Описание

Basic Property Binding

Определяет, следует ли применять базовый метод связывания свойств, доступный в Apache Camel начиная с версии 2.x, или использовать более продвинутый вариант, который предлагает расширенные возможности и функциональность.

Daemon

Указывает, запускается ли поток, связанный с конечной точкой таймера, в качестве демона. Значение по умолчанию — true.

Pattern

Позволяет указать пользовательский шаблон формата даты, используемый для установки параметра времени через синтаксис URI.

Synchronous

Устанавливает, следует ли использовать строго синхронную обработку, или Camel может использовать асинхронную обработку (если это поддерживается).

Time

Дата в формате java.util.Date, для которой должно быть сгенерировано первое событие. Если используется URI, ожидается следующий шаблон: yyyy-MM-dd HH:mm:ss или yyyy-MM-dd’T’HH:mm:ss.

Consumer (advanced)

Параметр Описание

Exchange Pattern

Шаблон обмена сообщений определяет тип взаимодействия между потребителем и поставщиком в контексте маршрутизации сообщений:

InOnly — Потребитель отправляет запрос без ожидания ответа от поставщика. Этот шаблон подходит для сценариев, когда важно только доставить сообщение, а подтверждение его получения не требуется.

InOut — Потребитель отправляет запрос и ожидает получить ответ от поставщика. Это стандартный шаблон обмена для операций, требующих подтверждения успешного выполнения или получения результата обработки запроса.

InOptionalOut — Потребитель отправляет запрос и может ожидать ответ, но получение ответа является необязательным. Этот шаблон используется в случаях, когда ответ на запрос может быть полезен, но не критически важен для продолжения работы потребителя.