Hi, Hoover. We have written a wrapper around and internally it is using receive_frame()...Here is the wrapper code.
sub read { my ($self) = @_; # after reading, we also need to acknoledge the read, but keep them both as part of the same transaction # still need to define a way of signalling errors vs nothing to read return unless $self->{stomp}->can_read({ timeout => '5' }); my $frame = $self->{stomp}->receive_frame; return unless $frame; my $msg = $frame->body; my $msgid = $frame->headers->{'message-id'}; # sending an ACK with the message id and a transaction makes the read part of the transaction $frame = Net::Stomp::Frame->new( { command => 'ACK', headers => { transaction => $self->_tran(), 'message-id' => $msgid }, } ); $self->{stomp}->send_frame($frame); return $msg; } Roger Hoover wrote: > > Maybe you meant to call $stomp->receive_frame() in the while loop > instead? > > On Wed, Jul 1, 2009 at 1:15 PM, RakeshRay <rakesh....@proquest.com> wrote: > >> >> Just installed Active MQ 5.2. >> Using Stomp, inserted 5000 msgs and try to read the same with >> while ( my $msg = $stomp->read() ) { >> $stomp->commit(); >> print $msg.$/; >> } >> It leaves 2 messages in the queue, just reads 4998 and comes out. >> >> Any suggestions? >> -- >> View this message in context: >> http://www.nabble.com/Queue-does-not-drain-completely.-tp24296039p24296039.html >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://www.nabble.com/Queue-does-not-drain-completely.-tp24296039p24306726.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.