Perl处理MQ消息

本文介绍了使用Perl处理IBM MQ消息的方法,包括创建queue manager对象、queue对象、MQ message对象,以及通过queue进行消息的获取和发送。示例代码展示了具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候在不同系统之间进行数据交互的时候,往往会用到各种标准的数据载体,xml, file, JMS。在这里主要讲讲用perl发送和接收MQ消息。
我们用到的MQ server是IBM的MQ.
大致的步骤如下:
1,新建queue manager对象
2,新建queue对象
3,新建MQ message对象
4,通过queue对象get/put message对象。
5,关闭queue

简单的实例代码如下:

#!/usr/bin/perl -w

use strict;
use warnings;

#MQ related modules
use MQSeries;
use MQSeries::QueueManager;
use MQSeries::Queue;
use MQSeries::Message;

my $qmgr = MQSeries::QueueManager->new(
    QueueManager => 'THEJTECHS.QUEUEMGR',
    ClientConn   => {
        'ChannelName' => 'THEJTECHS.CHANNEL',
        'TransportType' => 'TCP',
        'ConnectionName' => 'thejtechs.com(1414)',
        'MaxMsgLength' => 16 * 1024 * 1024,
    },
) or die "can not connection to queue manager\n";

#enqueue
my $in_queue = MQSeries::Queue->new(
    QueueManager => $qmgr,
    Queue => 'THEJTECHS.QUEUE.IN',
    Mode => 'output',
) or die "can not open queue\n";

my $message = MQSeries::Message->new(
    Data => "this is an enqueue message",
);

$in_queue->Put(Message => $message) or die "can not put Message: CompCode: " . $in_queue->CompCode() . " Reason: " . $in_queue->Reason();
$in_queue->Close();

#dequeue
my $out_queue = MQSeries::Queue->new(
    QueueManager => $qmgr,
    Queue => 'THEJTECHS.QUEUE.OUT',
    Mode => 'input',
) or die "can not open queue\n";

my $getMessage = MQSeries::Message->new;
my $count = 0;
while($count < 10){
    $out_queue->Get(
        Message => $getMessage,
        Sync => 1,
    ) or die "unable dequeue message\n";
    if((my $msg = $getMessage->Data())){
        print "$msg\n";
        $out_queue->QueueManager()->Commit() or die "can not commit\n";
    }else{
        $out_queue->QueueManager()->BackOut() or die "can not backOut\n";
    }
    $count++;
}
$out_queue->Close();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值