2 Replies Latest reply on Oct 20, 2004 6:16 AM by Yuriy Guskov

    ListenerServlet

    Yuriy Guskov Newbie

      I've implemented listener servlet and all works ok. But when JBoss is shut down I've got an exception:

      javax.jms.InvalidDestinationException: The subscription was registered with a destination that does not exist !
      at org.jboss.mq.server.ClientConsumer.removeSubscription(ClientConsumer.java:246)
      at org.jboss.mq.server.BasicQueue.stop(BasicQueue.java:640)
      at org.jboss.mq.server.JMSQueue.close(JMSQueue.java:152)
      at org.jboss.mq.server.JMSDestinationManager.closeDestination(JMSDestinationManager.java:806)
      at org.jboss.mq.server.jmx.DestinationMBeanSupport.stopService(DestinationMBeanSupport.java:138)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStop(ServiceMBeanSupport.java:319)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:223)

      Actually I've implemented the servlet so it becomes a queue receiver in init() method and in finally block of run() method of Runnable within a thread which is launched in the same init() I've dispose of all queue sessions, etc. If I'm wrong? Or maybe configuration wrong?

      So, I suggest maybe I need to initialize/unitialize each time within run() method. Is that correct?

        • 1. Re: ListenerServlet
          Adrian Brock Master

          This error message was fixed in 3.2.6

          It does show you have active listeners on a destination when you undeploy it.

          • 2. Re: ListenerServlet
            Yuriy Guskov Newbie

             

            "adrian@jboss.org" wrote:
            This error message was fixed in 3.2.6

            It does show you have active listeners on a destination when you undeploy it.


            What does it mean "fixed"? I tried 4.0.0 and the same happens.
            Maybe I'm wrong with my "architecture"?

            I do understand that the exception means that a thread in my servlet is still waiting for messages but a queue itself is already closed. And I afraid there are no ways to fix it from my application because actually I do close all listeners in finally of run() but it doesn't help much.