How can avoid to have such error message "instanceAllreadyExistsException" ?

View: New views
11 Messages — Rating Filter:   Alert me  

How can avoid to have such error message "instanceAllreadyExistsException" ?

by cmoulliard :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I have created different routes hosted in two different packages.

Package : com.myApplication.routing.in
Class : RouteA
Class : RouteB
...

Package : com.myApplication.routing.out
Class : RouteC

In the RouteB and RouteC, we have a common endpoint which is "activemq:queue:myqueue".

During the launch of Camel, I have the following error :

        <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
                <package>com.myapplication.routing.in</package>
                <package>com.myapplication.routing.out</package>
        </camelContext>

43javax.management.InstanceAlreadyExistsException: org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown Source)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown Source)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown Source)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)

How to solve this ?

Regards,

Charles  Moulliard
Enterprise Architect

Xpectis
12, route d'Esch
L-1470 Luxembourg

Phone +352 25 10 70 470
Mobile +352 621 45 36 22

e-mail : cmoulliard@xpectis.com
web site : www.xpectis.com
My Blog : http://cmoulliard.blogspot.com/ 

RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

by Claus Ibsen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi

It's not an ERROR it's a WARN. Camel will work fine.

As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.

Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.

Let me take a look.


Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: cmoulliard [mailto:cmoulliard@...]
Sent: 17. juli 2008 10:14
To: camel-user@...
Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?


Hi,

I have created different routes hosted in two different packages.

Package : com.myApplication.routing.in
Class : RouteA
Class : RouteB
...

Package : com.myApplication.routing.out
Class : RouteC

In the RouteB and RouteC, we have a common endpoint which is
"activemq:queue:myqueue".

During the launch of Camel, I have the following error :

        <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
                <package>com.myapplication.routing.in</package>
                <package>com.myapplication.routing.out</package>
        </camelContext>

43javax.management.InstanceAlreadyExistsException:
org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
Source)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)

How to solve this ?

Regards,

Charles  Moulliard


-----
Enterprise Architect

Xpectis
12, route d'Esch
L-1470 Luxembourg

Phone +352 25 10 70 470
Mobile +352 621 45 36 22

e-mail : cmoulliard@...
web site : www.xpectis.com
--
View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
Sent from the Camel - Users mailing list archive at Nabble.com.


RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

by Claus Ibsen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi

Sorry my bad it used to be a WARN I think, but I can see it's thrown.
I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.

Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: Claus Ibsen [mailto:ci@...]
Sent: 17. juli 2008 10:25
To: camel-user@...
Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

Hi

It's not an ERROR it's a WARN. Camel will work fine.

As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.

Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.

Let me take a look.


Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: cmoulliard [mailto:cmoulliard@...]
Sent: 17. juli 2008 10:14
To: camel-user@...
Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?


Hi,

I have created different routes hosted in two different packages.

Package : com.myApplication.routing.in
Class : RouteA
Class : RouteB
...

Package : com.myApplication.routing.out
Class : RouteC

In the RouteB and RouteC, we have a common endpoint which is
"activemq:queue:myqueue".

During the launch of Camel, I have the following error :

        <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
                <package>com.myapplication.routing.in</package>
                <package>com.myapplication.routing.out</package>
        </camelContext>

43javax.management.InstanceAlreadyExistsException:
org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
Source)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)

How to solve this ?

Regards,

Charles  Moulliard


-----
Enterprise Architect

Xpectis
12, route d'Esch
L-1470 Luxembourg

Phone +352 25 10 70 470
Mobile +352 621 45 36 22

e-mail : cmoulliard@...
web site : www.xpectis.com
--
View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
Sent from the Camel - Users mailing list archive at Nabble.com.


RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

by Claus Ibsen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Charles

I have committed a fix. Could you test it?

Would take 2-3 hours before the CI server has pushed a new 1.4-SNAPSHOT build today.

The bug is reported at CAMEL-732
https://issues.apache.org/activemq/browse/CAMEL-732



Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk
-----Original Message-----
From: Claus Ibsen [mailto:ci@...]
Sent: 17. juli 2008 10:30
To: camel-user@...
Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

