ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-47

JMS topic binding on new versions of ActiveMQ

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major 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.

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        Synchronization has been put into place on the internal collections as well as the lookUpTopic() method. Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - Synchronization has been put into place on the internal collections as well as the lookUpTopic() method. Marking this one as FIXED.
        Hide
        Deryk Sinotte added a comment -

        Assigning to Jack and targetting for P01.

        Show
        Deryk Sinotte added a comment - Assigning to Jack and targetting for P01.

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Deryk Sinotte
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: