javax.jms.InvalidDestinationException: Cannot use a Temporary destination that has been deleted
at org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:158)
at org.apache.activemq.ActiveMQQueueReceiver.<init>(ActiveMQQueueReceiver.java:73)
at org.apache.activemq.ActiveMQSession.createReceiver(ActiveMQSession.java:1192)
at org.apache.activemq.ActiveMQSession.createReceiver(ActiveMQSession.java:1166)
at org.apache.activemq.ActiveMQQueueSession.createReceiver(ActiveMQQueueSession.java:214)
at org.mule.transport.jms.Jms102bSupport.createConsumer(Jms102bSupport.java:137)
at org.mule.transport.jms.Jms11Support.createConsumer(Jms11Support.java:75)
at org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:201)
at org.mule.transport.jms.JmsMessageDispatcher.doSend(JmsMessageDispatcher.java:331)
at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:157)
at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1889)
at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:76)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:324)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:210)
at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:121)
at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:102)
at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:65)
at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:44)
at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:70)
at org.mule.routing.inbound.ForwardingConsumer.process(ForwardingConsumer.java:51)
at org.mule.routing.inbound.DefaultInboundRouterCollection.route(DefaultInboundRouterCollection.java:89)
at org.mule.transport.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:604)
at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:346)
at org.mule.transport.AbstractReceiverWorker$1.doInTransaction(AbstractReceiverWorker.java:114)
at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:112)
at org.mule.transport.AbstractReceiverWorker.doRun(AbstractReceiverWorker.java:131)
at org.mule.transport.AbstractReceiverWorker.run(AbstractReceiverWorker.java:62)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at org.mule.work.SyncWorkExecutor.doExecute(SyncWorkExecutor.java:41)
at org.mule.work.MuleWorkManager.executeWork(MuleWorkManager.java:269)
at org.mule.work.MuleWorkManager.doWork(MuleWorkManager.java:157)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.onMessage(MultiConsumerJmsMessageReceiver.java:264)
at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:840)
at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:96)
at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:165)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)
at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:595)
javax.jms.InvalidDestinationException: Cannot use a Temporary destination that has been deleted
at org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:158)
at org.apache.activemq.ActiveMQQueueReceiver.<init>(ActiveMQQueueReceiver.java:73)
at org.apache.activemq.ActiveMQSession.createReceiver(ActiveMQSession.java:1192)
at org.apache.activemq.ActiveMQSession.createReceiver(ActiveMQSession.java:1166)
at org.apache.activemq.ActiveMQQueueSession.createReceiver(ActiveMQQueueSession.java:214)
at org.mule.transport.jms.Jms102bSupport.createConsumer(Jms102bSupport.java:137)
at org.mule.transport.jms.Jms11Support.createConsumer(Jms11Support.java:75)
at org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:201)
at org.mule.transport.jms.JmsMessageDispatcher.doSend(JmsMessageDispatcher.java:331)
at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:157)
at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1889)
at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:76)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:324)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:210)
at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:121)
at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:102)
at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:65)
at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:44)
at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:70)
at org.mule.routing.inbound.ForwardingConsumer.process(ForwardingConsumer.java:51)
at org.mule.routing.inbound.DefaultInboundRouterCollection.route(DefaultInboundRouterCollection.java:89)
at org.mule.transport.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:604)
at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:346)
at org.mule.transport.AbstractReceiverWorker$1.doInTransaction(AbstractReceiverWorker.java:114)
at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:112)
at org.mule.transport.AbstractReceiverWorker.doRun(AbstractReceiverWorker.java:131)
at org.mule.transport.AbstractReceiverWorker.run(AbstractReceiverWorker.java:62)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at org.mule.work.SyncWorkExecutor.doExecute(SyncWorkExecutor.java:41)
at org.mule.work.MuleWorkManager.executeWork(MuleWorkManager.java:269)
at org.mule.work.MuleWorkManager.doWork(MuleWorkManager.java:157)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.onMessage(MultiConsumerJmsMessageReceiver.java:264)
at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:840)
at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:96)
at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:165)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)
at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:595)
If a small number of requests are sent (1-5), warnings are logged:
INFO 2008-04-29 22:14:23,875 [jmsConnector.dispatcher.2] org.mule.transport.jms.activemq.ActiveMQJmsConnector: Faled to delete a temporary queue {0} Reason: Destination still has an active subscription: temp-queue://ID:elijah-55963-1209518054340-2:0:1
However, if a large number of requests are sent (>5), instead of warnings, these become big ugly stack traces.starting with "javax.jms.InvalidDestinationException: Cannot use a Temporary destination that has been deleted"
After this, any further request will produce a "java.lang.IllegalStateException: This MuleWorkManager 'jmsConnector.dispatcher' is stopped"
This occurs for both variants of the LB ESB example (EJB endpoint + EJB component).
Description
If a small number of requests are sent (1-5), warnings are logged:
INFO 2008-04-29 22:14:23,875 [jmsConnector.dispatcher.2] org.mule.transport.jms.activemq.ActiveMQJmsConnector: Faled to delete a temporary queue {0} Reason: Destination still has an active subscription: temp-queue://ID:elijah-55963-1209518054340-2:0:1
However, if a large number of requests are sent (>5), instead of warnings, these become big ugly stack traces.starting with "javax.jms.InvalidDestinationException: Cannot use a Temporary destination that has been deleted"
After this, any further request will produce a "java.lang.IllegalStateException: This MuleWorkManager 'jmsConnector.dispatcher' is stopped"
This occurs for both variants of the LB ESB example (EJB endpoint + EJB component).
Travis Carlson - 29/Apr/08 10:07 PM r11663
Logging the exception as a warning gets rid of the ugly stack trace and the example seems to work ok regardless.
Can we create another issue to look into this further.. it doesn't sound very healthy... maybe there is an issue already out there that we can link up, i'm not sure..
Daniel Feist - 29/Apr/08 10:10 PM Can we create another issue to look into this further.. it doesn't sound very healthy... maybe there is an issue already out there that we can link up, i'm not sure..
Logging the exception as a warning gets rid of the ugly stack trace and the example seems to work ok regardless.