| <div class="wiki-content maincontent"> |
| <p>This page describes the JMX management requirements.</p> |
| |
| <h2 id="JMXSupport-RequiredMBeans">Required MBeans</h2> |
| |
| <h3 id="JMXSupport-BrokerMBeans">Broker MBeans</h3> |
| |
| <p>We need MBeans for the core Broker types in the activemq.broker package to allow folks to see a broker's configuration, its connectors, currently connected clients & disconnect clients etc.</p> |
| |
| <p>e.g. MBeans for </p> |
| |
| <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>MBean</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Broker/BrokerContainer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The Message Broker itself</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>BrokerConnector</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The inbound connector listening to new client connections</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>BrokerClient</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A specific client connection</p></td></tr></tbody></table></div> |
| |
| |
| <p>We have an old BrokerAdmin interface we should replace with proper MBeans ASAP.</p> |
| |
| <p>In addition, we need to get access to the MessageContainer instances inside the Broker. These are a container per destination and QoS (e.g. 1 for Durable queue Foo and one for non-durable queue Foo).</p> |
| |
| <p>So we'll need some way of viewing and looking up of thesse MC MBeans as they are created dynamically as users start using different destionations.</p> |
| |
| <h3 id="JMXSupport-Statistics">Statistics</h3> |
| |
| <p>We implement J2EE Management Stats which add stats to each JMS resource; Connection, Session, Consumer, Producer (and we've added support to Destination too). So we need to expose those somehow in JMX so users can watch/view stats for JMS clients</p> |
| |
| <h2 id="JMXSupport-Usecases">Use cases</h2> |
| |
| <p>Here's a list of end user use cases we need to support easily...</p> |
| |
| <ul><li>browsing the throughputs of connections/sessions/producers/consumers at the client side</li><li>browsing the throughputs of brokers on a per broker/destination/client basis</li><li>looking at the status of queues/topics (outstanding messages) to check for things filling up</li><li>emptying queues</li><li>replaying messsages from the dead letter queues</li><li>deleting messages on a queue/topic using a message ID</li><li>disconnecting clients on a broker; stopping a broker connection (to stop new inbound connections etc)</li><li>stopping brokers</li></ul> |
| |
| |
| <p>The following are more nice to haves, but would be nice</p> |
| <ul><li>viewing contents of queues/topics</li><li>starting/stopping remote brokers</li></ul> |
| |
| |
| <h2 id="JMXSupport-Issues">Issues</h2> |
| |
| <ul><li>do we need/want an MBean per JMS Connection/Session/Producer/Consumer? Am not sure why other than a way to grab stats; if so maybe some kinda stats MBean instead?</li></ul> |
| |
| </div> |
| |