Создание интерфейсов передачи сообщений. Триггеринг
Соединение типа клиент-сервер
Рассмотрим ситуацию, предполагающую наличие одного сервера с установленным менеджером очередей и множества рабочих станций, которые должны доставлять или получать сообщения от этого менеджера. Предположим, что для каждой рабочей станции на менеджере очередей создана своя локальная очередь для получения сообщений FROM_A1.Q, FROM_A2.Q и так далее в зависимости от количества станций. Также созданы локальные очереди для отправки сообщений TO_A1.Q, TO_A2.Q и так далее. В данном случае целесообразно использовать соединение типа клиент-сервер, которое не требует установки серверной части WebSphere MQ на рабочей станции. На ней можно установить только клиентскую часть, которая присутствует в комплекте поставки. Кроме этого, клиентская часть доступна по адресу в Интернет: http://www14.software.ibm.com/webapp/download/search.jsp?go=y&rs=wsmqclient.
Подключение рабочей станции производится с помощью канала типа Server Connection, создаваемого на менеджере очередей. Форма для создания канала с помощью WebSphere MQ Explorer представлена на рис.4.8 и имеет закладки General, Extended, MCA, Exits и SSL. Атрибуты, вводимые в этих закладках, описаны в лекции 3. Основным атрибутом является Channel Name. Кроме имени канала никакие другие атрибуты не играют роли в процессе подключения рабочей станции.
Кроме создания канала на менеджере очередей нужно разрешить учетной записи рабочей станции подключение к менеджеру и дать соответствующие права на очереди, с которыми рабочая станция будет работать. Предположим, что станция имеет учетную запись (имя пользователя) 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
На этом действия по созданию соединения клиент-сервер на сервере завершаются. На рабочей станции необходимо создать системную переменную с именем MQSERVER как показано на рис.4.9.
Теперь с рабочей станции можно послать сообщение в очередь FROM_A1.Q на удаленный менеджер QM_Win2000 с помощью программы amqsputc.exe , входящей в комплект поставки в качестве примера:
amqsputc FROM_A1.Q <text_message.txt
где text_message.txt - файл, содержащий текст сообщения.
Считать сообщения из очереди можно с помощью программы amqsgetc.exe :
amqsgetc TO_A1.Q
при условии, что в этой очереди они есть.
Вполне вероятно, что рабочие станции в своей работе могут использовать только одну очередь для отправки и получения сообщений. В этом случае необходимо создать такую программу, которая позволяла бы корректно разбирать и отправлять сообщения в зависимости от имен рабочих станций и/или других параметров.