activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dejan Bosanac" <>
Subject Re: Is ActiveMQ the right tool?
Date Thu, 31 Jan 2008 13:53:12 GMT
Hi Maarten

> > I'm running a cluster of webservers and I'd like to write certain events
> > (logins, logouts, etc.) to a central log. To do that, I'd like the
> > webservers to send event messages to a broker. A logging machine should
> > periodically fetch, process, aggregate and write those events to a log.

For pure logging purposes, I would personally use syslog over amq, but
you can use amq as well.

> > 1) Building ActiveMQ with Maven takes forever. I cancelled it after ~2 hours
> > of running unit tests and grabbed myself the binary.
> I doubt there is any good reason to roll your own for a java-application
> any way?

Yes, there is no need to build it ... just grab the newest snapshot

> > 2) ActiveMQ seems to block when there's no message in a queue. I was using
> > the Stomp PHP API (which doesn't handle this gracefully) and the REST
> > interface (which seems ignore the timeout GET param). Isn't there an easy
> > way for polling a queue?
> You could adjust the code to create a non blocking stream and use
> stream_select and such, rather than plain old fgets/fread. The
> Stomp-class is quite trivial to read and adjust (you only need to adjust
> the readFrame-method).

This is on my todo list ( and I
hope I will have it soon. Of course, any contribution is more than

> > 3) Although I can see pending messages in a queue in the web console, the
> > REST / Stomp APIs block when trying to fetch them. Any ideas here?
> I'm not sure what you mean by 'block' ?
> > 4) Why aren't messages automatically deleted from the queue, when I fetch
> > them (subscribe in Stomp, GET in REST)?
> The php-stomp implementation defaults to client-acknowledgement when you
> subscribe. So you have to explicitly ack(nowledge) your message's (the
> id you need is in the headers of the received frame) and/or you could
> adjust the code Stomp-class to not set the acknowledgement to client.
> You only need to remove a single line for that in subscribe().

You can easily modify this behavior with the headers, for example

$conn->subscribe("/queue/test", array("ack"=>"auto"));

I'll make this configurable on the class level and document it.

Dejan Bosanac

View raw message