activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fulko Hew <>
Subject need example for Perl STOMP access to ActiveMQ.Statistics.Broker
Date Thu, 01 Nov 2012 18:27:35 GMT
I'm new to ActiveMQ and STOMP and am trying to get a simple example to
work in order to retrieve system and queue information from a running

I have read the information on: Apache
ActiveMQ > Connectivity > Protocols > Stomp
and I have enabled STOMP inside ActiveMQ.  I know this works because I was
able to use
the STOMP example provide in ActiveMQ.

I have also read Apache
ActiveMQ > Features > Interceptors > StatisticsPlugin and
tested it using a version of the (non-STOMP) code I found at:

So I know STOMP works, and I know the stats works,
but I haven't gotten a Java based STOMP app (retrieving stats) to work yet,
or (my ultimate goad) a Perl (AnyEvent::Stomp) based app either.

So far, below is my best attempt at a Perl example
and below that is my non-working Java attempt.

Does anyone have a working example of either language that I can start from
and learn from; or can anyone tell me what I'm missing or doing wrong?


  use AnyEvent;
use AnyEvent::STOMP;

my $host        = 'localhost';
my $port        = undef;
my $ack         = undef;
my $destination = '/queue/ActiveMQ.Statistics.Broker';
my $replyto     = '/queue/statsresults';
my $once        = 0;

my $client = AnyEvent::STOMP->connect(
                $host, $port, $ssl, $replyto, $ack,
                    receipt         => '',
                    transformation  => 'jms-map-json',

$client->reg_cb(MESSAGE => sub {
    my (undef, $body, $headers) = @_;
    print "received something, body:\n$body\n";

$client->reg_cb(frame => sub {
    my (undef, $type, $body, $headers) = @_;

    print "received anything, type: $type\nbody:\n";
    if ($type eq 'RECEIPT') {
        unless ($once) {
            $client->send('', $destination, { replyTo => $replyto, receipt
=> ''} );  # trigger an exchange
            $once = 1;

AnyEvent->condvar->recv;                        # start the event loop

import org.apache.activemq.transport.stomp.Stomp;
import org.apache.activemq.transport.stomp.StompConnection;
import org.apache.activemq.transport.stomp.StompFrame;
import org.apache.activemq.transport.stomp.Stomp.Headers.Subscribe;
import java.util.HashMap;

public class StompStats {

    public static void main(String args[]) throws Exception {

        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("replyTo", "/queue/statsresults");

        StompConnection connection = new StompConnection();"localhost", 61613);
        connection.connect("system", "manager");


        connection.send("/queue/ActiveMQ.Statistics.Broker", "", "",

        StompFrame message = connection.receive();



  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message