use Win32::OLE;
use strict;
my %getInbox;
my $msmq_path = "direct=os:MSMQ-Server\\Private\$\\test";
my $objInfo = Win32::OLE->new('MSMQ.MSMQQueueInfo');
my $objMsg = Win32::OLE->new('MSMQ.MSMQMessage');
$objInfo->{FormatName}= $msmq_path;
#$objMsg->{Body}= "test";
#$objMsg->{Label}= '12005I112';
my $objQue=$objInfo->open(1,0);
$getInbox{message} = $objQue->PeekCurrent(0,1,1,10);
$getInbox{info} = $objQue->Receive() if (defined($getInbox{message}));
while (defined($getInbox{info}))
{
print $getInbox{info}->{Body},"\n";
print $getInbox{info}->{Label},"\n";
$getInbox{message} = $objQue->PeekNext(0,1,1,10);
last if (!(defined($getInbox{message})));
$getInbox{info}=$objQue->Receive()
}
$objQue->Close;
Custom Search
|
PayPal is the easiest way to receive money online. Get one now or Click here to sign up.
How to peek message MSMQ using perl
How to send message in transactional MSMQ queue using perl
use Win32::OLE;
&sendInbox("Body",'MSMQ-Server\private$\test');
sub sendInbox()
{
my $Body = shift;
my $Queue = shift;
my $sendMsg = Win32::OLE->new('MSMQ.MSMQMessage');
my $sendInfo = Win32::OLE->new('MSMQ.MSMQQueueInfo');
my $Sendxdisper = Win32::OLE->new('MSMQ.MSMQTransactionDispenser'); #
my $Sendxact = Win32::OLE->new('MSMQ.MSMQTransaction'); #
$Sendxact = $Sendxdisper->BeginTransaction();
$sendInfo->{FormatName}= "direct=os:" . $Queue;
my $sendQ = $sendInfo->Open(2, 0);
$sendMsg->{Label}= "Label";
$sendMsg->{Body}= $Body;
#Send Message
$sendMsg->Send($sendQ,$Sendxact);
$sendQ->Close;
$Sendxact->Commit();
}
Labels:
Message,
MSMQ,
Perl,
Queuing,
Transactional
Subscribe to:
Posts (Atom)
WebProNews Feed
Custom Search
|
eWeek - RSS Feeds
HowtoForge - Howtos and Tutorials
The Register
PayPal is the easiest way to receive money online. Get one now or Click here to sign up.