发行说明


43.6 MQSeries Information

43.6.1 Scalar Functions

|43.6.1.1 MQPUBLISH

| | |
|>>-MQPUBLISH--(------------------------------------------------->
| 
|>--+---------------------------------------------+--msg-data---->
|   '-publisher-service--,--+-------------------+-'
|                           '-service-policy--,-'
| 
|>--+---------------------------------+--)----------------------><
|   '-,--topic--+-------------------+-'
|               |              (1)  |
|               '-,--correl-id------'
| 
| 

|记录:

  1. |不能指定 correl-id,除非先前定义了 |servicepolicy|

|模式为 DB2MQ。

|MQPUBLISH 函数将数据发布给 MQSeries。此函数要求安装“MQSeries 发布/预订”或“MQSeries 集成器”。请参考 www.ibm.com/software/MQSeries |以获取更详细的信息。

|MQPUBLISH 函数将 msg-data 中包含的数据发布给在 |publisher-service 中指定的 MQSeries 发布方,并使用由 |service-policy 定义的服务质量策略。可以指定消息的可选主题,还可以指定可选的用户定义消息相关标识符。如果成功的话,该函数将返回值 '1',如果失败,则返回 '0'。 |

|publisher-service
|是包含要将消息发送至的逻辑 MQSeries 目的地的字符串。如果指定了该字符串,则 publisher-service 必须是指在 AMT.XML 库文件中定义的发布方“服务点”。服务点是一个逻辑端点,可以在其中发送或接收消息。服务点定义包括“MQSeries 队列管理器和队列”的名称。有关更详细的信息,参见 MQSeries Application Messaging Interface。如果未指定 publisher-service,则将使用 DB2.DEFAULT.PUBLISHER。publisher-service |的最大大小为 48 个字节。

|service-policy
|一个字符串,包含在处理此消息时要使用的“MQSeries AMI 服务策略”。如果指定了该字符串,则 service-policy 必须是指在 AMT.XML 库文件中定义的“策略”。“服务策略”定义应该应用于此消息传递操作的一组服务质量选项。这些选项包括消息优先级和消息持久性。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 service-policy,则将使用缺省值 DB2.DEFAULT.POLICY。service-policy |的最大大小为 48 个字节。

|msg-data
|一个字符串表达式,包含要通过 MQSeries 来发送的数据。如果字符串的类型为 |VARCHAR,则最大大小为 4000 个字节。如果字符串类型为 CLOB,则其大小可达 1MB。

|topic
|一个字符串表达式,包含消息发布的主题。如果未指定主题,则没有任何主题将与该消息相关联。topic 的最大大小为 40 |个字节。在一个字符串中可以指定多个主题(最长可达 40 个字符)。必须用冒号将每个主题隔开。例如,“t1:t2:the third topic”指示消息与所有三个主题 t1、t2 和“the third topic”相关联。

|correl-id
|一个可选的字符串表达式,包含要与此消息相关联的相关标识符。correl-id 通常是在请求和应答方案中指定的,以将请求与应答相关联。如果未指定该表达式,则不会向消息添加相关标识。 |correl-id 的最大大小为 24 个字节。 |

|示例

|示例 1:此示例使用缺省策略(DB2.DEFAULT.POLICY)来将字符串“Testing 123”发布至缺省发布方服务(DB2.DEFAULT.PUBLISHER)。没有为消息指定相关标识符或主题。

|VALUES MQPUBLISH('Testing 123')

|示例 2:此示例将字符串“Testing 345”发布至主题“TESTS”下的发布方服务“MYPUBLISHER”。使用了缺省策略,但是未指定相关标识符。

|VALUES MQPUBLISH('MYPUBLISHER','Testing 345', 'TESTS')

|示例 3:此示例使用具有相关标识符“TEST1”的策略“MYPOLICY”来将字符串“Testing 678”发布至发布方服务“MYPUBLISHER”。消息是使用主题“TESTS”来发布的。

|VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testing 678','TESTS','TEST1')

|示例 4:此示例使用缺省策略(DB2.DEFAULT.POLICY)来将字符串“Testing 901”发布主题“TESTS”下的发布方服务“MYPUBLISHER”,且没有任何相关标识符。

