JT400

Поддерживаются как производитель, так и потребитель

Компонент JT400 позволяет обмениваться сообщениями с системой IBM i с использованием очередей данных, очередей сообщений или вызова программ. IBM i -- это замена для серверов AS/400 и iSeries.

Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jt400</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

Для отправки или получения данных из очереди данных:

<span style="color: rgb(0,0,0);">jt400://user:password/system/QSYS.LIB/library.LIB/queue.DTAQ[?options]</span>

Для отправки или получения сообщений из очереди сообщений:

<span style="color: rgb(0,0,0);">jt400://user:password/system/QSYS.LIB/library.LIB/queue.MSGQ[?options]</span>

Для вызова программы:

<span style="color: rgb(0,0,0);">jt400://user:password/system/QSYS.LIB/library.LIB/program.PGM[?options]</span>

Configuring Options

Компоненты настраиваются на двух отдельных уровнях:

  • component level

  • edpoint level

Configuring Component Options

На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.

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

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

Компоненты можно настроить с использованием:

  • Component DSL.

  • Конфигурационного файла (application.properties, *.yaml files, etc).

  • Напрямую в Java code.

Configuring Endpoint Options

Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.

Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.

Хорошей практикой при настройке параметров является использование Property Placeholders.

Property placeholders предоставляют несколько преимуществ:

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

  • Позволяют вынести конфигурацию за пределы кода.

  • Делают код более гибким и удобным для повторного использования.

Component properties

Ccsid

  • Устанавливает CCSID для использования при подключении к системе IBM i.

  • По умолчанию:

  • Тип: int

Format

  • Устанавливает формат данных для отправки сообщений.

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

    • text

    • binary

  • По умолчанию: text

  • Тип: Format

Gui Available

  • Устанавливает, включено ли запрашивание IBM i в среде, где работает Camel.

  • По умолчанию: false

  • Тип: boolean

Keyed

  • Определяет, использовать ли ключевые или не ключевые очереди данных.

  • По умолчанию: false

  • Тип: boolean

Message Action

  • Действие, которое следует выполнить с сообщениями при чтении из очереди сообщений. Сообщения могут быть помечены как старые (OLD), удалены из очереди (REMOVE) или оставлены без изменений (SAME).

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

    • OLD

    • REMOVE

    • SAME

  • По умолчанию: OLD

  • Тип: MessageAction

Object Path

  • Обязательное поле - Возвращает полное имя пути интегрированной файловой системы целевого объекта этого endpoint.

  • По умолчанию:

  • Тип: String

Read Timeout

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

  • По умолчанию: 30000

  • Тип: int

Search Key

  • Ключ поиска для ключевых очередей данных.

  • По умолчанию:

  • Тип: String

Search Type

  • Тип поиска, например, EQ для равенства и т.д.

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

    • EQ

    • NE

    • LT

    • LE

    • GT

    • GE

  • По умолчанию:

  • Тип:

Send Empty Message When Idle

  • Тип: Если потребитель, работающий в режиме опроса, не обнаружил ни одного файла, вы можете включить эту опцию, чтобы отправлять пустое сообщение (без тела) вместо этого.

  • По умолчанию: false

  • Тип: boolean

Sending Reply

  • Если значение true, endpoint потребителя установит заголовок Jt400Constants.MESSAGE_REPLYTO_KEY для любого сообщения-запроса IBM i, полученного в сообщении Camel. Если это сообщение затем направляется в endpoint производителя, действие не будет обработано как отправка сообщения в очередь, а как ответ на конкретное сообщение-запрос.

  • По умолчанию: true

  • Тип: boolean

Type

  • Обязательное поле - Определяет, работать ли с очередями данных или с удалённым вызовом программы.

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

    • DTAQ

    • PGM

    • SRVPGM

    • MSGQ

  • По умолчанию:

  • Тип: Jt400Type

Component scheduler properties

