您的位置:首页 > 其它

MQSeries::Message 面向对象接口的MQSeries messages

2017-03-02 09:00 337 查看
MQSeries::Message 面向对象接口的MQSeries messages

use MQSeries qw(:functions);
use MQSeries::Message;

#
# Create a vanilla MQSeries::Message object for getting messages

创建一个普通的MQSeries::Message object  用于get 消息
#
my $getmsg = MQSeries::Message->new();

#
# Create a message for putting strings, which requires the
# MQMD.Format field to be specified.  This is essential for
# character codeset conversion.

#创建一个消息用于输入字符串, 需要 MQMD. 格式字段被指定。

my $putmsg = MQSeries::Message->new
(
MsgDesc            =>
{
Format            => MQSeries::MQFMT_STRING,
},
);

#
# Create a reply message, copying the CorrelId from the MsgId of a
# request.  This reply is also a string.
#
my $request = MQSeries::Message->new();

# Assume we get the message via an MQSeries::Queue object...

my $reply = MQSeries::Message->new
(
MsgDesc            =>
{
Format            => MQSeries::MQFMT_STRING,
CorrelId          => $request->MsgDesc("MsgId"),
},
);

描述:

MQSeries::Message object 是一个00 机制来创建 MQSeries messages,  put和get 它们到MQSeries queues,

提供一个接口 比完整的MQI 简单

这个模块是结合MQSeries::QueueManager, MQSeries::Queue and MQSeries::Properties

那些对象提供了 MQI的子集,通过一个简单的接口:

方法:

new

构造函数的参数是一个hash, 遵循 key/value 对(没有必要的键)

Key            Value
===            =====
Data           Scalar
BufferLength   Positive Integer
MsgDesc        MQI MsgDesc hash (MQMD structure)
Carp           CODE reference

Data:

当创建一个消息放入到一个队列, Data应该被指定。

这个必须是一个简单的 scalar 值, 其他的MQSeries::Message 子类支持直接的编码复杂数据结构,

比如PERL 引用可以发送和检索作为MQSeries messages  使用MQSeries::Message::Storable module.

Data 方法将设置Data 消息部分 如果它是传递任何定义的值,

会简单的返回数据。因此,要清楚任何消息中的数据,传递空的字符串就行

$message = MQSeries::Message->new( Data => "foo" );
$message->Data(""); # Clears Data value entirely

为了 查询数据值, 方法必须被调用没有进一步参数:

$data = $message->Data(); # Returns Data unmolested

Buffer

这个方法 会返回raw, 转换后的缓冲区.这个真的先关的 一个消息类型 ,使用一个  PutConvert and/or GetConvert 方法

来转换raw buffer

BufferLength:

这个设置 消息的BufferLength  被提取使用MQGET.

默认是32K, 如果 消息是从队列接收是很大的,这个必须适当的设置

MsgDesc

这个key 是值是一个hash 引用 设置 MsgDesc 键/值,查看""MQSeries Application Programming Reference"文档

对于可能的keys和MQMD结构的值

此外, 查看示例章节对于特定的使用功能。

这是一个API的一个区域 不容易被隐藏,你必须知道你在做什么

Carp

这个key 指定一个代码引用到一个函数来替换carp()所有的请求,

允许API 的用户来捕获和处理所有的错误消息,或者简单的改变他们如何登陆

For example, one might want everything to be logged via syslog:

sub MyLogger {
my ($message) = @_;
foreach my $line (split(/\n+/, $message)) {
syslog("err", $line);
}
}

Data:

这个方法 是用于设置或者查询数据结构的值。如果 指定了参数,然后指定了数据被分配作为这个对象的数据值。

如果没有参数给定,当前的消息值被返回

数据可以是任意的perl数据结构,然而,它必须可变化为一个scalar通过 PutConvert and GetConvert hooks

MsgDesc

这个方法可以用于查询 MsgDesc data structure.

如果没有给定参数, 整个MsgDesc  hash 被返回,如果 一个单独的参数给定,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: