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

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -