ibm mq - perl mqseries read event messages -


i want read system.admin.qmgr.event event messages. can receive messages, output format not readable.

this perl sub use reading:

    sub readeventmessage() {     $self         = shift; $qmgr         = shift; # name of queue manager $sourceq      = shift; $nmessages    = shift; $count      = 0; $sourcequeue = mqseries::queue->new     (      queuemanager       => $qmgr,      queue              => $sourceq,      #mode               => 'input',      options            => mqoo_input_shared | mqoo_browse,     )|| die ("unable instantiate $qmgr::$sourceq object\n");  while (1)    {    #my $returned_message = mqseries::message->new( data =>"" );   $returned_message = mqseries::message->new(),           #data => {         #   format  => mqevent,         #},         getmsgopts => {                  options => mqseries::mqgmo_browse_next | mqseries::mqgmo_accept_truncated_msg | mqseries::mqgmo_fail_if_quiescing          }      ;    $rc=$sourcequeue->get( message => $returned_message);    if ($rc == 1)       {        $msg_data = $returned_message->data();        #print "returned event message\t======>\n";        #print dumper($msg_data);        #print $msg_data."\n";        $count++;        $msg_header = $returned_message->msgdesc();        $msg_header->{data}=$msg_data;        foreach (keys %$msg_header)                {                 $arg  = "$_:$msg_header->{$_}";                   #                 # encode data                  #                 $arg=~s/\\/\\\\/g;                 $arg=~s/\n/\\n/g;                 if  ( $arg=~/^\s*$/  )                     {                      next;                     }                 print "\n$arg";                }                    if ( defined $nmessages )            {             if ( $nmessages  < ($count +1))                {                 last;                }                }         }     elsif ($rc == -1)        {         $status="\nno more messages found on $sourceq\n \n";          last;               }     else             {         $status="\nerror retrieving messages $sourceq." .         "\ncompcode =" . $sourcequeue->compcode() .          "\nreason   =" . $sourcequeue->reason() . "\n";         last;               }    } } 

the output i'm getting is:

 puttime:12065823 replytoq: groupid: useridentifier: encoding:546 applidentitydata: backoutcount:0 format:mqevent msgflags:0 applorigindata: putapplname:qm_h35299 msgtype:8 msgseqnumber:1 codedcharsetid:850 accountingtoken: offset:0 correlid: replytoqmgr:qm_h35299 persistence:1 putdate:20120607 originallength:-1 putappltype:7 expiry:-1 version:2 priority:0 data:   $   ☺   ,   ☺   ☺   ☺    ☻   ♦   d   ▀      0   qm_h35299                                       ♥   ►   ³♥  ♣ 

data format mqevent, ccsi 850, , encoding 546.

any appreciated.

event messages in programmable message format (pcf). format set of name/type/value triplets in linked list. necessary walk list in order read messages. fortunately, mqseries perl module includes mqseries::message::event class this. various parameters , attributes returned perl hash easy enumerate or access values.


Comments

Popular posts from this blog

How do you change vbulletin's home page to the forums instead of the default (CMS or Activity Stream)? -

java - stack overflow exception on xml transformation -