|VALUES MQPUBLISH('Testing 901','TESTS')

|如果成功的话,所有示例都将返回值 '1'。

|43.6.1.2 MQREADCLOB

| | |
|>>-MQREADCLOB--(--+----------------------------------------+---->
|                  '-receive-service--+-------------------+-'
|                                     '-,--service-policy-'
| 
|>--)-----------------------------------------------------------><
| 
| 

|模式为 DB2MQ。

|MQREADCLOB 函数通过使用在 service-policy |中定义的服务质量策略来从由 receive-service |指定的 MQSeries 位置返回消息。执行此操作不会从与 receive-service 相关联的队列中除去消息,而是在队列开头返回消息。返回值是最大长度为 |1MB 的 CLOB(包含该消息)。如果没有要返回的消息,则将返回 NULL。 |

|receive-service
|是一个字符串,包含要从其中接收消息的逻辑 MQSeries 目的地。如果指定了该字符串,则 receive-service 必须是指在 AMT.XML 库文件中定义的“服务点”。服务点是一个逻辑端点,可以在其中发送或接收消息。服务点定义包括“MQSeries 队列管理器和队列”的名称。有关更详细的信息,参见 MQSeries Application Messaging Interface。如果未指定 receive-service,则将使用 DB2.DEFAULT.SERVICE。receive-service 的最大大小为 48 个字节。

|service-policy
|一个字符串,包含在处理此消息时所使用的“MQSeries AMI 服务策略”。如果指定了该字符串,则 service-policy 必须是指在 AMT.XML 库文件中定义的“策略”。“服务策略”定义应该应用于此消息传递操作的一组服务质量选项。这些选项包括消息优先级和消息持久性。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 service-policy,则将使用缺省值 DB2.DEFAULT.POLICY。service-policy |的最大大小为 48 个字节。 |

|示例:

|示例 1:此示例使用缺省策略(DB2.DEFAULT.POLICY)来读取缺省服务(DB2.DEFAULT.SERVICE)指定的队列开头的消息。

|VALUES MQREADCLOB()

|示例 2:此示例使用缺省策略(DB2.DEFAULT.POLICY)来读取服务“MYSERVICE”指定的队列开头的消息。

|VALUES MQREADCLOB('MYSERVICE')

|示例 3:此示例使用策略“MYPOLICY”来读取服务“MYSERVICE”指定的队列开头的消息。

|VALUES MQREADCLOB('MYSERVICE','MYPOLICY')

|如果成功的话,所有这些示例都会将消息的内容作为最大大小为 1MB 的 CLOB |返回。如果没有任何消息,则将返回 NULL。

|43.6.1.3 MQRECEIVECLOB

| | |
|>>-MQRECEIVECLOB------------------------------------------------>
| 
|>--(--+----------------------------------------------------------+--)-><
|      '-receive-service--+-------------------------------------+-'
|                         '-,--service-policy--+--------------+-'
|                                              '-,--correl-id-'
| 
| 

|模式为 DB2MQ。

|MQRECEIVECLOB 函数通过使用服务质量策略 service-policy 来从由 receive-service 指定的 MQSeries 位置处返回消息。执行此操作时将从与 receive-service 相关联的队列中除去消息。如果指定了 correl-id,则将返回具有匹配的相关标识符的第一条消息。如果未指定 correl-id,则将返回队列开头的消息。返回值是包含该消息的最大长度为 1MB |的 CLOB。如果没有要返回的消息,则将返回 NULL。 |

|receive-service
|是一个字符串,包含从其中接收消息的逻辑 MQSeries 目的地。如果指定了该字符串,则 receive-service 必须是指在 AMT.XML 库文件中定义的“服务点”。服务点是一个逻辑端点,可以在其中发送或接收消息。服务点定义包括“MQSeries 队列管理器和队列”的名称。有关更详细的信息,参见 MQSeries Application Messaging Interface。如果未指定 receive-service,则使用 DB2.DEFAULT.SERVICE。receive-service 的最大大小为 48 个字节。