Backoff Error Threshold

  • Количество последовательных неудачных опросов (из-за ошибки), после которых должен начать действовать коэффициент понижения частоты опросов (backoffMultiplier).

  • По умолчанию:

  • Тип: int

Backoff Idle Threshold

  • Тип: Количество пустых опросов подряд, после которых должен начать действовать коэффициент понижения частоты опросов (backoffMultiplier).

  • По умолчанию:

  • Тип: int

Backoff Multiplier

  • Позволяет планируемому потребителю в режиме опроса снижать частоту опросов, если произошло несколько последовательных холостых опросов или ошибок. Множитель определяет количество опросов, которые будут пропущены перед следующей попыткой. При использовании этой опции также необходимо настроить параметры backoffIdleThreshold и/или backoffErrorThreshold.

  • По умолчанию:

  • Тип: int

Delay

  • Тип: Количество миллисекунд до следующего опроса.

  • По умолчанию: 500

  • Тип: long

Greedy

  • Если включен режим greedy, то ScheduledPollConsumer снова выполнится немедленно, если предыдущий опрос вернул 1 или больше сообщений.

  • По умолчанию: false

  • Тип: boolean

Initial Delay

  • Количество миллисекунд до начала первого опроса.

  • По умолчанию: 1000

  • Тип: long

Repeat Count

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

  • По умолчанию: 0

  • Тип: long

Run Logging Level

  • Потребитель записывает в журнал строку начала/завершения при опросе. Эта опция позволяет настроить уровень логирования для этого.

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

    • TRACE

    • DEBUG

    • INFO

    • WARN

    • ERROR

    • OFF

  • По умолчанию: TRACE

  • Тип: LoggingLevel

Scheduled Executor Service

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

  • По умолчанию:

  • Тип: ScheduledExecutorService

Scheduler

  • Для использования планировщика cron из компонента camel-spring или camel-quartz. Используйте значение spring или quartz для встроенного планировщика.

  • По умолчанию: none

  • Тип: Object

Scheduler Properties

  • Для настройки дополнительных свойств при использовании пользовательского планировщика или любого из планировщиков на основе Quartz или Spring.

  • По умолчанию:

  • Тип: Map

Start Scheduler

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

  • По умолчанию: true

  • Тип: boolean

Time Unit

  • Единица измерения времени для опций initialDelay и delay.

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

    • NANOSECONDS

    • MICROSECONDS

    • MILLISECONDS

    • SECONDS

    • MINUTES

    • HOURS

    • DAYS

  • По умолчанию: MILLISECONDS

  • Тип: TimeUnit

Use Fixed Delay

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

  • По умолчанию: true

  • Тип: boolean

Component security properties

User ID

  • Обязательное поле - Возвращает идентификатор пользователя IBM i.

  • По умолчанию:

  • Тип: String

Password

  • Обязательное поле - Возвращает пароль пользователя IBM i.

  • По умолчанию:

  • Тип: String

System Name

  • Тип: Обязательное поле - Возвращает имя системы IBM i.

  • По умолчанию:

  • Тип: String

Secured

  • Определяет, защищены ли соединения с IBM i с использованием SSL.

  • По умолчанию: false

  • Тип: boolean

Component advanced properties

Bridge Error Handler

  • Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.

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

  • По умолчанию: false

  • Тип: boolean

Exception Handler

  • Позволяет потребителю использовать собственный ExceptionHandler.

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

  • По умолчанию:

  • Тип: ExceptionHandler

Exchange Pattern

  • Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).

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

    • InOnly

    • InOut

  • По умолчанию:

  • Тип: ExchangePattern

Poll Strategy

  • Тип: Плагинируемая стратегия org.apache.camel.PollingConsumerPollingStrategy, позволяющая предоставить вашу собственную реализацию для управления обработкой ошибок, которые обычно возникают во время операции опроса до того, как Exchange был создан и маршрутизирован в Camel.

  • По умолчанию:

  • Тип: PollingConsumerPollStrategy