activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From RakeshRay <Rakesh....@Proquest.com>
Subject Re: Queue does not drain completely.
Date Thu, 02 Jul 2009 13:27:26 GMT

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.Ray@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.


Mime
View raw message