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

来源:互联网 发布:cydia软件源福利 编辑:程序博客网 时间:2024/06/06 04:47
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 referenceData:当创建一个消息放入到一个队列, 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 unmolestedBuffer这个方法 会返回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 hooksMsgDesc这个方法可以用于查询 MsgDesc data structure.如果没有给定参数, 整个MsgDesc  hash 被返回,如果 一个单独的参数给定,

0 0