You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Jamie <ja...@stimulussoft.com> on 2012/08/02 10:09:36 UTC

JMXServiceURL for vm://

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

Re: JMXServiceURL for vm://

Posted by Raul Kripalani <ra...@fusesource.com>.
What version of AMQ are you testing against?

Have you tried attaching another consumer after running your test which
leaves 10 messages behind? If you have, those 10 messages stay put in the
broker?

Regards,

 *Raúl Kripalani*
*Principal Consultant | FuseSource Corp.
raul@fusesource.com | fusesource.com <http://www.fusesource.com/>
skype: raul.fuse | twitter: @raulvk <http://twitter.com/raulvk>,
@fusenews<http://twitter.com/fusenews>
*
blog: F3 - Flashes From the
Field<http://blog.raulkr.net/?utm_source=fusesourceemail&utm_medium=email&utm_campaign=fusesourcemail>
 | aboutme: http://about.me/raulkripalani

<http://twitter.com/fusenews>

On 2 August 2012 09:45, Jamie <ja...@stimulussoft.com> wrote:

> Thanks, Tim. It worked!
>
> How accurate is the queue size figure? I have a pool of consumers
> retrieving messages from the queue on a constant basis, although strangely
> getQueueSize() is showing 10 messages left on the queue when there should
> be none. Any ideas?
>
> Thanks
>
> Jamie
>
>
> On 2012/07/26 1:38 AM, Timothy Bish wrote:
>
>> >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
>>
>
>
> --
> MailArchiva - Email Archiving and Compliance
> Stimulus Software
> Tel: +1-713-343-8824 ext 100
> Fax: +1-(877)-350-2328
>
>

Re: JMXServiceURL for vm://

Posted by Jamie <ja...@stimulussoft.com>.
Thanks, Tim. It worked!

How accurate is the queue size figure? I have a pool of consumers 
retrieving messages from the queue on a constant basis, although 
strangely getQueueSize() is showing 10 messages left on the queue when 
there should be none. Any ideas?

Thanks

Jamie

On 2012/07/26 1:38 AM, Timothy Bish wrote:
>> >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


-- 
MailArchiva - Email Archiving and Compliance
Stimulus Software
Tel: +1-713-343-8824 ext 100
Fax: +1-(877)-350-2328


Re: JMXServiceURL for vm://

Posted by Timothy Bish <ta...@gmail.com>.
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.bish@fusesource.com | www.fusesource.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/