MQPublishClob() 函数

MQPublishClob() 函数会将有关一个或多个主题的 CLOB 数据发布到 WMQ 管理的队列。

语法

publisher_name
可选参数。引用 "gbasedbt".mqipubsub 表的 pubsubname 列中的值。如果不指定 publisher_name,将把 IDS.DEFAULT.PUBLISHER 用作发布者。publisher_name 的最大长度为 48 个字节。
policy_name
可选参数。引用 "gbasedbt".mqipolicy 表的 policyname 列中的值。如果不指定 policy_name,将把 IDS.DEFAULT.PUB.SUB.POLICY 用作策略。policy_name 的最大大小为 48 个字节。
clob_data
必需参数。要发送到 WMQ 的 CLOB 数据。尽管 CLOB 数据大小最大可达 4 TB,消息的最大大小仍受 Websphere MQ 支持的对象所限制。如果 clob_data 为 NULL,将向队列发送一条长度为零的消息。
topic
可选参数。一个字符串,其中包含消息出版物的主题。主题的最大大小为 40 个字节。可以在一个字符串中指定多个主题(长度最大为 40 个字符)。每个主题必须使用冒号分隔。例如,“t1:t2:the third topic”表示消息与三个主题全部关联:t1、t2 和 the third topic。如果不指定主题,消息将没有关联内容。
correl_id
可选参数。一个字符串,其中包含要与此消息关联的相关标识。通常在请求与回复场景中指定 correl_id,以便将请求与回复关联。correl_id 的最大大小为 24 个字节。如果不指定,将不向消息添加任何相关标识。

用途

MQPublishClob() 函数会将数据发布到 WMQ。该函数要求安装 WMQ 的 WMQ 发布/预订组件,且消息代理正在运行。

MQPublishClob() 函数会将 clob_data 中包含的数据发布到 publisher_name 中指定的 WMQ 发布者(使用 policy_name 定义的服务质量策略)。

下表描述 MQPublishClob() 函数自变量的解释方式。
表 1. MQPublishClob() 自变量解释
用途 自变量解释
MQPublishClob(arg1) arg1 = clob_data
MQPublishClob(arg1, arg2) arg1 = clob_data

arg2 = topic

MQPublishClob(arg1, arg2, arg3) arg1 = publisher_name

arg2 = clob_data

arg3 = topic

MQPublishClob(arg1, arg2, arg3, arg4) arg1 = publisher_name

arg2 = policy_name

arg3 = clob_data

arg4 = topic

MQPublishClob(arg1, arg2, arg3, arg4, arg5) arg1 = publisher_name

arg2 = policy_name

arg3 = clob_data

arg4 = topic

arg5 = correl_id

返回码

1
操作成功。
错误
操作失败。

示例

示例 1
begin;
EXECUTE FUNCTION MQPublishClob(filetoclob("/work/mydata","client");
commit:
此示例使用以下参数发布消息:
  • publisher_name:缺省发布者
  • policy_name:缺省策略
  • clob_data:filetoclob("/work/mydata", "client")
  • topic:无
  • correl_id:无
示例 2
begin;
EXECUTE FUNCTION MQPublishClob('MYPUBLISHER',
filetoclob("/work/mydata", "client"),'TESTTOPIC');
commit;
此示例使用以下参数发布消息:
  • publisher_name:“MYPUBLISHER”
  • policy_name:缺省策略
  • clob_data:filetoclob("/work/mydata", "client")
  • topic:“TESTTOPIC”
  • correl_id:无
示例 3
begin;
EXECUTE FUNCTION MQPublishClob('MYPUBLISHER',
'MYPOLICY',filetoclob("/work/mydata",
"client"),'TESTTOPIC','TEST1');commit;
此示例使用以下参数发布消息:
  • publisher_name:“MYPUBLISHER”
  • policy_name:“MYPOLICY”
  • clob_data:filetoclob("/work/mydata", "client")
  • topic:“TESTTOPIC”
  • correl_id:“TEST1”
示例 4
begin;
EXECUTE FUNCTION MQPublishClob
(filetoclob("/work/mydata", "client"),'TESTS');
commit;
此示例使用以下参数发布消息:
  • publisher_name:缺省发布者
  • policy_name:缺省策略
  • clob_data:filetoclob("/work/mydata", "client")
  • topic:“TESTS”
  • correl_id:无
示例 5
begin;
EXECUTE FUNCTION MQPublishClob('SEND.MESSAGE',
 'emergency', filetoclob("/work/mydata", "client")
 'expedite');commit;
此示例使用以下参数发布消息:
  • publisher_name:“SEND.MESSAGE”
  • policy_name:“emergency”
  • clob_data:filetoclob("/work/mydata", "client")
  • topic:“expedite”
  • correl_id:无
示例 6
下表包含 "gbasedbt".mqipubsub 表中的样本行和列。
样本行 pubsubname 列 receiver 列 pubsubtype 列
样本行 1

'IDS.DEFAULT.

PUBLISHER'

' ' 'Publisher'
样本行 2

'IDS.DEFAULT.

SUBSCRIBER'

'IDS.DEFAULT.

SUBSCRIBER.RECEIVER'

'Subscriber'
begin;
 EXECUTE FUNCTION
    MQSubscribe('IDS.DEFAULT.SUBSCRIBER',
                'IDS.DEFAULT.PUB.SUB.POLICY', 'Weather');
commit;
此语句说明订户如何使用以下参数注册感兴趣的,包含主题“Weather”的消息:
  • subscriber_name:“IDS.DEFAULT.SUBSCRIBER”
  • policy_name:“IDS.DEFAULT.PUB.SUB.POLICY”
  • topic:“Weather”
begin;
   EXECUTE FUNCTION MQPublishClob('IDS.DEFAULT.PUBLISHER',
                            'IDS.DEFAULT.PUB.SUB.POLICY',
 filetoclob("/work/mydata",
 "client"), 'Weather');commit;
此语句使用以下参数发布消息:
  • publisher_name:“IDS.DEFAULT.PUBLISHER”
  • policy_name:“IDS.DEFAULT.PUB.SUB.POLICY”
  • clob_data:filetoclob("/work/mydata", "client")
  • topic:“Weather”
  • correl_id:无
begin;
   EXECUTE FUNCTION MQReceiveClob('IDS.DEFAULT.SUBSCRIBER.RECEIVER',
                              'IDS.DEFAULT.PUB.SUB.POLICY');
commit;
此语句使用以下参数接收消息:
  • service_name:“IDS.DEFAULT.SUBSCRIBER.RECEIVER”
  • policy_name:“IDS.DEFAULT.PUB.SUB.POLICY”
1 请参阅『用法』一节以获取自变量的解释。