Каналы

IBM® MQ может использовать 3 разных типа каналов: канал сообщений, канал MQI и канал AMQP.

Не следует путать эти разные типы каналов:

Канал сообщений
Канал сообщений, представляющий собой однонаправленный канал связи между двумя администраторами очередей. IBM MQ использует каналы сообщений для передачи сообщений между администраторами очередей. Для передачи сообщений в обоих направлениях необходимо определить канал для каждого направления.
MQI channel
Канал MQI, который является двунаправленным и соединяет приложение (клиент MQI) с администратором очередей в системе сервера. IBM MQ использует каналы MQI для передачи вызовов и ответов MQI между клиентами MQI и администраторами очередей.
[UNIX, Linux, Windows, IBM i]Канал AMQP
Канал AMQP - двунаправленный канал, соединяющий AMQP с администратором очередей на сервере. IBM MQ использует каналы AMQP для передачи вызовов AMQP и ответов между приложениями AMQP и администраторами очередей.

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

Каналы сообщений

Существуют следующие типы определений канала сообщений:

Тип определения канала сообщений Описание
Отправитель Канал отправителя - это канал сообщений, который используется администратором очередей для отправки сообщений другим администраторам очередей. Для передачи сообщений с помощью канала отправителя необходимо создать для другого администратора очередей канал получателя с тем же именем, что и у канала отправителя. Если реализуется механизм "обратного вызова", то с каналами отправителя можно использовать каналы запроса.
Канал сервера Канал сервера - это канал сообщений, используемый администратором очередей для отправки сообщений другим администраторам очередей. Для передачи сообщений с помощью канала сервера необходимо создать для другого администратора очередей канал получателя с тем же именем, что и у канала сервера. Каналы сервера можно использовать с каналами запроса. В этом случае определение канала запроса на другом конце канала требует, чтобы было запущено определение канала сервера. Сервер отправляет сообщения запрашивающей стороне. Сервер также может инициировать соединение, если ему известно имя соединения канала партнера.
Канал получателя Канал получателя - это канал сообщений, который используется администратором очередей для приема сообщений от других администраторов очередей. Для получения сообщений по каналу получателя необходимо создать для другого администратора очередей канал отправителя или канал сервера с тем же именем, что и у канала получателя.
Канал запроса Канал запроса - это канал сообщений, который используется администратором очередей для приема сообщений от других администраторов очередей. Канал запроса может инициировать запуск канала партнера на другом конце соединения. Если канал партнера - канал сервера, то он принимает запрос на начало и начинает отправлять сообщения из очереди передачи, указанной в определении канала сервера, в канал запроса. Если канал партнера - канал отправителя, то он принимает запрос на начало, но затем закрывает соединение с каналом запроса. После чего канал отправителя открывает сеанс с партнерским каналом запроса и начинает отправлять сообщения из очереди передачи, указанной в определении канала отправителя. По существу, последний случай представляет собой механизм обратного вызова, в котором канал запроса просит канал отправителя сделать обратный вызов.
Кластерный канал отправителя Определение кластерного канала отправителя (CLUSSDR) задает отправляющий конец канала, с которого администратор очередей кластера может отправлять информацию о кластере в одно из полных хранилищ. Кластерный канал отправителя применяется для уведомления хранилища о любых изменениях состояния администратора очередей, например, о добавлении или удалении очереди. Кроме того, он используется для передачи сообщений. Для самих администраторов очередей полного хранилища существуют кластерные каналы отправителя, связывающие их друг с другом. С помощью этих каналов администраторы очередей передают изменения состояния кластера друг другу. Неважно, на какое полное хранилище указывает определение канала CLUSSDR администратора очередей. После установления первоначального соединения в дальнейшем объекты администратора очередей кластера определяются автоматически, по требованию, так что администратор очередей может передавать информацию о кластере в каждое полное хранилище, а сообщения - в каждый администратор очередей. Дополнительная информация приведена в разделе Кластеры администраторов очередей.
Кластерный канал получателя Определение кластерного канала получателя (CLUSRCVR) задает принимающий конец канала, на котором администратор очередей кластера может получать сообщения от других администраторов очередей в кластере. Кроме того, по кластерному каналу получателя можно передавать сведения об информации о кластере, направляемой в хранилище. Определяя кластерный канал получателя, администратор очередей указывает другим администраторам очередей кластера, что он доступен для приема сообщений. Для каждого администратора очередей кластера должен быть определен по крайней мере один кластерный канал получателя. Дополнительная информация приведена в разделе Кластеры администраторов очередей.

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

Допустимые следующие сочетания определений канала:

  • Отправитель-получатель
  • Сервер-получатель
  • Инициатор-сервер
  • Инициатор-отправитель (обратный вызов)
  • Кластерный отправитель-кластерный получатель

Агенты канала сообщений

Каждое созданное вами определение канала принадлежит определенному администратору очередей. У администратора очередей может быть несколько каналов одного или разных типов. На каждом конце канала есть программа, называемая Агент канала сообщений (MCA). На одном конце канала MCA вызывающей стороны извлекает сообщения из очереди передачи и передает их по каналу. На другом конце канала MCA принимающей стороны принимает сообщения и доставляет их в удаленный администратор очередей.

MCA вызывающей стороны может быть связан с каналом отправителя, каналом сервера или каналом запроса. MCA отвечающей стороны может быть связан с каналом сообщений любого типа.

В IBM MQ поддерживаются следующие сочетания типов каналов на двух концах соединения:

Вызывающая сторона Направление прохождения сообщения Отвечающая сторона
Тип канала Требуется ли получатель сообщений?   Требуется ли получатель сообщений? Тип канала
Отправитель Нет От вызывающей стороны к отвечающей Да Канал получателя
Канал сервера Нет От вызывающей стороны к отвечающей Да Канал получателя
Канал сервера Нет От вызывающей стороны к отвечающей Да Канал запроса
Канал запроса Нет От отвечающей стороны к вызывающей Да Канал сервера
Канал запроса Да От отвечающей стороны к вызывающей Да Отправитель

Каналы MQI

Существуют следующие типы каналов MQI:

Тип канала MQI Описание
Канал связи сервера Канал связи сервера - это двунаправленный канал MQI, который используется для подключения клиента IBM MQ к серверу IBM MQ. Канал связи сервера - это серверный конец канала.
Канал связи клиента Канал связи сервера - это двунаправленный канал MQI, который используется для подключения клиента IBM MQ к серверу IBM MQ. Кроме того, IBM MQ Explorer использует соединения с клиентом для подключения к удаленным администраторам очередей. Канал связи клиента - это клиентский конец канала. При создании канала связи клиента на компьютере создается файл для размещения администратора очередей. Этот файл необходимо затем скопировать в систему клиента IBM MQ.
[UNIX, Linux, Windows, IBM i]

Каналы AMQP

Существует только один тип канала AMQP.

Этот канал используется для подключения приложения обмена сообщениями AMQP к администратору очередей, позволяя приложению обмениваться сообщениями с приложениями IBM MQ. Канал AMQP позволяет разработать приложение, использующее MQ Light, и развернуть его как приложение Java EE, давая возможность использовать функции корпоративного уровня, предоставляемые IBM MQ.

Дополнительная информация о каналах приведена в разделе Каналы в IBM Knowledge Center.