Here's a complete repro case. Either it's not supposed to work this way or I'm doing something wrong:
use Net::Stomp; use strict; my $stomp = Net::Stomp->new( { hostname => 'bpdeb', port => '61612' } ); $stomp->connect( { login => 'hello', passcode => 'there' } ); # pre-populate the two queues $stomp->send( { destination => '/queue/FOO.BAR', body => 'test message' } ); $stomp->send( { destination => '/queue/FOO.BAR2', body => 'test message' } ); # now subscribe to them $stomp->subscribe({ destination => '/queue/FOO.BAR', 'ack' => 'client', 'activemq.prefetchSize' => 1 }); $stomp->subscribe({ destination => '/queue/FOO.BAR2', 'ack' => 'client', 'activemq.prefetchSize' => 1 }); # read one frame, then start a transaction asking for a receipt of the # BEGIN message while ($stomp->can_read()){ my $frame = $stomp->receive_frame; print STDERR "got frame ".$frame->as_string()."\n"; print STDERR "sending a BEGIN\n"; my($frame) = Net::Stomp::Frame->new({ command => 'BEGIN', headers => { transaction => 123, receipt => 456, }, }); $stomp->send_frame($frame); my $expected_receipt = $stomp->receive_frame; print STDERR "expected RECEIPT but got ".$expected_receipt->as_string()."\n"; exit; } This outputs (with the details elided) got frame MESSAGE destination:/queue/FOO.BAR .... sending a BEGIN expected RECEIPT but got MESSAGE destination:/queue/FOO.BAR2 .... -- View this message in context: http://activemq.2283324.n4.nabble.com/Net-Stomp-and-transactions-and-receive-frame-tp3843640p3850526.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.