|service-policy
|一个字符串,包含在处理此消息时要使用的“MQSeries AMI 服务策略”。 |如果指定了该字符串,则 service-policy |必须是指在 AMT.XML 库文件中定义的“策略” |1 |。如果未指定 service-policy,则使用缺省值 DB2.DEFAULT.POLICY。service-policy 的最大大小为 48 个字节。

|correl-id
|一个字符串,包含要与此消息相关联的可选相关标识符。correl-id 通常是在请求和应答方案中指定的,以将请求与应答相关联。如果未指定该字符串,则将不会使用相关标识。 |correl-id 的最大大小为 24 个字节。 |

|示例:

|示例 1:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收缺省服务(DB2.DEFAULT.SERVICE)指定的队列开头的消息。

|VALUES MQRECEIVECLOB()

|示例 2:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收服务“MYSERVICE”指定的队列开头的消息。

|VALUES MQRECEIVECLOB('MYSERVICE')

|示例 3:此示例使用策略“MYPOLICY”来接收服务“MYSERVICE”指定的队列开头的消息。

|VALUES MQRECEIVECLOB('MYSERVICE','MYPOLICY')

|示例 4:此示例使用策略“MYPOLICY”来从服务“MYSERVICE”指定的队列开头接收相关标识与 '1234' 相匹配的第一条消息。

