blob: b5523c1b58314651c40601cdeb161ea0a87d5d16 [file] [log] [blame]
<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 &amp; 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>