camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William Tam" <email.w...@gmail.com>
Subject Re: How can avoid to have such error message "instanceAllreadyExistsException" ?
Date Fri, 18 Jul 2008 14:25:31 GMT
Thanks, Claus.

On Fri, Jul 18, 2008 at 1:55 AM, Claus Ibsen <ci@silverbullet.dk> wrote:
> 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