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 PROTECTED] Sent: 17. juli 2008 17:41 To: [email protected] 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 <[EMAIL PROTECTED]> 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 PROTECTED] > Sent: 17. juli 2008 17:04 > To: [email protected] > 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 <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] >> Sent: 17. juli 2008 10:30 >> To: [email protected] >> 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:[EMAIL PROTECTED] >> Sent: 17. juli 2008 10:25 >> To: [email protected] >> 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:[EMAIL PROTECTED] >> Sent: 17. juli 2008 10:14 >> To: [email protected] >> 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,[EMAIL >> PROTECTED],type=route,[EMAIL PROTECTED] >> 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 : [EMAIL PROTECTED] >> 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. >> >> >
