On Thu, 2012-08-02 at 10:09 +0200, Jamie wrote: > Greetings! > > I have ActiveMQ integrated in an embedded scenario whereby the Broker > and ActiveMQ configuration is created programmatically in Java. > > Since I am not intending to queue data over a network, for performance > reasons, I am using the URL "vm://appname" in place of localhost when > creating the broker. > > brokerService = new BrokerService();) > brokerService.addConnector("vm://"+brokerName); > > The queuing works perfectly, though I am having difficulty obtaining the > QueueViewMBean instance for the purposes of retrieving the current queue > size. > > JMXServiceURL url = new > JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1199/jmxrmi"); // > what value for this URL? > > It is unclear to me what URL must be used for the JMXServiceURL in the > scenario where vm://appname is used (i.e. equivalent of > "service:jmx:rmi:///jndi/rmi://localhost:1199/jmxrmi"). Alternatively, > perhaps there is another way to obtain the QueueViewMBean instance. I am > not planning on connecting to any remote vm's. I simply need to use the > QueueViewMBean in the same virtual machine as where the brokerService > object is created. > > Thanks in advance for your advice. > > Regards > > Jamie
If you search the unit tests code for QueueViewMBean you'll find several examples of how to get one, here's a snippet from one of the tests: private QueueViewMBean getProxyToQueueViewMBean() throws MalformedObjectNameException, NullPointerException, JMSException { final ObjectName queueViewMBeanName = new ObjectName("org.apache.activemq:Type=Queue,Destination=" + queue.getQueueName() + ",BrokerName=localhost"); final QueueViewMBean proxy = (QueueViewMBean) brokerService.getManagementContext().newProxyInstance( queueViewMBeanName, QueueViewMBean.class, true); return proxy; } -- Tim Bish Sr Software Engineer | FuseSource Corp tim.b...@fusesource.com | www.fusesource.com skype: tabish121 | twitter: @tabish121 blog: http://timbish.blogspot.com/