Замечания по выпуску


42.3 MQSeries Information (Информация о MQSeries)

42.3.1 Scalar Functions (Скалярные функции)

|42.3.1.1 MQPUBLISH

| | |
|>>-MQPUBLISH--(------------------------------------------------->
| 
|>--+-------------------------------------------+---------------->
|   '-служба-издателя--,--+-------------------+-'
|                         '-правила-службы--,-'
| 
|>--данные-сообщения--+------------------------------------+----->
|                     '-,--тема--+-----------------------+-'
|                                |                  (1)  |
|                                '-,--id-корреляции------'
| 
|>--)-----------------------------------------------------------><
| 
| 

|Примечания:

  1. |Нельзя задать id-корреляции, если ранее не заданы служба |и правила. |

|Схема - DB2MQ.

|Функция MQPUBLISH публикует данные в MQSeries. Эта функция требует |установки либо MQSeries Publish/Subscribe, либо MQSeries Integrator. |Дальнейшие подробности смотрите на странице |www.ibm.com/software/MQSeries.

|Функция MQPUBLISH публикует данные, содержащиеся в |данных-сообщения, через издатель MQSeries, заданный |службой-издателя, с качеством обслуживания (QoS), заданным |правилами-службы. Можно задать необязательные параметры - тему |сообщения и пользовательские ID корреляции сообщения. Функция |возвращает значение '1' при успешном выполнении и '0' при |неудаче. |

|служба-издателя
|Строка, содержащая логическое назначение MQSeries для отправки |сообщения. Служба-издателя, если она задана, должна указывать |точку службы издателя, определенную в файле хранилища AMT.XML. |Точка службы - это логическая конечная точка отправки или приема |сообщения. В число определений точек службы входит имя менеджера |очередей MQSeries и очередь. Дальнейшие подробности смотрите в |руководстве MQSeries Application Messaging Interface. Если |служба-издателя не задана, используется |DB2.DEFAULT.PUBLISHER. Максимальный размер |службы-издателя - 48 символов.

|правила-службы
|Строка, содержащая правила службы MQSeries AMI, используемую для обработки |этого сообщения. Правила-службы, если они заданы, должны |указывать правила, определенные в файле хранилища AMT.XML. |Правила службы определяет набор опций QoS (качества обслуживания), |используемых для этой операции с сообщениями. Эти опции включают |приоритет сообщения и срок действия сообщения. Дальнейшие подробности |смотрите в руководстве MQSeries Application Messaging Interface. Если |правила-службы не заданы, используется |DB2.DEFAULT.POLICY. Максимальный размер |правил-службы - 48 байт.

|данные-сообщения
|Строковое выражение, содержащее данные для отправки через MQSeries. |Максимальный размер строки типа VARCHAR - 4000 байт. Для строки типа |CLOB размер может доходить до 1 Мбайта.

|тема
|Строковое выражение, содержащее тему публикуемого сообщения. Если |тема не задана, с сообщением не будет связана тема. Максимальный размер |темы - 40 байт. Можно задать в одной строке несколько тем |(длиной до 40 символов). Темы должны отделяться друг от друга |двоеточиями. Например, "t1:t2:третья тема" указывает, что у |сообщения будет три темы: t1, t2 и "третья тема".

|id-корреляции
|Необязательное строковое выражение, содержащее идентификатор корреляции |сообщения. id-корреляции часто задается в сценариях запросов и |ответов, чтобы связать запросы с ответами. Если идентификатор |корреляции не задан, для сообщения не добавляется идентификатор |корреляции. Максимальный размер id-корреляции - 24 |байта. |

|Примеры

|Пример 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'.

|42.3.1.2 MQREADCLOB

| | |
|>>-MQREADCLOB--(--+--------------------------------------+--)--><
|                  '-служба-приема--+-------------------+-'
|                                   '-,--правила-службы-'
| 
| 

|Схема - DB2MQ.

|Функция MQREADCLOB возвращает сообщение из положения MQSeries, заданного |службой-приема, с использованием правил качества обслуживания (QoS), |заданных правилами-службы. Выполнение этой операции не удаляет |сообщение из очереди, связанной со службой-приема, а возвращает |сообщение в начало очереди. Возвращаемое значение имеет тип CLOB, длину |1 Мбайт и содержит сообщение. Если нет доступных сообщений, |возвращается пустое значение. |

