Интеграция приложений на основе WebSphere MQ


Дополнительные функции WebSphere MQ


Одним из важнейших приемов прикладного программирования для WebSphere MQ является использование транзакций, аналогичных транзакциям в базах данных. С помощью функций MQBEGIN, MQCMIT, MQBACK можно открыть транзакцию, завершить транзакцию успешно и откатить транзакцию, соответственно. В этом механизме прослеживается полная аналогия с транзакциями в базах данных. Программирование с использованием WebSphere MQ транзакций позволяет создавать надежные программы.

  • MQBEGIN - функция, которая открывает WebSphere MQ транзакцию, координирует работу менеджера очередей и может использовать внешние ресурсы менеджера.

    Синтаксис:

    MQBEGIN (Hconn, BeginOptions, CompCode, Reason)

    где:

    Hconn-идентификатор связи (connection handle) с менеджером очередей
    BeginOptions-опции MQBEGIN
    CompCode-код завершения
    Reason-код ошибки, детализирующий код завершения.

    Здесь BeginOptions дает ссылку на структуру MQBO (Begin options), поля которой показаны в таблице 8.6

    Таблица 8.6. Поля структуры MQBO

    Имя поля MQBOТип поляИмя поляИмя константыЗначение константы
    StrucIdMQCHAR4Идентификатор структурыMQBO_STRUC_ID'BObb'
    VersionMQLONGНомер версии структурыMQBO_VERSION_11
    OptionsMQLONGОпции для управления MQBOMQBO_NONE0

    На языке С макропеременная MQBO_DEFAULT содержит значения, приведенные в табл.8.6, и может быть использована в тексте следующим образом: MQBO MyBO = {MQBO_DEFAULT};

  • MQCMIT – функция, которая указывает на то, что все сообщения, прочитанные и записанные с момента открытия транзакции, становятся постоянными, то есть транзакция успешно завершена. Сообщения, помещенные в очередь как часть блока сообщений, становятся доступными всем приложениям. Сообщения, прочитанные из очереди как часть блока сообщений, удаляются из очереди.

    Синтаксис:

    MQCMIT (Hconn, CompCode, Reason)

    Комментарии в данном случае излишни.

  • MQBACK - функция, которая указывает на то, что всем сообщениям, прочитанным и записанным с момента открытия транзакции, дается задний ход, то есть производится откат транзакции. Все сообщения, помещенные в очередь, удаляются из нее. Все сообщения, прочитанные из очереди, восстанавливаются в очереди (становятся доступными). Как правило, при чтении сообщения удаляются из очереди или помечаются как транзакционные и становятся не доступными (uncommitted messages), если прошла команда MQBEGIN.




    Начало  Назад  Вперед