camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen" ...@silverbullet.dk>
Subject RE: How can avoid to have such error message "instanceAllreadyExistsException" ?
Date Fri, 18 Jul 2008 05:55:59 GMT
William

I have created:
https://issues.apache.org/activemq/browse/CAMEL-735

to track this issue in Camel 1.5.


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@gmail.com] 
Sent: 17. juli 2008 17:41
To: camel-user@activemq.apache.org
Subject: Re: How can avoid to have such error message "instanceAllreadyExistsException" ?

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@silverbullet.dk> 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@gmail.com]
> Sent: 17. juli 2008 17:04
> To: camel-user@activemq.apache.org
> 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@silverbullet.dk> 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@silverbullet.dk]
>> Sent: 17. juli 2008 10:30
>> To: camel-user@activemq.apache.org
>> 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@silverbullet.dk]
>> Sent: 17. juli 2008 10:25
>> To: camel-user@activemq.apache.org
>> 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@gmail.com]
>> Sent: 17. juli 2008 10:14
>> To: camel-user@activemq.apache.org
>> 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@xpectis.com
>> 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.
>>
>>
>

Mime
View raw message