|VALUES MQRECEIVECLOB('MYSERVICE',MYPOLICY','1234')

|如果成功的话,所有这些示例都会将消息的内容作为最大大小为 1MB 的 CLOB 返回。如果没有任何消息,则将返回 NULL。

|43.6.1.4 MQSEND

| | |

|>>-MQSEND--(--+----------------------------------------+-------->
|              '-send-service--,--+-------------------+-'
|                                 '-service-policy--,-'
| 
|>--msg-data--+-------------------+--)--------------------------><
|             |              (1)  |
|             '-,--correl-id------'
| 
| 

|记录:

  1. |不能指定 correl-id,除非先前定义了 |servicepolicy|

|模式为 DB2MQ。

|MQSEND 函数使用 service-policy 定义的服务质量策略来将 msg-data 中包含的数据发送至 |send-service 指定的 MQSeries 位置。可用 correl-id 来指定可选的用户定义消息相关标识符。如果成功的话,该函数将返回值 '1',如果失败,则返回 '0'。 |

|msg-data
|一个字符串表达式,包含要通过 MQSeries 来发送的数据。如果数据类型为 VARCHAR,则最大大小为 4000 个字节,如果数据类型为 CLOB,则最大大小为 1MB。

|send-service
|是包含要将消息发送至的逻辑 MQSeries 目的地的字符串。如果指定了该字符串,则 send-service 是指在 AMT.XML 库文件中定义的服务点。服务点是一个逻辑端点,可在其中发送或接收消息。服务点定义包括“MQSeries 队列管理器和队列”的名称。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 send-service,则使用值 DB2.DEFAULT.SERVICE。send-service 的最大大小为 48 个字节。

|service-policy
|一个字符串,包含在处理此消息时所使用的“MQSeries AMI 服务策略”。如果指定了该字符串,则 service-policy 必须是指在 AMT XML 库文件中定义的服务策略。“服务策略”定义应该应用于此消息传递操作的一组服务质量选项。这些选项包括消息优先级和消息持久性。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 service-policy,则将使用缺省值 DB2.DEFAULT.POLICY。service-policy 的最大大小为 48 个字节。

|correl-id
|一个可选的字符串,包含与此消息相关联的相关标识符。correl-id 通常是在请求和应答方案中指定的,以将请求与应答相关联。如果未指定该字符串,则将不会发送相关标识。 |correl-id 的最大大小为 24 个字节。 |

|示例:

|示例 1:此示例使用缺省策略(DB2.DEFAULT.POLICY)来将字符串“Testing 123”发送至缺省服务(DB2.DEFAULT.SERVICE),且不带相关标识符。

|VALUES MQSEND('Testing 123')

|示例 2:此示例使用策略“MYPOLICY”来将字符串“Testing 345”发送至服务“MYSERVICE”,且不带相关标识符。

|VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 345')

|示例 3:此示例使用策略“MYPOLICY”来将字符串“Testing 678”发送至服务“MYSERVICE”,且带有相关标识符“TEST3”。

|VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 678','TEST3')

|示例 4:此示例使用缺省策略(DB2.DEFAULT.POLICY)来将字符串“Testing 901”发送至服务“MYSERVICE”,且不带相关标识符。

|VALUES MQSEND('MYSERVICE','Testing 901')

|如果成功的话,所有示例都将返回标量值 '1'。

43.6.2 Table Functions

|43.6.2.1 MQREADALLCLOB

| | |
|>>-MQREADALLCLOB--(--------------------------------------------->
| 
|>--+----------------------------------------+--+----------+----->
|   '-receive-service--+-------------------+-'  '-num-rows-'
|                      '-,--service-policy-'
| 
|>--)-----------------------------------------------------------><
| 
| 

|模式为 DB2MQ。

|MQREADALLCLOB 函数通过使用服务质量策略 service-policy |receive-service 指定的 MQSeries 位置返回包含消息和消息元数据的表。执行此操作不会从与 receive-service 相关联的队列中除去消息。

|如果指定了 num-rows,则将返回最多为 num-rows 的消息。如果未指定 num-rows,则将返回所有可用的消息。返回的表包含下列各列:

|

|receive-service
|是一个字符串,包含从其中读取消息的逻辑 MQSeries 目的地。如果指定了该字符串,则 receive-service |必须是指在 AMT.XML 库文件中定义的服务点。服务点是一个逻辑端点,可以在其中发送或接收消息。服务点定义包括“MQSeries 队列管理器和队列”的名称。有关更详细的信息,参见 MQSeries Application Messaging Interface。如果未指定 receive-service,则将使用 DB2.DEFAULT.SERVICE。receive-service 的最大大小为 48 个字节。

|service-policy
|一个字符串,包含在处理此消息时所使用的“MQSeries AMI 服务策略”。如果指定了该字符串,则 |service-policy 是指在 AMT XML 库文件中定义的“策略”。服务策略定义应该应用于此消息传递操作的一组服务质量选项。这些选项包括消息优先级和消息持久性。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 service-policy,则将使用缺省值 DB2.DEFAULT.POLICY。service-policy 的最大大小为 48 个字节。

|num-rows
|一个正整数,包含要由该函数返回的最大消息数。 |

|示例:

|示例 1:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收缺省服务(DB2.DEFAULT.SERVICE)指定的队列中的所有消息。消息和所有元数据都是作为表返回的。

|SELECT *
|   FROM table (MQREADALLCLOB()) T

|示例 2:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收服务 MYSERVICE 指定的队列开头的所有消息。只返回 MSG 和 CORRELID 列。

|SELECT T.MSG, T.CORRELID
|   FROM table (MQREADALLCLOB('MYSERVICE')) T

|示例 3:此示例使用缺省策略(DB2.DEFAULT.POLICY)来读取缺省服务(DB2.DEFAULT.SERVICE)指定的队列开头。只返回 CORRELID 为 '1234' 的消息。将返回所有列。

|SELECT *
|   FROM table (MQREADALLCLOB()) T
|   WHERE T.CORRELID = '1234'

|示例 4:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收缺省服务(DB2.DEFAULT.SERVICE)指定的队列的前 10 条消息。将返回所有列。

|SELECT *
|   FROM table (MQREADALLCLOB(10)) T

|43.6.2.2 MQRECEIVEALLCLOB

| | |
|>>-MQRECEIVEALLCLOB--(------------------------------------------>
| 
|>--+----------------------------------------------------------+-->
|   '-receive-service--+-------------------------------------+-'
|                      '-,--service-policy--+--------------+-'
|                                           '-,--correl-id-'
| 
|>--+-----------------+--)--------------------------------------><
|   '-+---+--num-rows-'
|     '-,-'
| 
| 

|模式为 DB2MQ。

|MQRECEIVEALLCLOB 函数通过使用服务质量策略 service-policy |receive-service 指定的 MQSeries 位置返回包含消息和消息元数据的表。执行此操作时将从与 receive-service 相关联的队列中除去消息。

|如果指定了 correl-id,则将只返回具有匹配的相关标识符的那些消息。如果未指定 correl-id,则将返回队列开头的消息。

|如果指定了 num-rows,则将返回最多为 num-rows 的消息。如果未指定 num-rows,则返回所有可用的消息。返回的表包含下列各列:

|

|receive-service
|是一个字符串,包含从其中接收消息的逻辑 MQSeries 目的地。如果指定了该字符串,则 receive-service |必须是指在 AMT.XML 库文件中定义的服务点。服务点是一个逻辑端点,可以在其中发送或接收消息。服务点定义包括“MQSeries 队列管理器和队列”的名称。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 receive-service,则将使用 DB2.DEFAULT.SERVICE。receive-service 的最大大小为 48 个字节。

|service-policy
|一个字符串,包含在处理此消息时所使用的“MQSeries AMI 服务策略”。如果指定了该字符串,则 |service-policy 是指在 AMT XML 库文件中定义的“策略”。服务策略定义应该应用于此消息传递操作的一组服务质量选项。这些选项包括消息优先级和消息持久性。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。如果未指定 service-policy,则将使用缺省值 DB2.DEFAULT.POLICY。service-policy 的最大大小为 48 个字节。

|correl-id
|一个可选的字符串,包含与此消息相关联的相关标识符。correl-id 通常是在请求和应答方案中指定的,以将请求与应答相关联。如果未指定该字符串,则不会指定相关标识。correl-id 的最大大小为 24 个字节。

|num-rows
|一个正整数,包含要由该函数返回的最大消息数。 |

|示例:

|示例 1:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收缺省服务(DB2.DEFAULT.SERVICE)指定的队列中的所有消息。消息和所有元数据都是作为表返回的。

|SELECT *
|   FROM table (MQRECEIVEALLCLOB()) T

|示例 2:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收服务 MYSERVICE 指定的队列开头的所有消息。只返回 MSG 和 CORRELID 列。

|SELECT T.MSG, T.CORRELID
|   FROM table (MQRECEIVEALLCLOB('MYSERVICE')) T

|示例 3:此示例使用策略“MYPOLICY”来接收服务“MYSERVICE”指定的队列开头的所有消息。只返回 CORRELID 为 '1234' 的消息。只返回 MSG 和 CORRELID 列。

|SELECT T.MSG, T.CORRELID
|   FROM table (MQRECEIVEALLCLOB('MYSERVICE','MYPOLICY','1234')) T
|  

|示例 4:此示例使用缺省策略(DB2.DEFAULT.POLICY)来接收缺省服务(DB2.DEFAULT.SERVICE)指定的队列的前 10 条消息。将返回所有列。

|SELECT *
|   FROM table (MQRECEIVEALLCLOB(10)) T
| |

|43.6.3 MQSeries 函数中现在支持 CLOB 数据

|MQSeries 函数(在 DB2MQ 模式中定义的那些函数)现在允许与 VARCHAR 数据和 CLOB 数据配合使用。在某些情况下,现在存在新函数处理 CLOB 数据类型,换句话说,已经存在的函数现在同时处理 CLOB 和 VARCHAR |数据。在任何一种情况下,CLOB 函数的语法与它的 VARCHAR 等价物的语法完全相同。下表中列示了支持使用 |CLOB 数据的函数以及其等价 VARCHAR 函数:


|

|表 18. 支持 CLOB 数据类型的 MQSeries 函数

用于 VARCHAR 数据的函数 用于 CLOB 数据的函数
MQPUBLISH MQPUBLISH
MQREAD MQREADCLOB
MQRECEIVE MQRECEIVECLOB
MQSEND MQSEND
MQREADALL MQREADALLCLOB
MQRECEIVEALL MQRECEIVEALLCLOB

|有关启用 MQSeries 函数(在 DB2MQ 模式中定义的那些函数)的信息,参见 MQSeries


脚注:

1
“服务策略”定义应该应用于此消息传递操作的一组服务质量选项。这些选项包括消息优先级和消息持久性。有关更详细的信息,参见 MQSeries Application Messaging Interface 手册。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]