Hi

Sorry my bad it used to be a WARN I think, but I can see it's thrown.
I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.

Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: Claus Ibsen [mailto:ci@...]
Sent: 17. juli 2008 10:25
To: camel-user@...
Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

Hi

It's not an ERROR it's a WARN. Camel will work fine.

As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.

Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.

Let me take a look.


Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: cmoulliard [mailto:cmoulliard@...]
Sent: 17. juli 2008 10:14
To: camel-user@...
Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?


Hi,

I have created different routes hosted in two different packages.

Package : com.myApplication.routing.in
Class : RouteA
Class : RouteB
...

Package : com.myApplication.routing.out
Class : RouteC

In the RouteB and RouteC, we have a common endpoint which is
"activemq:queue:myqueue".

During the launch of Camel, I have the following error :

        <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
                <package>com.myapplication.routing.in</package>
                <package>com.myapplication.routing.out</package>
        </camelContext>

43javax.management.InstanceAlreadyExistsException:
org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
Source)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
Source)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)

How to solve this ?

Regards,

Charles  Moulliard


-----
Enterprise Architect

Xpectis
12, route d'Esch
L-1470 Luxembourg

Phone +352 25 10 70 470
Mobile +352 621 45 36 22

e-mail : cmoulliard@...
web site : www.xpectis.com
--
View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: How can avoid to have such error message "instanceAllreadyExistsException" ?

by William Tam :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Claus and Charles,

1) Claus, you were right when you said it was a warning.  The stack
does show where it was logged but here is where it happened.  The
InstrumentationLifecycleStrategy.onRoutes.Add() method caught the
exception (InstanceAlreadyExistsException is a type of JMException)
thrown by DefaultInstrumentation.registerMBeanWithServer() and log a
warning message.

        for (Route route : routes) {
            try {
                 ...
                agent.register(mr, getNamingStrategy().getObjectName(mr));
            } catch (JMException e) {
                LOG.warn("Could not register Route MBean", e);
            }
        }

2) Charles, looking at the message, it failed to register a route that
has a duplicated objectname.  I am wondering if you have two routes
within a CamelContext that have an identiical "from" endpoint uri?
(The naming strategy for managed route is in part based on the from
endpoint.)  If so, I wonder  if it could create a race condition
between the two route (i.e. both routes listen/poll from the same
destination).

3) As the result of the exception, only one of the two routes is
registered with the MBean server.   If having a common from endpoint
within a CamelContext is valid, we should support managing multiple
routes that has the same "from" endpoint.  So, we need to fix the
naming strategy.

4) I'd like to point out that testing for existing objectname in
DefaultInstrumentionaAgent is probably not reliable running in
WebSphere as as our (intended) objectname will be different than the
actual name used in registration.

5) I am not sure I would degrade it to debug level as it (has
helped)/helps us to discover real issues (earilier).

On Thu, Jul 17, 2008 at 5:49 AM, Claus Ibsen <ci@...> wrote:

> Hi Charles
>
> I have committed a fix. Could you test it?
>
> Would take 2-3 hours before the CI server has pushed a new 1.4-SNAPSHOT build today.
>
> The bug is reported at CAMEL-732
> https://issues.apache.org/activemq/browse/CAMEL-732
>
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
> -----Original Message-----
> From: Claus Ibsen [mailto:ci@...]
> Sent: 17. juli 2008 10:30
> To: camel-user@...
> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
> Hi
>
> Sorry my bad it used to be a WARN I think, but I can see it's thrown.
> I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: Claus Ibsen [mailto:ci@...]
> Sent: 17. juli 2008 10:25
> To: camel-user@...
> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
> Hi
>
> It's not an ERROR it's a WARN. Camel will work fine.
>
> As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.
>
> Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.
>
> Let me take a look.
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: cmoulliard [mailto:cmoulliard@...]
> Sent: 17. juli 2008 10:14
> To: camel-user@...
> Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
>
> Hi,
>
> I have created different routes hosted in two different packages.
>
> Package : com.myApplication.routing.in
> Class : RouteA
> Class : RouteB
> ...
>
> Package : com.myApplication.routing.out
> Class : RouteC
>
> In the RouteB and RouteC, we have a common endpoint which is
> "activemq:queue:myqueue".
>
> During the launch of Camel, I have the following error :
>
>        <camelContext id="camel"
> xmlns="http://activemq.apache.org/camel/schema/spring">
>                <package>com.myapplication.routing.in</package>
>                <package>com.myapplication.routing.out</package>
>        </camelContext>
>
> 43javax.management.InstanceAlreadyExistsException:
> org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
>        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
>        at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
> Source)
>        at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
> Source)
>        at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
> Source)
>        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)
>
> How to solve this ?
>
> Regards,
>
> Charles  Moulliard
>
>
> -----
> Enterprise Architect
>
> Xpectis
> 12, route d'Esch
> L-1470 Luxembourg
>
> Phone +352 25 10 70 470
> Mobile +352 621 45 36 22
>
> e-mail : cmoulliard@...
> web site : www.xpectis.com
> --
> View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>

