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.

Reply via email to