|служба-приема
|Строка, содержащая логическое назначение MQSeries, откуда должно быть |принято сообщение. Служба-приема, если она задана, должна |указывать точку службы, определенную в файле хранилища AMT.XML. |Точка службы - это логическая конечная точка отправки или приема |сообщения. Определения точек службы включают имя менеджера очередей |MQSeries и очередь. Дальнейшие подробности смотрите в руководстве |MQSeries Application Messaging Interface. Если служба-приема |не задана, используется DB2.DEFAULT.SERVICE. Максимальный |размер службы-приема - 48 байт.

|правила-службы
|Строка, содержащая правила службы MQSeries AMI для обработки этого |сообщения. Правила-службы, если они заданы, должны указывать |правила, определенные в файле хранилища AMT.XML. Правила службы |определяет набор опций QoS (качества обслуживания), используемых для этой |операции с сообщениями. Эти опции включают приоритет сообщения и срок |действия сообщения. Дальнейшие подробности смотрите в руководстве |MQSeries Application Messaging Interface. Если правила-службы |не заданы, используется DB2.DEFAULT.POLICY. Максимальный |размер правил-службы - 48 байт. |

|Примеры:

|Пример 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 Мбайт. Если нет доступных |сообщений, возвращается пустое значение.

|42.3.1.3 MQRECEIVECLOB

| | |
|>>-MQRECEIVECLOB------------------------------------------------>
| 
|>--(--+------------------------------------------------------------+--)-><
|      '-служба-приема--+-----------------------------------------+-'
|                       '-,--правила-службы--+------------------+-'
|                                            '-,--id-корреляции-'
| 
| 

|Схема - DB2MQ.

|Функция MQRECEIVECLOB возвращает сообщение из положения MQSeries, заданного |службой-приема, с использованием правил качества обслуживания (QoS), |заданных правилами-службы. Выполнение этой операции удаляет |сообщение из очереди, связанной со службой-приема. Если задан |id-корреляции, возвращается первое сообщение с совпадающим |идентификатором корреляции. Если id-корреляции не задан, |возвращается сообщение из начала очереди. Возвращаемое значение - CLOB |с максимальной длиной 1 Мбайт; оно содержит сообщение. Если нет |доступных сообщений, возвращается пустое значение. |

|служба-приема
|Строка, содержащая логическое назначение MQSeries, откуда принимается |сообщение. Служба-приема, если она задана, должна указывать |точку службы, определенную в файле хранилища AMT.XML. Точка |службы - это логическая конечная точка отправки или приема сообщения. |Определения точек службы включают имя менеджера очередей MQSeries и |очередь. Дальнейшие подробности смотрите в руководстве MQSeries |Application Messaging Interface. Если служба-приема не задана, |используется DB2.DEFAULT.SERVICE. Максимальный размер |службы-приема - 48 байт.

|правила-службы
|Строка, содержащая правила службы MQSeries AMI для обработки этого |сообщения. Правила-службы, если они заданы, должны указывать |правила, определенные в файле хранилища AMT.XML |1 |. Если правила-службы не заданы, используются |DB2.DEFAULT.POLICY. Максимальный размер |правил-службы - 48 байт.

|id-корреляции
|Строка, содержащая идентификатор корреляции сообщения. |id-корреляции часто задается в сценариях запросов и ответов, чтобы |связать запросы с ответами. Если идентификатор корреляции не задан, для |сообщения не будет использоваться идентификатор корреляции. |Максимальный размер id-корреляции - 24 байта. |

|Примеры:

|Пример 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 Мбайт. Если нет доступных |сообщений, возвращается пустое значение.

|42.3.1.4 MQSEND

| | |

|>>-MQSEND--(--+-------------------------------------------+----->
|              '-служба-отправки--,--+-------------------+-'
|                                    '-правила-службы--,-'
| 
|>--данные-сообщения--+-----------------------+--)--------------><
|                     |                  (1)  |
|                     '-,--id-корреляции------'
| 
| 

|Примечания:

  1. |Нельзя задать id-корреляции, если ранее не заданы служба |и правила. |

|Схема - DB2MQ.