Re: How can avoid to have such error message "instanceAllreadyExistsException" ?

by William Tam :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

And don't forget it is easy to shutdown warning level message in log4j.  :-)

On Thu, Jul 17, 2008 at 11:04 AM, William Tam <email.wtam@...> wrote:

> Hi Claus and Charles,
>
> 1) Claus, you were right when you said it was a warning.  The stack
> does show where it was logged but here is where it happened.  The
> InstrumentationLifecycleStrategy.onRoutes.Add() method caught the
> exception (InstanceAlreadyExistsException is a type of JMException)
> thrown by DefaultInstrumentation.registerMBeanWithServer() and log a
> warning message.
>
>        for (Route route : routes) {
>            try {
>                 ...
>                agent.register(mr, getNamingStrategy().getObjectName(mr));
>            } catch (JMException e) {
>                LOG.warn("Could not register Route MBean", e);
>            }
>        }
>
> 2) Charles, looking at the message, it failed to register a route that
> has a duplicated objectname.  I am wondering if you have two routes
> within a CamelContext that have an identiical "from" endpoint uri?
> (The naming strategy for managed route is in part based on the from
> endpoint.)  If so, I wonder  if it could create a race condition
> between the two route (i.e. both routes listen/poll from the same
> destination).
>
> 3) As the result of the exception, only one of the two routes is
> registered with the MBean server.   If having a common from endpoint
> within a CamelContext is valid, we should support managing multiple
> routes that has the same "from" endpoint.  So, we need to fix the
> naming strategy.
>
> 4) I'd like to point out that testing for existing objectname in
> DefaultInstrumentionaAgent is probably not reliable running in
> WebSphere as as our (intended) objectname will be different than the
> actual name used in registration.
>
> 5) I am not sure I would degrade it to debug level as it (has
> helped)/helps us to discover real issues (earilier).
>
> On Thu, Jul 17, 2008 at 5:49 AM, Claus Ibsen <ci@...> wrote:
>> Hi Charles
>>
>> I have committed a fix. Could you test it?
>>
>> Would take 2-3 hours before the CI server has pushed a new 1.4-SNAPSHOT build today.
>>
>> The bug is reported at CAMEL-732
>> https://issues.apache.org/activemq/browse/CAMEL-732
>>
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>> -----Original Message-----
>> From: Claus Ibsen [mailto:ci@...]
>> Sent: 17. juli 2008 10:30
>> To: camel-user@...
>> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>> Hi
>>
>> Sorry my bad it used to be a WARN I think, but I can see it's thrown.
>> I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: Claus Ibsen [mailto:ci@...]
>> Sent: 17. juli 2008 10:25
>> To: camel-user@...
>> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>> Hi
>>
>> It's not an ERROR it's a WARN. Camel will work fine.
>>
>> As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.
>>
>> Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.
>>
>> Let me take a look.
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: cmoulliard [mailto:cmoulliard@...]
>> Sent: 17. juli 2008 10:14
>> To: camel-user@...
>> Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>>
>> Hi,
>>
>> I have created different routes hosted in two different packages.
>>
>> Package : com.myApplication.routing.in
>> Class : RouteA
>> Class : RouteB
>> ...
>>
>> Package : com.myApplication.routing.out
>> Class : RouteC
>>
>> In the RouteB and RouteC, we have a common endpoint which is
>> "activemq:queue:myqueue".
>>
>> During the launch of Camel, I have the following error :
>>
>>        <camelContext id="camel"
>> xmlns="http://activemq.apache.org/camel/schema/spring">
>>                <package>com.myapplication.routing.in</package>
>>                <package>com.myapplication.routing.out</package>
>>        </camelContext>
>>
>> 43javax.management.InstanceAlreadyExistsException:
>> org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
>>        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
>>        at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
>> Source)
>>        at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
>> Source)
>>        at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
>> Source)
>>        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)
>>
>> How to solve this ?
>>
>> Regards,
>>
>> Charles  Moulliard
>>
>>
>> -----
>> Enterprise Architect
>>
>> Xpectis
>> 12, route d'Esch
>> L-1470 Luxembourg
>>
>> Phone +352 25 10 70 470
>> Mobile +352 621 45 36 22
>>
>> e-mail : cmoulliard@...
>> web site : www.xpectis.com
>> --
>> View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>

RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

by Claus Ibsen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi William

Let's revisit the strategies for naming mbeans in Camel 1.5, considering there are shared endpoints in routes that should only be registered once and then we have individual processors etc in route paths.

The current behavior is to check if the mbean is already registered with the Boolean method for this. I think that is the best solution than catch InstanceAlreadyRegisteredExceptions.

But again we should get 1.4 out of the door, and then there is good time to improve the JMX agent even further.


Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: William Tam [mailto:email.wtam@...]
Sent: 17. juli 2008 17:04
To: camel-user@...
Subject: Re: How can avoid to have such error message "instanceAllreadyExistsException" ?

Hi Claus and Charles,

1) Claus, you were right when you said it was a warning.  The stack
does show where it was logged but here is where it happened.  The
InstrumentationLifecycleStrategy.onRoutes.Add() method caught the
exception (InstanceAlreadyExistsException is a type of JMException)
thrown by DefaultInstrumentation.registerMBeanWithServer() and log a
warning message.

        for (Route route : routes) {
            try {
                 ...
                agent.register(mr, getNamingStrategy().getObjectName(mr));
            } catch (JMException e) {
                LOG.warn("Could not register Route MBean", e);
            }
        }

2) Charles, looking at the message, it failed to register a route that
has a duplicated objectname.  I am wondering if you have two routes
within a CamelContext that have an identiical "from" endpoint uri?
(The naming strategy for managed route is in part based on the from
endpoint.)  If so, I wonder  if it could create a race condition
between the two route (i.e. both routes listen/poll from the same
destination).

3) As the result of the exception, only one of the two routes is
registered with the MBean server.   If having a common from endpoint
within a CamelContext is valid, we should support managing multiple
routes that has the same "from" endpoint.  So, we need to fix the
naming strategy.

4) I'd like to point out that testing for existing objectname in
DefaultInstrumentionaAgent is probably not reliable running in
WebSphere as as our (intended) objectname will be different than the
actual name used in registration.

5) I am not sure I would degrade it to debug level as it (has
helped)/helps us to discover real issues (earilier).

On Thu, Jul 17, 2008 at 5:49 AM, Claus Ibsen <ci@...> wrote:

