Операционные системы и программное обеспечение на платформе zSeries

Программирование WebSphere MQ


Интерфейс очередей сообщений MQI (Message Queuing Interface) в WebSphere MQ для различных программно-аппаратных платформ - от DOS до OS/390 - один и тот же. Его основным свойством является идентичность команд и параметров для различных систем и возможность применения при различных языках программирования. Ниже приведен пример использования одной из команд MQI в различных форматах: формате управления системой с использованием консоли управления, в формате языка С и языка COBOL:

MQPUT1 (Hconn, ObjDesc, MsgDescr, PutMsgOpts, BufferLength, Buffer, CompCode, Reason)

MQPUT1 (Hconn, &ObjDesc, &MsgDescr, &PutMsgOpts, BufferLength, Buffer, &CompCode, &Reason)

CALL "MQPUT1" USING HCONN, OBJECT-DESCRIPTOR, MESSAGE-DESCRIPTOR, PMOPTIONS, DATA-LENGTH, REPLY, COMPLETION-CODE, REASON

Данная команда осуществляет помещение объекта в указанную очередь с использованием определенного набора опций. Результат выполнения команды и/или причины неудачи возвращаются функцией как выходные параметры. Для работы с очередью предварительно должно быть установлено соединение с менеджером очередей - дальнейшее взаимодействие осуществляется с использованием возвращенного на этой стадии параметра Hconn.

Как видно из примера, процесс помещения информации в очередь достаточно прост и реализован единообразно для различных программно-аппаратных платформ.

К базовым функциям MQI относятся:

  • MQCONN - устанавливает соединение с системой;
  • MQOPEN - открывает объект для дальнейшей работы с ним;
  • MQPUT - помещение информации в очередь;
  • MQGET - извлечение информации из очереди;
  • MQCLOSE - завершение работы с объектом;
  • MQDISC - окончание соединения с системой;
  • MQCMIT и MQBACK - для работы с транзакциями и пр.

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

Кроме того, разработчик имеет возможность поместить свой код для реагирования на те или иные события в так называемые exits. В системе WebSphere MQ присутствует несколько типов exit (channel, client, conversion и пр.) - в зависимости от действий, производимых с сообщением/очередью. Создавая собственный exit, разработчик получает возможность реализовать необходимую функциональность при обработке сообщений.



Содержание раздела