|Функция MQSEND отправляет данные данные-сообщения, в положение |MQSeries, заданное службой-отправки, используя правила качества |обслуживания (QoS), заданные правилами-службы. Необязательный |параметр id-корреляции позволяет задать произвольный идентификатор |корреляции сообщения. Функция возвращает значение '1' при |успешном выполнении и '0' при неудаче. |

|данные-сообщения
|Строковое выражение, содержащее данные для отправки через MQSeries. |Максимальный размер - 4000 байт для типа данных VARCHAR и 1 Мбайт для типа |CLOB.

|служба-отправки
|Строка, содержащая логическое назначение MQSeries для отправки |сообщения. Служба-отправки, если она задана, указывает точку |службы, определенную в файле хранилища AMT.XML. Точка службы - |логическая конечная точка, из которой может быть отправлено или получено |сообщение. В число определений точек службы входит имя менеджера |очередей MQSeries и очередь. Дальнейшие подробности смотрите в |руководстве MQSeries Application Messaging Interface. Если |служба-отправки не задана, используется значение |DB2.DEFAULT.SERVICE. Максимальный размер |службы-отправки - 48 байт.

|правила-службы
|Строка, содержащая правила службы MQSeries AMI для обработки этого |сообщения. Правила-службы, если они заданы, должны указывать |правила обслуживания, определенные в файле хранилища AMT.XML. |Правила службы определяет набор опций QoS (качества обслуживания), |используемых для этой операции с сообщениями. Эти опции включают |приоритет сообщения и срок действия сообщения. Дальнейшие подробности |смотрите в руководстве MQSeries Application Messaging Interface. Если |правила-службы не заданы, используется значение по умолчанию |DB2.DEFAULT.POLICY. Максимальный размер |правил-службы - 48 байт.

|id-корреляции
|Необязательная строка, содержащая идентификатор корреляции |сообщения. id-корреляции часто задается в сценариях запросов и |ответов, чтобы связать запросы с ответами. Если идентификатор |корреляции не задан, сообщение будет отправлено без идентификатора |корреляции. Максимальный размер id-корреляции - 24 |байта. |

|Примеры:

|Пример 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' при успешном |выполнении.

42.3.2 Table Functions (Табличные функции)

|42.3.2.1 MQREADALLCLOB

| | |
|>>-MQREADALLCLOB--(--+--------------------------------------+--->
|                     '-служба-приема--+-------------------+-'
|                                      '-,--правила-службы-'
| 
|>--+-------------+--)------------------------------------------><
|   '-число-строк-'
| 
| 

|Схема - DB2MQ.

|Функция MQREADALLCLOB возвращает таблицу, содержащую сообщения и метаданные |сообщений, из положения MQSeries, заданного службой-приема, с |использованием правил качества обслуживания (QoS), заданных |правилами-службы. Выполнение этой операции не удаляет |сообщения из очереди, связанной со службой-приема.

|Если задано число-строк, число возвращаемых сообщений не превысит |числа-строк. Если число-строк не задано, будут |возвращены все доступные сообщения. Возвращаемая таблица содержит |следующие столбцы: |

|

|служба-приема
|Строка, содержащая логическое назначение MQSeries, из которого читается |сообщение. Служба-приема, если она задана, должна указывать |точку службы, определенную в файле хранилища AMT.XML. Точка |службы - это логическая конечная точка отправки или приема сообщения. В |число определений точек службы входит имя менеджера очередей MQSeries и |очередь. Дальнейшие подробности смотрите в руководстве MQSeries |Application Messaging Interface. Если служба-приема не задана, |используется DB2.DEFAULT.SERVICE. Максимальный размер |службы-приема - 48 байт.

|правила-службы
|Строка, содержащая правила службы MQSeries AMI, используемые для обработки |этого сообщения. Правила-службы, если они заданы, указывают |правила, определенные в файле хранилища AMT.XML. Правила службы |определяет набор опций качества обслуживания (QoS), используемых при этой |операции с сообщениями. Эти опции включают приоритет сообщения и срок |действия сообщения. Дальнейшие подробности смотрите в руководстве |MQSeries Application Messaging Interface. Если правила-службы |не заданы, используется DB2.DEFAULT.POLICY. Максимальный |размер правил-службы - 48 байт.

|число-строк
|Положительное целое, задающее максимальное число сообщений, возвращаемых |функцией. |