> Hi Charles
>
> I have committed a fix. Could you test it?
>
> Would take 2-3 hours before the CI server has pushed a new 1.4-SNAPSHOT build today.
>
> The bug is reported at CAMEL-732
> https://issues.apache.org/activemq/browse/CAMEL-732
>
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
> -----Original Message-----
> From: Claus Ibsen [mailto:ci@...]
> Sent: 17. juli 2008 10:30
> To: camel-user@...
> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
> Hi
>
> Sorry my bad it used to be a WARN I think, but I can see it's thrown.
> I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: Claus Ibsen [mailto:ci@...]
> Sent: 17. juli 2008 10:25
> To: camel-user@...
> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
> Hi
>
> It's not an ERROR it's a WARN. Camel will work fine.
>
> As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.
>
> Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.
>
> Let me take a look.
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: cmoulliard [mailto:cmoulliard@...]
> Sent: 17. juli 2008 10:14
> To: camel-user@...
> Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
>
> Hi,
>
> I have created different routes hosted in two different packages.
>
> Package : com.myApplication.routing.in
> Class : RouteA
> Class : RouteB
> ...
>
> Package : com.myApplication.routing.out
> Class : RouteC
>
> In the RouteB and RouteC, we have a common endpoint which is
> "activemq:queue:myqueue".
>
> During the launch of Camel, I have the following error :
>
>        <camelContext id="camel"
> xmlns="http://activemq.apache.org/camel/schema/spring">
>                <package>com.myapplication.routing.in</package>
>                <package>com.myapplication.routing.out</package>
>        </camelContext>
>
> 43javax.management.InstanceAlreadyExistsException:
> org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
>        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
>        at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
> Source)
>        at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
> Source)
>        at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
> Source)
>        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)
>
> How to solve this ?
>
> Regards,
>
> Charles  Moulliard
>
>
> -----
> Enterprise Architect
>
> Xpectis
> 12, route d'Esch
> L-1470 Luxembourg
>
> Phone +352 25 10 70 470
> Mobile +352 621 45 36 22
>
> e-mail : cmoulliard@...
> web site : www.xpectis.com
> --
> View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>

RE: How can avoid to have such error message "instanceAllreadyExistsException" ?

by Claus Ibsen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi

Yes I agree we could raise it back to WARN, however in some situations it wasn't a WARN as it's the same endpoint. We'll check it up in Camel 1.5.

But where we messed up with was that we also printed the stacktrace then people always think it's a SEVERE error. We shouldn't have done that.

So now, no stacktraces and the mbeans are there and people are happy.



Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: William Tam [mailto:email.wtam@...]
Sent: 17. juli 2008 17:13
To: camel-user@...
Subject: Re: How can avoid to have such error message "instanceAllreadyExistsException" ?

And don't forget it is easy to shutdown warning level message in log4j.  :-)

On Thu, Jul 17, 2008 at 11:04 AM, William Tam <email.wtam@...> wrote:

