发行说明


|20.4 MQSeries 函数概述

|DB2 UDB 版本 7.2 附带提供了一组 MQSeries 函数,允许 SQL 语句包括消息传递操作。这表示此支持可用于以任何受支持的语言(例如 C、Java 和使用任何数据库接口的 SQL)编写的应用程序。下面显示的所有示例都是以 SQL 编写的。可以任何标准方式通过其它编程语言来使用此 SQL。上述所有 MQSeries |消息传递样式都是受支持的。有关 MQSeries 函数的更多信息,参见《发行说明》中的 SQL Reference 一节。

|在基本配置中,MQSeries 服务器位于带有 DB2 的数据库服务器的机器上。MQSeries 函数被安装至 DB2,并提供对 MQSeries 服务器的访问。DB2 客户机可能在 DB2 服务器可访问到的任何机器上。多台客户机可通过数据库并行存取 |MQSeries 函数。通过提供的这些函数,DB2 客户机可执行 SQL 语句内的消息传递操作。这些消息传递操作允许 |DB2 应用程序之间进行通信,或与其它的 MQSeries 应用程序通信。

|enable_MQFunctions |命令用来对 MQSeries 函数启用 DB2 数据库。它将自动建立简单的缺省配置,以便客户机应用程序只将其与管理操作配合使用。有关描述,参见20.6, enable_MQFunctions20.7, disable_MQFunctions。缺省配置使得应用程序程序员能够迅速入门,且有较为简单的接口来进行开发。可根据需要增加配置其它功能。

|示例 1:要使用缺省配置发送简单的消息,SQL 语句应为:

|VALUES DB2MQ.MQSEND('simple message')

|这会将消息 simple message |发送至缺省配置指定的 MQSeries 队列管理器和队列。

|MQSeries 的“应用程序消息传递接口”(AMI)使得消息传递操作和指示应如何执行这些操作的定义完全分离。这些定义被保存在外部库文件中,且使用“AMI 管理”工具进行管理。这使得 AMI 应用程序易于开发和维护。随 DB2 提供的 |MQSeries 函数是以 AMI MQSeries 接口为基础的。AMI |支持使用外部配置文件(称为“AMI 库”)来存储配置信息。缺省配置包括为与 DB2 配合使用而配置的“MQSeries AMI 库”。

|MQSeries AMI 中的两个关键概念服务点和策略被引入 DB2 MQSeries 函数。服务点是一个逻辑端点,可在其中发送或接收消息。在 AMI 库中,每个服务点都是使用 |MQSeries 队列名和队列管理器定义的。策略定义应该用于给定消息传递操作的服务质量选项。关键服务质量包括消息优先级和持久性。系统提供了缺省服务点和策略定义,开发者可使用它们来更进一步地简化他们的应用程序。可按如下所示重写示例 1 |以显式指定缺省服务点和策略名:

|示例 2:

|VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY',
|                                         'simple message')

|在队列和应用程序所驻留的服务器上,队列可供一个或多个应用程序使用。在许多配置中,可定义多个队列以支持不同的应用程序和目的。因此,在提出 MQSeries 请求时定义不同服务点是非常重要的。这在以下示例中作了演示:

|示例 3:

|VALUES DB2MQ.MQSEND('ODS_Input', 'simple message')

|注意:
在此示例中,未定义策略,因此将使用缺省策略。 |

|20.4.1 限制

|MQSeries 允许将消息操作和数据库操作组合到单个工作单元中作为原子事务。最初在 |UNIX 和 Windows 上,MQSeries 不支持此功能部件。

|在使用发送或接收函数时,类型为 VARCHAR 的消息的最大长度是 4000 |个字符。发送或接收类型为 CLOB 的消息时,最大长度为 1 MB。这些也是使用 |MQPublish 发布消息时的最大消息大小。

|处理 CLOB 消息和 VARCHAR 消息时,有时需要不同的函数。通常,MQ |函数的 CLOB 版本与它的对应项使用完全相同的语法。唯一的差别就是它的名称末尾有字符 |CLOB。例如,MQREAD 的 CLOB 等价项是 MQREADCLOB。有关这些函数的详细列表,参见43.6.3, MQSeries 函数中现在支持 CLOB 数据

|20.4.2 错误代码

|“MQSeries 函数”返回的返回码可在“MQSeries Application Messaging |Interface Manual”的“附录 B”中找到。


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