|Примеры:

|Пример 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

|42.3.2.2 MQRECEIVEALLCLOB

| | |
|>>-MQRECEIVEALLCLOB--(------------------------------------------>
| 
|>--+------------------------------------------------------------+-->
|   '-служба-приема--+-----------------------------------------+-'
|                    '-,--правила-службы--+------------------+-'
|                                         '-,--id-корреляции-'
| 
|>--+--------------------+--)-----------------------------------><
|   '-+---+--число-строк-'
|     '-,-'
| 
| 

|Схема - DB2MQ.

|Функция MQRECEIVEALLCLOB возвращает таблицу, содержащую сообщения и |метаданные сообщений, из положения MQSeries, заданного |службой-приема, с использованием правил качества обслуживания (QoS), |заданных правилами-службы. Выполнение этой операции удаляет |сообщения из очереди, связанной со службой-приема.

|Если задан id-корреляции, возвращаются только сообщения с этим |идентификатором корреляции. Если id-корреляции не задан, |возвращается сообщение из начала очереди.

|Если задано число-строк, число возвращаемых сообщений не превысит |числа-строк. Если число-строк не задано, возвращаются |все доступные сообщения. Возвращаемая таблица содержит следующие |столбцы: |

|

|служба-приема
|Строка, содержащая логическое назначение MQSeries, откуда принимается |сообщение. Служба-приема, если она задана, должна указывать |точку службы, определенную в файле хранилища AMT.XML. Точка |службы - это логическая конечная точка отправки или приема сообщения. В |число определений точек службы входит имя менеджера очередей MQSeries и |очередь. Дальнейшие подробности смотрите в руководстве MQSeries |Application Messaging Interface. Если служба-приема не задана, |используется DB2.DEFAULT.SERVICE. Максимальный размер |службы-приема - 48 байт.

|правила-службы
|Строка, содержащая правила службы MQSeries AMI, используемые для обработки |этого сообщения. Правила-службы, если они заданы, указывают |правила, определенные в файле хранилища AMT.XML. Правила службы |определяет набор опций качества обслуживания (QoS), используемых при этой |операции с сообщениями. Эти опции включают приоритет сообщения и срок |действия сообщения. Дальнейшие подробности смотрите в руководстве |MQSeries Application Messaging Interface. Если правила-службы |не заданы, используется DB2.DEFAULT.POLICY. Максимальный |размер правил-службы - 48 байт.

|id-корреляции
|Необязательная строка, содержащая идентификатор корреляции |сообщения. id-корреляции часто задается в сценариях запросов и |ответов, чтобы связать запросы с ответами. Если он не задан, |идентификатор корреляции не используется. Максимальный размер |id-корреляции - 24 байта.

|число-строк
|Положительное целое, задающее максимальное число сообщений, возвращаемых |функцией. |

|Примеры:

|Пример 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
| |

|42.3.3 Функции MQSeries теперь поддерживают данные CLOB

|Функции MQSeries (определенные в схеме DB2MQ) теперь могут использоваться с |данными CLOB в дополнение к данным VARCHAR. В некоторых случаях для |работы с данными типа CLOB используется новая функция, в некоторых |существующая функция теперь работает и с данными CLOB, и с данными |VARCHAR. В любом случае синтаксис функции CLOB идентичен ее эквиваленту |VARCHAR. Функции с поддержкой данных CLOB и эквивалентные функции |VARCHAR перечислены в следующей таблице:


|

|Табл. 16. Функции MQSeries, поддерживающие тип данных CLOB

Функция для данных VARCHAR Функция для данных CLOB
MQPUBLISH MQPUBLISH
MQREAD MQREADCLOB
MQRECEIVE MQRECEIVECLOB
MQSEND MQSEND
MQREADALL MQREADALLCLOB
MQRECEIVEALL MQRECEIVEALLCLOB

|Информацию о включении функций MQSeries (определяемых в схеме DB2MQ) |смотрите в разделе MQSeries.


Сноски:

1
Правила службы определяет набор опций качества обслуживания (QoS), используемых при этой операции с сообщениями. Эти опции включают приоритет сообщения и срок действия сообщения. Дальнейшие подробности смотрите в руководстве MQSeries Application Messaging Interface.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]