> Hi Claus and Charles,
>
> 1) Claus, you were right when you said it was a warning.  The stack
> does show where it was logged but here is where it happened.  The
> InstrumentationLifecycleStrategy.onRoutes.Add() method caught the
> exception (InstanceAlreadyExistsException is a type of JMException)
> thrown by DefaultInstrumentation.registerMBeanWithServer() and log a
> warning message.
>
>        for (Route route : routes) {
>            try {
>                 ...
>                agent.register(mr, getNamingStrategy().getObjectName(mr));
>            } catch (JMException e) {
>                LOG.warn("Could not register Route MBean", e);
>            }
>        }
>
> 2) Charles, looking at the message, it failed to register a route that
> has a duplicated objectname.  I am wondering if you have two routes
> within a CamelContext that have an identiical "from" endpoint uri?
> (The naming strategy for managed route is in part based on the from
> endpoint.)  If so, I wonder  if it could create a race condition
> between the two route (i.e. both routes listen/poll from the same
> destination).
>
> 3) As the result of the exception, only one of the two routes is
> registered with the MBean server.   If having a common from endpoint
> within a CamelContext is valid, we should support managing multiple
> routes that has the same "from" endpoint.  So, we need to fix the
> naming strategy.
>
> 4) I'd like to point out that testing for existing objectname in
> DefaultInstrumentionaAgent is probably not reliable running in
> WebSphere as as our (intended) objectname will be different than the
> actual name used in registration.
>
> 5) I am not sure I would degrade it to debug level as it (has
> helped)/helps us to discover real issues (earilier).
>
> On Thu, Jul 17, 2008 at 5:49 AM, Claus Ibsen <ci@...> wrote:
>> Hi Charles
>>
>> I have committed a fix. Could you test it?
>>
>> Would take 2-3 hours before the CI server has pushed a new 1.4-SNAPSHOT build today.
>>
>> The bug is reported at CAMEL-732
>> https://issues.apache.org/activemq/browse/CAMEL-732
>>
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>> -----Original Message-----
>> From: Claus Ibsen [mailto:ci@...]
>> Sent: 17. juli 2008 10:30
>> To: camel-user@...
>> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>> Hi
>>
>> Sorry my bad it used to be a WARN I think, but I can see it's thrown.
>> I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: Claus Ibsen [mailto:ci@...]
>> Sent: 17. juli 2008 10:25
>> To: camel-user@...
>> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>> Hi
>>
>> It's not an ERROR it's a WARN. Camel will work fine.
>>
>> As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.
>>
>> Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.
>>
>> Let me take a look.
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: cmoulliard [mailto:cmoulliard@...]
>> Sent: 17. juli 2008 10:14
>> To: camel-user@...
>> Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>>
>> Hi,
>>
>> I have created different routes hosted in two different packages.
>>
>> Package : com.myApplication.routing.in
>> Class : RouteA
>> Class : RouteB
>> ...
>>
>> Package : com.myApplication.routing.out
>> Class : RouteC
>>
>> In the RouteB and RouteC, we have a common endpoint which is
>> "activemq:queue:myqueue".
>>
>> During the launch of Camel, I have the following error :
>>
>>        <camelContext id="camel"
>> xmlns="http://activemq.apache.org/camel/schema/spring">
>>                <package>com.myapplication.routing.in</package>
>>                <package>com.myapplication.routing.out</package>
>>        </camelContext>
>>
>> 43javax.management.InstanceAlreadyExistsException:
>> org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
>>        at com.sun.jmx.mbeanserver.RepositorySupport.addMBean(Unknown Source)
>>        at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(Unknown
>> Source)
>>        at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Unknown
>> Source)
>>        at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Unknown
>> Source)
>>        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(Unknown Source)
>>
>> How to solve this ?
>>
>> Regards,
>>
>> Charles  Moulliard
>>
>>
>> -----
>> Enterprise Architect
>>
>> Xpectis
>> 12, route d'Esch
>> L-1470 Luxembourg
>>
>> Phone +352 25 10 70 470
>> Mobile +352 621 45 36 22
>>
>> e-mail : cmoulliard@...
>> web site : www.xpectis.com
>> --
>> View this message in context: http://www.nabble.com/How-can-avoid-to-have-such-error-message-%22instanceAllreadyExistsException%22---tp18503700s22882p18503700.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>

Re: How can avoid to have such error message "instanceAllreadyExistsException" ?

by William Tam :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I agree it is something for 1.5.

Just wanna make sure we are on the same page.  The issue isn't about
shared endpoint in a route but it is about shared *from* endpoint of
multiple routes.   We know shared endpoint such as
from("a").to.("b").to("b") works.  Or, if you have two routes like
this, it also works.

from("a").to("b");
from("c").to("b");

The issue is if we have two routes in a context that shared the same
"from" endpoint uri like:

from("a").to("b");
from("a").to("c");

Does it even make sense to have something that?  I don't know.

> The current behavior is to check if the mbean is already registered with the Boolean method for this. I think that is the best solution than catch InstanceAlreadyRegisteredExceptions.
I would agree except that I'm afraid it may not work in Websphere.
The downside is users get inconsistent debug/feeback in different
container environment.  Normally, we should NOT be throwing this type
of exceptions at all.

Cheers,
William


On Thu, Jul 17, 2008 at 11:16 AM, Claus Ibsen <ci@...> wrote:

