Компания IBM
Опубликован: 14.12.2004 | Доступ: свободный | Студентов: 1531 / 139 | Оценка: 4.36 / 3.98 | Длительность: 16:32:00
ISBN: 978-5-9556-0031-4
Специальности: Системный архитектор
Лекция 9:

Программный интерфейс MQI. Основные функции

Основные функции WebSphere MQ

  1. MQCONN - функция подключения приложения к менеджеру очередей.

    Синтаксис:

    MQCONN (QmgrName, Hconn, CompCode, Reason)

    где:

    QmgrNam - имя менеджера очередей, к которому производиться подключение (латинские буквы, цифры, символы "_", "/", ".", "%" ).
    Hconn - идентификатор связи (connection handle) с менеджером очередей
    CompCode - код завершения, принимающий одно из трех значений: MQCC_OK, MQCC_WARNING, MQCC_FAILED
    Reason - код ошибки, детализирующий код завершения.

    Результат работы функции – установление связи с менеджером очередей и возвращение уникального идентификатора связи   Hconn с менеджером. Имя QmgrNam может быть опущено (строка со значением Null или пробел), тогда обращение к менеджеру очередей на данном компьютере происходит по умолчанию. Одно из основных назначений функции – проверка авторизации пользователя (приложение работает под определенным пользователем с идентификатором userid, который может быть не авторизован для работы с данным менеджером или его объектами).

  2. MQOPEN – функция, открывающая подключение к очередям, с которыми работает приложение.

    Синтаксис:

    MQOPEN (Hconn, ObjDesc, Options, Hobj, 
            CompCode, Reason)

    где:

    Hconn - идентификатор связи (connection handle) с менеджером очередей
    ObjDesc - описание объекта MQOD
    Options - опции объекта MQOO
    Hobj - идентификатор связи с объектом
    CompCode - код завершения, принимающий одно из трех значений: MQCC_OK – успешное завершение, MQCC_WARNING – предупреждение, MQCC_FAILED – ошибочный вызов
    Reason - код ошибки, детализирующий код завершения.

    Результат работы функции – возвращение уникального идентификатора связи Hobj с "открытым" объектом WebSphere MQ, то есть очередью, с которой установлена связь. Описание объекта MQOD – это ссылка на структуру объекта из библиотеки WebSphere MQ. Структура MQOD представлена в таблице 8.2.

    Опции объекта (переменная MQLONG ): MQOO_BROWSE* – просмотр объекта, MQOO_INPUT* – объект открыт для помещения сообщений, MQOO_OUTPUT – объект открыт для извлечения сообщений, MQOO_INQUIRE - объект открыт для извлечения атрибутов, MQOO_SET - объект открыт для изменения атрибутов и др. Опции объекта со звездочками задаются, как правило, в виде развернутых констант:

    • MQOO_INPUT_AS_Q_DEF - открытие очереди на основе ее определения;
    • MQOO_INPUT_SHARED - открытие очереди для одновременного доступа нескольких приложений;
    • MQOO_INPUT_EXCLUSIVE - открытие очереди для эксклюзивного доступа одному приложению;
    • MQOO_BROWSE - открытие очереди для просмотра/чтения сообщений с возможностью дальнейшего использования детализирующих опций MQGMO_BROWSE_FIRST, MQGMO_BROWSE_NEXT, MQGMO_BROWSE_MSG_UNDER_CURSOR функции MQGET ;
    • MQOO_OUTPUT - открытие очереди для записи сообщений.

    Описание всех опций MQOO дано в главе "MQOPEN – Open object" [ 14 ] и объекта MQOD - в главе "MQOD – Object descriptor" [ 14 ] . Как правило, значений опций по умолчанию для MQOPEN вполне достаточно для программирования стандартных приложений для WebSphere MQ.

    Таблица 8.2. Структура объекта MQOD
    Имя поля MQOD Тип поля Имя константы Значение по умолчанию
    StrucId MQCHAR4 MQOD_STRUC_ID 'ODbb'
    Version MQLONG MQOD_VERSION_1 1
    ObjectType MQLONG MQOT_Q 1
    ObjectName MQCHAR48 Нет Строка со значением Null или пробел
    ObjectQMgrName MQCHAR48 Нет Строка со значением Null или пробел
    DynamicQName MQCHAR48 Нет 'CSQ.*' на z/OS; 'AMQ.*' в противном случае
    AlternateUserId MQCHAR12 Нет Строка со значением Null или пробел
    RecsPresent MQLONG Нет 0
    KnownDestCount MQLONG Нет 0
    UnknownDestCount MQLONG Нет 0
    InvalidDestCount MQLONG Нет 0
    ObjectRecOffset MQLONG Нет 0
    ResponseRecOffset MQLONG Нет 0
    ObjectRecPtr None MQPTR Нет Указатель со значением Null
    ResponseRecPtr MQPTR Нет Указатель со значением Null
    AlternateSecurityId MQBYTE40 MQSID_NONE Nulls
    ResolvedQName MQCHAR48 Нет Строка со значением Null или пробел
    ResolvedQMgrName MQCHAR48 Нет Строка со значением Null или пробел