Как говорилось в предыдущей лекции, сообщения передаются с помощью каналов, с одинаковыми именами, расположенными как на одном, так и на другом менеджере. (на AS/400 - strmqmchi ). На менеджере, отправляющем сообщение, должен быть создан канал отправитель, на менеджере получателе, соответственно, получатель. Рассмотрим подробнее работу пар каналов.
Sender => Receiver
Наиболее распространенная пара. Sender канал инициирует соединение с receiver каналом, затем передает сообщения.
Server => Receiver
В данном случае server канал выполняет роль sender канала. Пара имеет право на существование, но лучше использовать связку Sender => Receiver.
Server => Requester
В этой паре requester канал инициирует соединение, затем server канал начинает передачу данных.
Sender => Requester
Requester канал инициирует соединение в случае разрыва с sender каналом. Sender канал в свою очередь инициирует соединение с requester каналом, и только после этого начинается процесс передачи.
Каналы могут находиться в следующих
- WebSphere MQ делает попытку произвести старт канала.
- канал начал процесс старта и ждет установки соединения (активации слота).
- после активации слота идет попытка установления соединения и передача данных инициации между каналами.
- requester канал ждет ответа от sender канала.
- состояние при котором либо идет передача данных, либо канал отправитель ждет сообщений из
- канал ожидает истечения времени, указанного в атрибуте Message .
- канал переходит в это промежуточное состояние в процессе MQSC stop channel, либо при возникновении какой-либо ошибки.
- ожидание очередной попытки старта канала с помощью
- канал остановлен. Стартовать его можно либо с помощью WebSphere MQ Explorer либо с помощью команды MQSC start channel. Ниже мы приведем подробную инструкцию для старта каналов.
- состояние канала, говорящее о том, что либо он никогда не был стартован, либо истекло время, указанное в атрибуте Disconnect Interval для канала отправителя. Для канала получателя это нормальное состояние, так как он переходит в состояние Running при инициации связи со стороны канала отправителя.
![]() |
neutral (нейтральное). Соответствует состоянию Inactive |
![]() |
running (стартован). Соответствует только состоянию Running. |
![]() |
stopped (остановлен). Соответствует состоянию Stopped. |
![]() |
alert (неопределенное состояние). Соответствует состояниям Binding, Requesting, Retrying, Stopping. |
![]() |
warning (предупреждающее состояние). Обычно возникает при появлении ошибок. |
Как правило, Inactive, если в соответствующей
Для создания
Предположим, нам нужно передать сообщения от одного менеджера QM_Win2000_REP, расположенного на платформе NT, имеющего IP адрес 198.32.100.26, порт для службы listener - 1415 к другому менеджеру QM_HPUX, расположенному на платформе UNIX с адресом 198.32.100.16, порт для службы listener - 1421. Подключим менеджер QM_HPUX для удаленного управления с помощью WebSphere MQ Explorer. Создадим объекты на платформе UNIX:
Win2000_REP_HPUX.Q - в нее будет доставляться сообщение (рис. 4.1);Win2000_REP_HPUX.CH (рис. 4.2).Создадим объекты на менеджере QM_Win2000_REP:
Win2000_REP_HPUX_TRANS.TQ (рис. 4.3);удаленная локальная очередь Win2000_REP_HPUX_REMOT.RQ (рис. 4.4), имеющая атрибуты:
Remote Queue Name - Win2000_REP_HPUX.Q ;Remote Queue Manager Name - QM_HPUX ;Transmission Queue Name - Win2000_REP_HPUX_TRANS.TQ ;Win2000_REP_HPUX.CH (рис. 4.5), имеющий атрибуты:Connection Name - 198.32.100.16 ( 1421 );Transmission Queue - Win2000_REP_HPUX_TRANS.TQ ;
(рис 4.2) Локальная очередь Win2000_REP_HPUX.Q(рис 4.1) Receiver канал Win2000_REP_HPUX.CH
(рис 4.4) Трансмиссионная очередь Win2000_REP_HPUX_TRANS.TQ(рис 4.3) Удаленная локальная очередь Win2000_REP_HPUX_REMOT.RQ
(рис 4.5) sender канал Win2000_REP_HPUX.CHПоместим тестовое сообщение в локальную удаленную очередь Win2000_REP_HPUX_REMOT.RQ с помощью программы amqsput.exe, входящей в пакет демонстрационных программ, введя в командной строке:
amqsput Win2000_REP_HPUX_REMOT.RQ QM_Win2000_REP
Далее вводим текст сообщения:
Тестовое сообщение от QM_Win2000_REP.
Работа программы amqsput.exe показана на рис. 4.6.
(рис 4.6) Работа программы amqsput.exeПосле нажатия клавиши "Enter" сообщение должно попасть в Win2000_REP_HPUX_TRANS.TQ. Оно будет находиться в ней до тех пор, пока sender канал не будет стартован. После старта канала сообщение будет доставлено в очередь Win2000_REP_HPUX.Q на менеджер QM_HPUX (рис. 4.7).
(рис 4.7) Просмотр сообщения через Message Browser Рассмотрим ситуацию, предполагающую наличие одного сервера с установленным менеджером очередей и множества рабочих станций, которые должны доставлять или получать сообщения от этого менеджера. Предположим, что для каждой рабочей станции на менеджере очередей создана своя локальная очередь для получения сообщений .
Подключение рабочей станции производится с помощью General, Extended, , Exits и SSL. Атрибуты, вводимые в этих закладках, описаны в лекции 3. Основным атрибутом является Channel Name. Кроме имени канала никакие другие атрибуты не играют роли в процессе подключения рабочей станции.
(рис 4.8) Форма создания канала Server ConnectionКроме создания канала на менеджере очередей нужно разрешить учетной записи рабочей станции подключение к менеджеру и дать соответствующие права на очереди, с которыми рабочая станция будет работать. Предположим, что станция имеет учетную запись (имя пользователя) station1 в домене petersburg и должна работать с локальными очередями FROM_A1.Q и TO_A1.Q на менеджере QM_Win2000 с IP адресом 198.32.100.26 через канал CHANNEL_BY_A1. Тогда на сервере нужно выполнить команды авторизации
SETMQAUT -m QM_Win2000 -t qmgr
-p station1@petersburg +connect
SETMQAUT -m QM_Win2000 -n FROM_A1.Q -t queue
-p station1@petersburg +all
SETMQAUT -m QM_Win2000 -n TO_A1.Q -t queue
-p station1@petersburg +all
Первая команда дает права пользователю с учетной записью station1@petersburg на подключение к менеджеру QM_Win2000, вторая и третья разрешают производить все операции с очередями FROM_A1.Q и TO_A1.Q соответственно. Просмотреть права данной учетной записи можно с помощью команд
DSPMQAUT -m QM_Win2000 -t qmgr
-p station1@petersburg
DSPMQAUT -m QM_Win2000 -n FROM_A1.Q -t queue
-p station1@petersburg
DSPMQAUT -m QM_Win2000 -n TO_A1.Q -t queue
-p station1@petersburg
На этом действия по созданию
(рис 4.9) Параметры переменной MQSERVERТеперь с рабочей станции можно послать сообщение в очередь FROM_A1.Q на удаленный менеджер QM_Win2000 с помощью программы , входящей в комплект поставки в качестве примера:
amqsputc FROM_A1.Q <text_message.txt
где text_message.txt - файл, содержащий текст сообщения.
Считать сообщения из очереди можно с помощью программы :
amqsgetc TO_A1.Q
при условии, что в этой очереди они есть.
Вполне вероятно, что рабочие станции в своей работе могут использовать только одну очередь для отправки и получения сообщений. В этом случае необходимо создать такую программу, которая позволяла бы корректно разбирать и отправлять сообщения в зависимости от имен рабочих станций и/или других параметров.
Как правило, после поступления сообщений в очередь назначения, они обрабатываются различными прикладными программами, например, считываются из очереди и помещаются в базу данных. WebSphere MQ имеет возможность запускать
(рис 4.10) Форма для создания процесса WebSphere MQProcess Definition Name - имя
Description - описание
Application Type - тип приложения. Зависит от операционной системы, на которой установлен менеджер очередей.
Application Identifier - имя выполняемой программы с указанием пути.
Environment Data - данные, которые могут быть переданы сервису
- данные, которые могут быть переданы выполняемой программе.
Для
Trigger Message Priority ;Trigger Type ;Trigger Control установлен в значение On ; runmqtrm .Предположим, что необходимо информировать пользователя о приходе каждого сообщения в очередь FOR_USER_INF.Q. Рассмотрим шаги для реализации поставленной задачи:
for_user_init.Создать файл c:\temp\trig.bat, содержащий строку
net send user1 Пришло сообщение в очередь FOR_USER_INF.Q
который будет посылать сообщения пользователю user1,
NET_SEND.P с атрибутами:Process Definition Name - NET_SEND.P ;Application Type - Windows NT ;Application Identifier - c:\temp\trig.bat.FOR_USER_INF.Q с атрибутамиQueue Name - FOR_USER_INF.Q ;Trigger Control - On ;Trigger Type - Every ;Trigger Depth - 1 ;Trigger Message Priority - 0 ;Initiation Queue Name - for_user_init ;Process Name - NET_SEND.P.Create, далее Trigger Monitor ;for_user_init ;Поместить тестовое сообщение в очередь FOR_USER_INF.Q и убедиться, что сетевое сообщение с текстом "Пришло сообщение в очередь FOR_USER_INF.Q" отправлено пользователю user1.
Вместо создания службы сервиса WebSphere MQ . Синтаксис команды
runmqtrm -q for_user_init
В этом случае процесс NET_SEND.P будет выполняться только тогда, когда программа запущена.
Используя Inactive в результате истечения времени, указанного в атрибуте Disconnect Interval автоматически переходили в состояние Running при появлении в соответствующей
Для каждой
User Data указать имя канала отправителя, который передает данные, поступающие в эту Trigger Control - On ;Trigger Type - First ;Trigger Depth - 1 ;Trigger Message Priority - 0 ;Initiation Queue Name - имя очереди инициализации созданной в п.1;Process Name - имя процесса, созданного в п.2.Теперь рассмотрим второй способ автоматического старта канала отправителя без использования процессов. Для реализации второго способа требуется лишь установить атрибуты
Trigger Control - On ;Trigger Type - First ;Trigger Depth - 1 ;Trigger Message Priority - 0 ;Trigger Data - имя канала отправителя, который передает данные, поступающие в эту Initiation Queue Name - имя SYSTEM.CHANNEL.INITQ.Имя Initiation Queue Name каждой
В процессе
Остановить канал отправитель, выполнив пункт Stop контекстного меню. При выполнении данного меню появится форма, изображенная на рис.4.12, имеющая следующие параметры:
Force interruption of current message batch - прерывание и принудительное завершение транзакции. Если выставить флажок в этом параметре, то становится доступным параметр Allow process/thread termination позволяющий принудительно остановить процесс передачи данных. Рекомендуется не использовать эти два параметра, чтобы перед остановкой канала обеспечить передачу сообщений, по которым транзакция была уже открыта.
New state - указывается Inactive и Stopped.
Параметры в секции Filter ( Only stop channels from this и Only stop channels from this remote connection ) используются только для z/OS.
(рис 4.12) Остановка каналаReset для канала получателя, выставив значение Message Sequence Number в единицу.Start.Ping для канала отправителя с целью проверки установления соединения с каналом получателем. Данный пункт выполнять не обязательно, если вы уверены, что связь между каналами может быть установлена.Start для канала отправителя.Эту процедуру следует выполнить когда устранены все неполадки, приведшие к остановке каналов или переходу в неопределенное состояние. Если в сети существуют проблемы со связью, то канал отправитель может не перейти в состояние running и тогда всю процедуру надо будет вновь повторить сначала. Следует заметить, что WebSphere MQ гарантирует доставку сообщений, но только при правильных настройках всех объектов, участвующих в процессе передачи. Если установить тип сообщений Non Persistent, то никакими силами не удастся восстановить сообщения, например, после перезагрузки компьютера или после остановки менеджера. Материалов, приведенной в данной лекции вполне достаточно для создания и управления интерфейсами передачи и обработки данных.
Как говорилось в предыдущей лекции, сообщения передаются с помощью каналов, с одинаковыми именами, расположенными как на одном, так и на другом менеджере. (на AS/400 - strmqmchi ). На менеджере, отправляющем сообщение, должен быть создан канал отправитель, на менеджере получателе, соответственно, получатель. Рассмотрим подробнее работу пар каналов.
Sender => Receiver
Наиболее распространенная пара. Sender канал инициирует соединение с receiver каналом, затем передает сообщения.
Server => Receiver
В данном случае server канал выполняет роль sender канала. Пара имеет право на существование, но лучше использовать связку Sender => Receiver.
Server => Requester
В этой паре requester канал инициирует соединение, затем server канал начинает передачу данных.
Sender => Requester
Requester канал инициирует соединение в случае разрыва с sender каналом. Sender канал в свою очередь инициирует соединение с requester каналом, и только после этого начинается процесс передачи.
Каналы могут находиться в следующих
- WebSphere MQ делает попытку произвести старт канала.
- канал начал процесс старта и ждет установки соединения (активации слота).
- после активации слота идет попытка установления соединения и передача данных инициации между каналами.
- requester канал ждет ответа от sender канала.
- состояние при котором либо идет передача данных, либо канал отправитель ждет сообщений из
- канал ожидает истечения времени, указанного в атрибуте Message .
- канал переходит в это промежуточное состояние в процессе MQSC stop channel, либо при возникновении какой-либо ошибки.
- ожидание очередной попытки старта канала с помощью
- канал остановлен. Стартовать его можно либо с помощью WebSphere MQ Explorer либо с помощью команды MQSC start channel. Ниже мы приведем подробную инструкцию для старта каналов.
- состояние канала, говорящее о том, что либо он никогда не был стартован, либо истекло время, указанное в атрибуте Disconnect Interval для канала отправителя. Для канала получателя это нормальное состояние, так как он переходит в состояние Running при инициации связи со стороны канала отправителя.
![]() |
neutral (нейтральное). Соответствует состоянию Inactive |
![]() |
running (стартован). Соответствует только состоянию Running. |
![]() |
stopped (остановлен). Соответствует состоянию Stopped. |
![]() |
alert (неопределенное состояние). Соответствует состояниям Binding, Requesting, Retrying, Stopping. |
![]() |
warning (предупреждающее состояние). Обычно возникает при появлении ошибок. |
Как правило, Inactive, если в соответствующей
Для создания
Предположим, нам нужно передать сообщения от одного менеджера QM_Win2000_REP, расположенного на платформе NT, имеющего IP адрес 198.32.100.26, порт для службы listener - 1415 к другому менеджеру QM_HPUX, расположенному на платформе UNIX с адресом 198.32.100.16, порт для службы listener - 1421. Подключим менеджер QM_HPUX для удаленного управления с помощью WebSphere MQ Explorer. Создадим объекты на платформе UNIX:
Win2000_REP_HPUX.Q - в нее будет доставляться сообщение (рис. 4.1);Win2000_REP_HPUX.CH (рис. 4.2).Создадим объекты на менеджере QM_Win2000_REP:
Win2000_REP_HPUX_TRANS.TQ (рис. 4.3);удаленная локальная очередь Win2000_REP_HPUX_REMOT.RQ (рис. 4.4), имеющая атрибуты:
Remote Queue Name - Win2000_REP_HPUX.Q ;Remote Queue Manager Name - QM_HPUX ;Transmission Queue Name - Win2000_REP_HPUX_TRANS.TQ ;Win2000_REP_HPUX.CH (рис. 4.5), имеющий атрибуты:Connection Name - 198.32.100.16 ( 1421 );Transmission Queue - Win2000_REP_HPUX_TRANS.TQ ;
(рис 4.2) Локальная очередь Win2000_REP_HPUX.Q(рис 4.1) Receiver канал Win2000_REP_HPUX.CH
(рис 4.4) Трансмиссионная очередь Win2000_REP_HPUX_TRANS.TQ(рис 4.3) Удаленная локальная очередь Win2000_REP_HPUX_REMOT.RQ
(рис 4.5) sender канал Win2000_REP_HPUX.CHПоместим тестовое сообщение в локальную удаленную очередь Win2000_REP_HPUX_REMOT.RQ с помощью программы amqsput.exe, входящей в пакет демонстрационных программ, введя в командной строке:
amqsput Win2000_REP_HPUX_REMOT.RQ QM_Win2000_REP
Далее вводим текст сообщения:
Тестовое сообщение от QM_Win2000_REP.
Работа программы amqsput.exe показана на рис. 4.6.
(рис 4.6) Работа программы amqsput.exeПосле нажатия клавиши "Enter" сообщение должно попасть в Win2000_REP_HPUX_TRANS.TQ. Оно будет находиться в ней до тех пор, пока sender канал не будет стартован. После старта канала сообщение будет доставлено в очередь Win2000_REP_HPUX.Q на менеджер QM_HPUX (рис. 4.7).
(рис 4.7) Просмотр сообщения через Message BrowserРассмотрим ситуацию, предполагающую наличие одного сервера с установленным менеджером очередей и множества рабочих станций, которые должны доставлять или получать сообщения от этого менеджера. Предположим, что для каждой рабочей станции на менеджере очередей создана своя локальная очередь для получения сообщений .
Подключение рабочей станции производится с помощью General, Extended, , Exits и SSL. Атрибуты, вводимые в этих закладках, описаны в лекции 3. Основным атрибутом является Channel Name. Кроме имени канала никакие другие атрибуты не играют роли в процессе подключения рабочей станции.
(рис 4.8) Форма создания канала Server ConnectionКроме создания канала на менеджере очередей нужно разрешить учетной записи рабочей станции подключение к менеджеру и дать соответствующие права на очереди, с которыми рабочая станция будет работать. Предположим, что станция имеет учетную запись (имя пользователя) station1 в домене petersburg и должна работать с локальными очередями FROM_A1.Q и TO_A1.Q на менеджере QM_Win2000 с IP адресом 198.32.100.26 через канал CHANNEL_BY_A1. Тогда на сервере нужно выполнить команды авторизации
SETMQAUT -m QM_Win2000 -t qmgr
-p station1@petersburg +connect
SETMQAUT -m QM_Win2000 -n FROM_A1.Q -t queue
-p station1@petersburg +all
SETMQAUT -m QM_Win2000 -n TO_A1.Q -t queue
-p station1@petersburg +all
Первая команда дает права пользователю с учетной записью station1@petersburg на подключение к менеджеру QM_Win2000, вторая и третья разрешают производить все операции с очередями FROM_A1.Q и TO_A1.Q соответственно. Просмотреть права данной учетной записи можно с помощью команд
DSPMQAUT -m QM_Win2000 -t qmgr
-p station1@petersburg
DSPMQAUT -m QM_Win2000 -n FROM_A1.Q -t queue
-p station1@petersburg
DSPMQAUT -m QM_Win2000 -n TO_A1.Q -t queue
-p station1@petersburg
На этом действия по созданию
(рис 4.9) Параметры переменной MQSERVERТеперь с рабочей станции можно послать сообщение в очередь FROM_A1.Q на удаленный менеджер QM_Win2000 с помощью программы , входящей в комплект поставки в качестве примера:
amqsputc FROM_A1.Q <text_message.txt
где text_message.txt - файл, содержащий текст сообщения.
Считать сообщения из очереди можно с помощью программы :
amqsgetc TO_A1.Q
при условии, что в этой очереди они есть.
Вполне вероятно, что рабочие станции в своей работе могут использовать только одну очередь для отправки и получения сообщений. В этом случае необходимо создать такую программу, которая позволяла бы корректно разбирать и отправлять сообщения в зависимости от имен рабочих станций и/или других параметров.
Как правило, после поступления сообщений в очередь назначения, они обрабатываются различными прикладными программами, например, считываются из очереди и помещаются в базу данных. WebSphere MQ имеет возможность запускать
(рис 4.10) Форма для создания процесса WebSphere MQProcess Definition Name - имя
Description - описание
Application Type - тип приложения. Зависит от операционной системы, на которой установлен менеджер очередей.
Application Identifier - имя выполняемой программы с указанием пути.
Environment Data - данные, которые могут быть переданы сервису
- данные, которые могут быть переданы выполняемой программе.
Для
Trigger Message Priority ;Trigger Type ;Trigger Control установлен в значение On ; runmqtrm .Предположим, что необходимо информировать пользователя о приходе каждого сообщения в очередь FOR_USER_INF.Q. Рассмотрим шаги для реализации поставленной задачи:
for_user_init.Создать файл c:\temp\trig.bat, содержащий строку
net send user1 Пришло сообщение в очередь FOR_USER_INF.Q
который будет посылать сообщения пользователю user1,
NET_SEND.P с атрибутами:Process Definition Name - NET_SEND.P ;Application Type - Windows NT ;Application Identifier - c:\temp\trig.bat.FOR_USER_INF.Q с атрибутамиQueue Name - FOR_USER_INF.Q ;Trigger Control - On ;Trigger Type - Every ;Trigger Depth - 1 ;Trigger Message Priority - 0 ;Initiation Queue Name - for_user_init ;Process Name - NET_SEND.P.Create, далее Trigger Monitor ;for_user_init ;Поместить тестовое сообщение в очередь FOR_USER_INF.Q и убедиться, что сетевое сообщение с текстом "Пришло сообщение в очередь FOR_USER_INF.Q" отправлено пользователю user1.
Вместо создания службы сервиса WebSphere MQ . Синтаксис команды
runmqtrm -q for_user_init
В этом случае процесс NET_SEND.P будет выполняться только тогда, когда программа запущена.
Используя Inactive в результате истечения времени, указанного в атрибуте Disconnect Interval автоматически переходили в состояние Running при появлении в соответствующей
Для каждой
User Data указать имя канала отправителя, который передает данные, поступающие в эту Trigger Control - On ;Trigger Type - First ;Trigger Depth - 1 ;Trigger Message Priority - 0 ;Initiation Queue Name - имя очереди инициализации созданной в п.1;Process Name - имя процесса, созданного в п.2.Теперь рассмотрим второй способ автоматического старта канала отправителя без использования процессов. Для реализации второго способа требуется лишь установить атрибуты
Trigger Control - On ;Trigger Type - First ;Trigger Depth - 1 ;Trigger Message Priority - 0 ;Trigger Data - имя канала отправителя, который передает данные, поступающие в эту Initiation Queue Name - имя SYSTEM.CHANNEL.INITQ.Имя Initiation Queue Name каждой
В процессе
Остановить канал отправитель, выполнив пункт Stop контекстного меню. При выполнении данного меню появится форма, изображенная на рис.4.12, имеющая следующие параметры:
Force interruption of current message batch - прерывание и принудительное завершение транзакции. Если выставить флажок в этом параметре, то становится доступным параметр Allow process/thread termination позволяющий принудительно остановить процесс передачи данных. Рекомендуется не использовать эти два параметра, чтобы перед остановкой канала обеспечить передачу сообщений, по которым транзакция была уже открыта.
New state - указывается Inactive и Stopped.
Параметры в секции Filter ( Only stop channels from this и Only stop channels from this remote connection ) используются только для z/OS.
(рис 4.12) Остановка каналаReset для канала получателя, выставив значение Message Sequence Number в единицу.Start.Ping для канала отправителя с целью проверки установления соединения с каналом получателем. Данный пункт выполнять не обязательно, если вы уверены, что связь между каналами может быть установлена.Start для канала отправителя.Эту процедуру следует выполнить когда устранены все неполадки, приведшие к остановке каналов или переходу в неопределенное состояние. Если в сети существуют проблемы со связью, то канал отправитель может не перейти в состояние running и тогда всю процедуру надо будет вновь повторить сначала. Следует заметить, что WebSphere MQ гарантирует доставку сообщений, но только при правильных настройках всех объектов, участвующих в процессе передачи. Если установить тип сообщений Non Persistent, то никакими силами не удастся восстановить сообщения, например, после перезагрузки компьютера или после остановки менеджера. Материалов, приведенной в данной лекции вполне достаточно для создания и управления интерфейсами передачи и обработки данных.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.