|>>-MQPUBLISH--(-------------------------------------------------> | |>--+-------------------------------------------+----------------> | '-служба-издателя--,--+-------------------+-' | '-правила-службы--,-' | |>--данные-сообщения--+------------------------------------+-----> | '-,--тема--+-----------------------+-' | | (1) | | '-,--id-корреляции------' | |>--)----------------------------------------------------------->< | |
|Примечания:
|Схема - DB2MQ.
|Функция MQPUBLISH публикует данные в MQSeries. Эта функция требует |установки либо MQSeries Publish/Subscribe, либо MQSeries Integrator. |Дальнейшие подробности смотрите на странице |www.ibm.com/software/MQSeries.
|Функция MQPUBLISH публикует данные, содержащиеся в |данных-сообщения, через издатель MQSeries, заданный |службой-издателя, с качеством обслуживания (QoS), заданным |правилами-службы. Можно задать необязательные параметры - тему |сообщения и пользовательский идентификатор корреляции сообщения. |Функция возвращает значение '1' при успешном выполнении и |'0' при неудаче. |
|Примеры
|Пример 1: Этот пример публикует строку "Проверка 123" через службу |издателя по умолчанию (DB2.DEFAULT.PUBLISHER) с использованием |правил по умолчанию (DB2.DEFAULT.POLICY). Идентификатор |корреляции и тема сообщения не задаются.
|VALUES MQPUBLISH('Проверка 123')
|Пример 2: Этот пример публикует строку "Проверка 345" через службу |издателя "MYPUBLISHER" с темой "ИСПЫТАНИЯ". Используются правила по |умолчанию, идентификатор корреляции не задается.
|VALUES MQPUBLISH('MYPUBLISHER','Проверка 345', 'ИСПЫТАНИЯ')
|Пример 3: Этот пример публикует строку "Проверка 678" через службу |издателя "MYPUBLISHER" с правилами "MYPOLICY" и идентификатором корреляции |"TEST1". Сообщение публикуется с темой "ИСПЫТАНИЯ".
|VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Проверка 678','ИСПЫТАНИЯ','TEST1')
|Пример 4: Этот пример публикует строку "Проверка 901" через службу |издателя "MYPUBLISHER" с темой "ИСПЫТАНИЯ" с использованием правил по |умолчанию (DB2.DEFAULT.POLICY) и без идентификатора |корреляции.
|VALUES MQPUBLISH('Проверка 901','ИСПЫТАНИЯ')
|Во всех примерах при успешном выполнении возвращается значение |'1'.
|>>-MQREADCLOB--(--+--------------------------------------+--)-->< | '-служба-приема--+-------------------+-' | '-,--правила-службы-' | |
|Схема - DB2MQ.
|Функция MQREADCLOB возвращает сообщение из положения MQSeries, заданного |службой-приема, с использованием правил качества обслуживания (QoS), |заданных правилами-службы. Выполнение этой операции не удаляет |сообщение из очереди, связанной со службой-приема, а возвращает |сообщение в начало очереди. Возвращаемое значение имеет тип CLOB, длину |1 Мбайт и содержит сообщение. Если доступных сообщений нет, |возвращается пустое значение. |
|Примеры:
|Пример 1: Этот пример читает сообщение из начала очереди, заданной |службой по умолчанию (DB2.DEFAULT.SERVICE), с использованием |правил по умолчанию (DB2.DEFAULT.POLICY).
|VALUES MQREADCLOB()
|Пример 2: Этот пример читает сообщение из начала очереди, заданной |службой "MYSERVICE" с использованием правил по умолчанию |(DB2.DEFAULT.POLICY).
|VALUES MQREADCLOB('MYSERVICE')
|Пример 3: Этот пример читает сообщение из начала очереди, заданной |службой "MYSERVICE" с использованием правил "MYPOLICY".
|VALUES MQREADCLOB('MYSERVICE','MYPOLICY')
|Все эти примеры при успешном выполнении возвращают содержимое сообщения в |виде CLOB с максимальным размером 1 Мбайт. Если нет доступных |сообщений, возвращается пустое значение.
|>>-MQRECEIVECLOB------------------------------------------------> | |>--(--+------------------------------------------------------------+--)->< | '-служба-приема--+-----------------------------------------+-' | '-,--правила-службы--+------------------+-' | '-,--id-корреляции-' | |
|Схема - DB2MQ.
|Функция MQRECEIVECLOB возвращает сообщение из положения MQSeries, заданного |службой-приема, с использованием правил качества обслуживания (QoS), |заданных правилами-службы. Выполнение этой операции удаляет |сообщение из очереди, связанной со службой-приема. Если задан |id-корреляции, возвращается первое сообщение с совпадающим |идентификатором корреляции. Если id-корреляции не задан, |возвращается сообщение из начала очереди. Возвращаемое значение - CLOB |с максимальной длиной 1 Мбайт; оно содержит сообщение. Если |доступных сообщений нет, возвращается пустое значение. |
|Примеры:
|Пример 1: Этот пример получает сообщение из начала очереди, заданной |службой по умолчанию (DB2.DEFAULT.SERVICE), с использованием |правил по умолчанию (DB2.DEFAULT.POLICY).
|VALUES MQRECEIVECLOB()
|Пример 2: Этот пример получает сообщение из начала очереди, заданной |службой "MYSERVICE", с использованием правил по умолчанию |(DB2.DEFAULT.POLICY).
|VALUES MQRECEIVECLOB('MYSERVICE')
|Пример 3: Этот пример получает сообщение из начала очереди, заданной |службой "MYSERVICE", с использованием правил "MYPOLICY".
|VALUES MQRECEIVECLOB('MYSERVICE','MYPOLICY')
|Пример 4: Этот пример получает первое сообщение с идентификатором |корреляции '1234', из начала очереди, заданной службой "MYSERVICE", |с использованием правил "MYPOLICY".
|VALUES MQRECEIVECLOB('MYSERVICE',MYPOLICY','1234')
|Все эти примеры при успешном выполнении возвращают содержимое сообщения в |виде CLOB с максимальным размером 1 Мбайт. Если нет доступных |сообщений, возвращается пустое значение.
|>>-MQSEND--(--+-------------------------------------------+-----> | '-служба-отправки--,--+-------------------+-' | '-правила-службы--,-' | |>--данные-сообщения--+-----------------------+--)-------------->< | | (1) | | '-,--id-корреляции------' | |
|Примечания:
|Схема - DB2MQ.
|Функция MQSEND отправляет данные данные-сообщения, в положение |MQSeries, заданное службой-отправки, используя правила качества |обслуживания (QoS), заданные правилами-службы. Необязательный |параметр id-корреляции позволяет задать произвольный идентификатор |корреляции сообщения. Функция возвращает значение '1' при |успешном выполнении и '0' при неудаче. |
|Примеры:
|Пример 1: Этот пример отправляет строку "Проверка 123" на службу по |умолчанию (DB2.DEFAULT.SERVICE), используя правила по умолчанию |(DB2.DEFAULT.POLICY), без идентификатора корреляции.
|VALUES MQSEND('Проверка 123')
|Пример 2: Этот пример отправляет строку "Проверка 345" на службу |"MYSERVICE", используя правила "MYPOLICY", без идентификатора |корреляции.
|VALUES MQSEND('MYSERVICE','MYPOLICY','Проверка 345')
|Пример 3: Этот пример отправляет строку "Проверка 678" на службу |"MYSERVICE", используя правила "MYPOLICY", с идентификатором корреляции |"TEST3".
|VALUES MQSEND('MYSERVICE','MYPOLICY','Проверка 678','TEST3')
|Пример 4: Этот пример отправляет строку "Проверка 901" на службу |"MYSERVICE", используя правила по умолчанию (DB2.DEFAULT.POLICY) |без идентификатора корреляции.
|VALUES MQSEND('MYSERVICE','Проверка 901')
|Каждый из примеров возвращает скалярное значение '1' при успешном |выполнении.
|>>-MQREADALLCLOB--(--+--------------------------------------+---> | '-служба-приема--+-------------------+-' | '-,--правила-службы-' | |>--+-------------+--)------------------------------------------>< | '-число-строк-' | |
|Схема - DB2MQ.
|Функция MQREADALLCLOB возвращает таблицу, содержащую сообщения и метаданные |сообщений, из положения MQSeries, заданного службой-приема, с |использованием правил качества обслуживания (QoS), заданных |правилами-службы. Выполнение этой операции не удаляет |сообщения из очереди, связанной со службой-приема.
|Если задано число-строк, число возвращаемых сообщений не превысит |числа-строк. Если число-строк не задано, будут |возвращены все доступные сообщения. Возвращаемая таблица содержит |следующие столбцы: |
|Примеры:
|Пример 1: Этот пример принимает все сообщения из очереди, заданной |службой по умолчанию (DB2.DEFAULT.SERVICE), с использованием |правил по умолчанию (DB2.DEFAULT.POLICY). Сообщения и все |метаданные возвращаются в виде таблицы.
|SELECT * | FROM table (MQREADALLCLOB()) T
|Пример 2: Этот пример принимает все сообщения очереди, заданной |службой MYSERVICE, с использованием правил по умолчанию |(DB2.DEFAULT.POLICY). Возвращаются только столбцы MSG и |CORRELID.
|SELECT T.MSG, T.CORRELID | FROM table (MQREADALLCLOB('MYSERVICE')) T
|Пример 3: Этот пример читает начало очереди, заданной службой по |умолчанию (DB2.DEFAULT.SERVICE), с использованием правил по |умолчанию (DB2.DEFAULT.POLICY). Возвращаются только |сообщения с CORRELID='1234'. Возвращаются все столбцы.
|SELECT * | FROM table (MQREADALLCLOB()) T | WHERE T.CORRELID = '1234'
|Пример 4: Этот пример получает первые 10 сообщений из начала очереди, |заданной службой по умолчанию (DB2.DEFAULT.SERVICE), с |использованием правил по умолчанию (DB2.DEFAULT.POLICY). |Возвращаются все столбцы.
|SELECT * | FROM table (MQREADALLCLOB(10)) T
|>>-MQRECEIVEALLCLOB--(------------------------------------------> | |>--+------------------------------------------------------------+--> | '-служба-приема--+-----------------------------------------+-' | '-,--правила-службы--+------------------+-' | '-,--id-корреляции-' | |>--+--------------------+--)----------------------------------->< | '-+---+--число-строк-' | '-,-' | |
|Схема - DB2MQ.
|Функция MQRECEIVEALLCLOB возвращает таблицу, содержащую сообщения и |метаданные сообщений, из положения MQSeries, заданного |службой-приема, с использованием правил качества обслуживания (QoS), |заданных правилами-службы. Выполнение этой операции удаляет |сообщения из очереди, связанной со службой-приема.
|Если задан id-корреляции, возвращаются только сообщения с этим |идентификатором корреляции. Если id-корреляции не задан, |возвращается сообщение из начала очереди.
|Если задано число-строк, число возвращаемых сообщений не превысит |числа-строк. Если число-строк не задано, возвращаются |все доступные сообщения. Возвращаемая таблица содержит следующие |столбцы: |
|Примеры:
|Пример 1: Этот пример принимает все сообщения из очереди, заданной |службой по умолчанию (DB2.DEFAULT.SERVICE), с использованием |правил по умолчанию (DB2.DEFAULT.POLICY). Сообщения и все |метаданные возвращаются в виде таблицы.
|SELECT * | FROM table (MQRECEIVEALLCLOB()) T
|Пример 2: Этот пример принимает все сообщения очереди, заданной |службой MYSERVICE, с использованием правил по умолчанию |(DB2.DEFAULT.POLICY). Возвращаются только столбцы MSG и |CORRELID.
|SELECT T.MSG, T.CORRELID | FROM table (MQRECEIVEALLCLOB('MYSERVICE')) T
|Пример 3: Этот пример получает все сообщения из начала очереди, |заданной службой "MYSERVICE", с использованием правил "MYPOLICY". |Возвращаются только сообщения с CORRELID='1234'. Возвращаются |только столбцы MSG и CORRELID.
|SELECT T.MSG, T.CORRELID | FROM table (MQRECEIVEALLCLOB('MYSERVICE','MYPOLICY','1234')) T |
|Пример 4: Этот пример получает первые 10 сообщений из начала очереди, |заданной службой по умолчанию (DB2.DEFAULT.SERVICE), с |использованием правил по умолчанию (DB2.DEFAULT.POLICY). |Возвращаются все столбцы.
|SELECT * | FROM table (MQRECEIVEALLCLOB(10)) T| |
|Функции MQSeries (определенные в схеме DB2MQ) теперь могут использоваться |не только с данными VARCHAR, но и с данными CLOB. В некоторых случаях |для работы с данными типа CLOB используется новая функция, в некоторых |существующая функция теперь работает и с данными CLOB, и с данными |VARCHAR. В любом случае синтаксис функции CLOB идентичен ее эквиваленту |VARCHAR. Функции с поддержкой данных CLOB и эквивалентные функции |VARCHAR перечислены в следующей таблице:
|
|Табл. 18. Функции MQSeries, поддерживающие тип данных CLOB
Функция для данных VARCHAR | Функция для данных CLOB |
---|---|
MQPUBLISH | MQPUBLISH |
MQREAD | MQREADCLOB |
MQRECEIVE | MQRECEIVECLOB |
MQSEND | MQSEND |
MQREADALL | MQREADALLCLOB |
MQRECEIVEALL | MQRECEIVEALLCLOB |
|Информацию о включении функций MQSeries (определяемых в схеме DB2MQ) |смотрите в разделе MQSeries.