> Hi William
>
> Let's revisit the strategies for naming mbeans in Camel 1.5, considering there are shared endpoints in routes that should only be registered once and then we have individual processors etc in route paths.
>
> The current behavior is to check if the mbean is already registered with the Boolean method for this. I think that is the best solution than catch InstanceAlreadyRegisteredExceptions.
>
> But again we should get 1.4 out of the door, and then there is good time to improve the JMX agent even further.
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: William Tam [mailto:email.wtam@...]
> Sent: 17. juli 2008 17:04
> To: camel-user@...
> Subject: Re: How can avoid to have such error message "instanceAllreadyExistsException" ?
>
> Hi Claus and Charles,
>
> 1) Claus, you were right when you said it was a warning.  The stack
> does show where it was logged but here is where it happened.  The
> InstrumentationLifecycleStrategy.onRoutes.Add() method caught the
> exception (InstanceAlreadyExistsException is a type of JMException)
> thrown by DefaultInstrumentation.registerMBeanWithServer() and log a
> warning message.
>
>        for (Route route : routes) {
>            try {
>                 ...
>                agent.register(mr, getNamingStrategy().getObjectName(mr));
>            } catch (JMException e) {
>                LOG.warn("Could not register Route MBean", e);
>            }
>        }
>
> 2) Charles, looking at the message, it failed to register a route that
> has a duplicated objectname.  I am wondering if you have two routes
> within a CamelContext that have an identiical "from" endpoint uri?
> (The naming strategy for managed route is in part based on the from
> endpoint.)  If so, I wonder  if it could create a race condition
> between the two route (i.e. both routes listen/poll from the same
> destination).
>
> 3) As the result of the exception, only one of the two routes is
> registered with the MBean server.   If having a common from endpoint
> within a CamelContext is valid, we should support managing multiple
> routes that has the same "from" endpoint.  So, we need to fix the
> naming strategy.
>
> 4) I'd like to point out that testing for existing objectname in
> DefaultInstrumentionaAgent is probably not reliable running in
> WebSphere as as our (intended) objectname will be different than the
> actual name used in registration.
>
> 5) I am not sure I would degrade it to debug level as it (has
> helped)/helps us to discover real issues (earilier).
>
> On Thu, Jul 17, 2008 at 5:49 AM, Claus Ibsen <ci@...> wrote:
>> Hi Charles
>>
>> I have committed a fix. Could you test it?
>>
>> Would take 2-3 hours before the CI server has pushed a new 1.4-SNAPSHOT build today.
>>
>> The bug is reported at CAMEL-732
>> https://issues.apache.org/activemq/browse/CAMEL-732
>>
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>> -----Original Message-----
>> From: Claus Ibsen [mailto:ci@...]
>> Sent: 17. juli 2008 10:30
>> To: camel-user@...
>> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>> Hi
>>
>> Sorry my bad it used to be a WARN I think, but I can see it's thrown.
>> I will relax it to a DEBUG message with a hint that this is okay and Camel will continue.
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: Claus Ibsen [mailto:ci@...]
>> Sent: 17. juli 2008 10:25
>> To: camel-user@...
>> Subject: RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>> Hi
>>
>> It's not an ERROR it's a WARN. Camel will work fine.
>>
>> As it's the same JMS queue we can not create 3 different mbeans for it in the JMX tree. We had an issue before where each of them will get their own instance number 0, 1, 2 etc. But as you write it's the same endpoint.
>>
>> Maybe the WARN logging is to aggressive and should just be DEBUG and without the stacktrace - it's of no use.
>>
>> Let me take a look.
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: cmoulliard [mailto:cmoulliard@...]
>> Sent: 17. juli 2008 10:14
>> To: camel-user@...
>> Subject: How can avoid to have such error message "instanceAllreadyExistsException" ?
>>
>>
>> Hi,
>>
>> I have created different routes hosted in two different packages.
>>
>> Package : com.myApplication.routing.in
>> Class : RouteA
>> Class : RouteB
>> ...
>>
>> Package : com.myApplication.routing.out
>> Class : RouteC
>>
>> In the RouteB and RouteC, we have a common endpoint which is
>> "activemq:queue:myqueue".
>>
>> During the launch of Camel, I have the following error :
>>
>>        <camelContext id="camel"
>> xmlns="http://activemq.apache.org/camel/schema/spring">
>>                <package>com.myapplication.routing.in</package>
>>                <package>com.myapplication.routing.out</package>
>>        </camelContext>
>>
>> 43javax.management.InstanceAlreadyExistsException:
>> org.apache.camel:context=dell-charles/camel,route=[activemq]queue%3amyqueue@785467725,type=route,name=[activemq]queue%3amyqueue@785467725
>>     &nb