Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.2.GA
-
Fix Version/s: 1.8.2.GA_P01
-
Component/s: Enterprise Push Server
-
Labels:None
-
Environment:ActiveMQ 5.3
Description
When testing our ICEpack sample application on Tomcat 6 with ActiveMQ 5.3 (I was also using Liferay but I don't think it was relevant to the basic issue), I had the following problem:
INFO: Starting the ICEfaces Enterprise Push Server...
Nov 27, 2009 6:44:40 PM com.icesoft.net.messaging.MessagePipeline publish
SEVERE:
com.icesoft.net.messaging.MessageServiceException: javax.naming.NamingException: Something already bound at icefacesPush
at com.icesoft.net.messaging.jms.JMSAdapter.publish(JMSAdapter.java:198)
at com.icesoft.net.messaging.MessagePipeline.publish(MessagePipeline.java:151)
at com.icesoft.net.messaging.MessagePipeline$PublishTask.run(MessagePipeline.java:189)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:102)
at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:215)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:613)
Caused by: javax.naming.NamingException: Something already bound at icefacesPush
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 com.icesoft.net.messaging.jms.JMSAdapter.lookUpTopic(JMSAdapter.java:514)
at com.icesoft.net.messaging.jms.JMSAdapter.publish(JMSAdapter.java:194)
... 9 more
Reverting back to ActiveMQ 5.1 allowed it to work as expected. It might be a threading issue when dynamically creating topics. From my quick search online, it may required us to synchronize our initial access to the topic so that it doesn't get automatically created and bound more than once.
INFO: Starting the ICEfaces Enterprise Push Server...
Nov 27, 2009 6:44:40 PM com.icesoft.net.messaging.MessagePipeline publish
SEVERE:
com.icesoft.net.messaging.MessageServiceException: javax.naming.NamingException: Something already bound at icefacesPush
at com.icesoft.net.messaging.jms.JMSAdapter.publish(JMSAdapter.java:198)
at com.icesoft.net.messaging.MessagePipeline.publish(MessagePipeline.java:151)
at com.icesoft.net.messaging.MessagePipeline$PublishTask.run(MessagePipeline.java:189)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:102)
at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:215)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:613)
Caused by: javax.naming.NamingException: Something already bound at icefacesPush
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 com.icesoft.net.messaging.jms.JMSAdapter.lookUpTopic(JMSAdapter.java:514)
at com.icesoft.net.messaging.jms.JMSAdapter.publish(JMSAdapter.java:194)
... 9 more
Reverting back to ActiveMQ 5.1 allowed it to work as expected. It might be a threading issue when dynamically creating topics. From my quick search online, it may required us to synchronize our initial access to the topic so that it doesn't get automatically created and bound more than once.
Assigning to Jack and targetting for P01.