On 7/10/06, colincrist <[EMAIL PROTECTED]> wrote:


Hi,

I'm adding JMX support for ActiveMQ to Hermes to let you browse durable
subscription queues, get depths, discover queues/topics on the broker and
some other stuff.

I've a few questions/issues on the MBeans.

1. "browse" operation, type=Subscription

It returns a CompositeType[]

There is no way to convert this to a JMS message. Is there a helper class
anywhere as I need a JMS message interface to render from in Hermes?

I've just added to SVN trunk a browseMessages() method (or one that
takes a selector) to return a List of JMS Message objects.


It also returns an array of all the elements - there would be some delay for
large queues of pending durables subscriptions. Consider 10K elements.

How about a "browseHeaders" operation that just retured the headers?

Thats an option we could add. I wonder if there's a nicer way to offer
a 'cursor' style interface over JMX


I could
also imagine a "browseChangesSince" that included a timestamp and returned
me the messages added and removed from that subscription queue.

Could you use a selector I wonder to implement the timestamp range?


These coupled with a "browse" operation that used a selector means I could
lazily retrieve the message body based on the JMSMessageID in the header and
minimise the load all round.

Clearly there are timeing issues as the messages could have been consumed
since the browse but thats fine for a monitoring app.

Agreed.

Am just wondering about the 'headers' version of this option. Would it
include all possible headers (including user defined ones) - which
could be quite big too - and just miss off the actual bodies? So kinda
make empty JMS Message objects just excluding the body to represent
the 'headers'?


2. ObjectName for a durable type

The name is the connection clientId + "_" + the subscription name. Can I
rely on this being stable?

Yes. Given that the pair of those are unique we shouldn't have to
change that. Another option is to use the BrokerViewMBean to query the
names.

ObjectName[] getDurableTopicSubscribers()

--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to