You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Eric-AWL <er...@atosorigin.com> on 2009/01/30 16:57:19 UTC

NamingContext error in 5.2.0

Hi

On 5.2.0 release.

I create 10 threads, each using the same dynamicQueues/CATE-CHARGE-charge
queue

I fail with

javax.naming.NamingException: Something already bound at CATE-CHARGE-Charge
        at
org.apache.activemq.jndi.ReadOnlyContext.internalBind(ReadOnlyContext.java:150)
        at
org.apache.activemq.jndi.LazyCreateContext.lookup(LazyCreateContext.java:36)
        at
org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:258)
        at
org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:228)
        at javax.naming.InitialContext.lookup(InitialContext.java:351)
        at
atosbus.transport.jms.CJMSSenderChannel.<init>(CJMSSenderChannel.java:97)
        at
atosbus.transport.jms.CJMSTransport.createSenderChannel(CJMSTransport.java:216)
        at
atosbus.core.service.CSynchronousContext.sendRequestCMessage(CSynchronousContext.java:559)
        at
atosbus.mep.CMepUnsafeInOnly.cltSendCommand(CMepUnsafeInOnly.java:191)
        at
atosbus.core.service.CSynchronousContext.sendCommand(CSynchronousContext.java:806)
        at
atosbus.core.service.CSynchronousContext.sendCommand(CSynchronousContext.java:731)
        at chargebus.client.ClientThread.run(ClientThread.java:32)
        at java.lang.Thread.run(Thread.java:595)

I think I am in the case where  (in LazyCreateContext.lookup)
super.lookup(name) sent the NameNotFoundException, but, when internalBind
was called, the queue was just binded by an other thread.


-- 
View this message in context: http://www.nabble.com/NamingContext-error-in-5.2.0-tp21749936p21749936.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: NamingContext error in 5.2.0

Posted by Eric-AWL <er...@atosorigin.com>.
Yes, I will put this workaround.

Thank you.



James.Strachan wrote:
> 
> Looks like a concurrency bug we should work around. In the mean time -
> how about adding a synchronized block around looking up a queue in
> JNDI? You should only need to look it up once on start up and not need
> to look it up in each thread many times concurrently?
> 
> 2009/1/30 Eric-AWL <er...@atosorigin.com>:
>>
>> Hi
>>
>> On 5.2.0 release.
>>
>> I create 10 threads, each using the same dynamicQueues/CATE-CHARGE-charge
>> queue
>>
>> I fail with
>>
>> javax.naming.NamingException: Something already bound at
>> CATE-CHARGE-Charge
>>        at
>> org.apache.activemq.jndi.ReadOnlyContext.internalBind(ReadOnlyContext.java:150)
>>        at
>> org.apache.activemq.jndi.LazyCreateContext.lookup(LazyCreateContext.java:36)
>>        at
>> org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:258)
>>        at
>> org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:228)
>>        at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>        at
>> atosbus.transport.jms.CJMSSenderChannel.<init>(CJMSSenderChannel.java:97)
>>        at
>> atosbus.transport.jms.CJMSTransport.createSenderChannel(CJMSTransport.java:216)
>>        at
>> atosbus.core.service.CSynchronousContext.sendRequestCMessage(CSynchronousContext.java:559)
>>        at
>> atosbus.mep.CMepUnsafeInOnly.cltSendCommand(CMepUnsafeInOnly.java:191)
>>        at
>> atosbus.core.service.CSynchronousContext.sendCommand(CSynchronousContext.java:806)
>>        at
>> atosbus.core.service.CSynchronousContext.sendCommand(CSynchronousContext.java:731)
>>        at chargebus.client.ClientThread.run(ClientThread.java:32)
>>        at java.lang.Thread.run(Thread.java:595)
>>
>> I think I am in the case where  (in LazyCreateContext.lookup)
>> super.lookup(name) sent the NameNotFoundException, but, when internalBind
>> was called, the queue was just binded by an other thread.
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/NamingContext-error-in-5.2.0-tp21749936p21749936.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> James
> -------
> http://macstrac.blogspot.com/
> 
> Open Source Integration
> http://fusesource.com/
> 
> 

-- 
View this message in context: http://www.nabble.com/NamingContext-error-in-5.2.0-tp21749936p21750172.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: NamingContext error in 5.2.0

Posted by James Strachan <ja...@gmail.com>.
Looks like a concurrency bug we should work around. In the mean time -
how about adding a synchronized block around looking up a queue in
JNDI? You should only need to look it up once on start up and not need
to look it up in each thread many times concurrently?

2009/1/30 Eric-AWL <er...@atosorigin.com>:
>
> Hi
>
> On 5.2.0 release.
>
> I create 10 threads, each using the same dynamicQueues/CATE-CHARGE-charge
> queue
>
> I fail with
>
> javax.naming.NamingException: Something already bound at CATE-CHARGE-Charge
>        at
> org.apache.activemq.jndi.ReadOnlyContext.internalBind(ReadOnlyContext.java:150)
>        at
> org.apache.activemq.jndi.LazyCreateContext.lookup(LazyCreateContext.java:36)
>        at
> org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:258)
>        at
> org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:228)
>        at javax.naming.InitialContext.lookup(InitialContext.java:351)
>        at
> atosbus.transport.jms.CJMSSenderChannel.<init>(CJMSSenderChannel.java:97)
>        at
> atosbus.transport.jms.CJMSTransport.createSenderChannel(CJMSTransport.java:216)
>        at
> atosbus.core.service.CSynchronousContext.sendRequestCMessage(CSynchronousContext.java:559)
>        at
> atosbus.mep.CMepUnsafeInOnly.cltSendCommand(CMepUnsafeInOnly.java:191)
>        at
> atosbus.core.service.CSynchronousContext.sendCommand(CSynchronousContext.java:806)
>        at
> atosbus.core.service.CSynchronousContext.sendCommand(CSynchronousContext.java:731)
>        at chargebus.client.ClientThread.run(ClientThread.java:32)
>        at java.lang.Thread.run(Thread.java:595)
>
> I think I am in the case where  (in LazyCreateContext.lookup)
> super.lookup(name) sent the NameNotFoundException, but, when internalBind
> was called, the queue was just binded by an other thread.
>
>
> --
> View this message in context: http://www.nabble.com/NamingContext-error-in-5.2.0-tp21749936p21749936.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>



-- 
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://fusesource.com/