Hi Guys,
Can some help with an excpetion that has been bugging me for a day now. This is the first time i am working on JMS. I hope someone can help me out on this. I'll cut down the details and tell the actual scenario. I have an Input
Thread say <input>, it spawns another Thread say <output>. The thread <output> waits for a message on a temporary jms queue to complete itself. The thread <input> also sends a work message to a jms queue (not temporary) which is received by an MDB say <workbean>. The <workbean> spawns another thread say <work> which does some processing on the message. After processing the <work> thread sends an output message to the temporary output queue, the one that the thread <output> was waiting on. But i get an exception when the <work> thread tries to send the output message to the temporary output queue. Please find the stacktrace below. Also, the thread properties after the stacktrace.
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R javax.jms.InvalidDestinationException: CWSIA0062E: Failed to create a MessageProducer for
queue://_Q_81A0A4D1A57D3DEA0000000006DAC2C4?busName=MDBBus
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jms.impl.JmsMsgProducerImpl.<init>(JmsMsgProducerImpl.java:411)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jms.impl.JmsQueueSenderImpl.<init>(JmsQueueSenderImpl.java:60)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jms.impl.JmsQueueSessionImpl.instantiateProducer(JmsQueueSessionImpl.java:224)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jms.impl.JmsSessionImpl.createProducer(JmsSessionImpl.java:865)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jms.impl.JmsQueueSessionImpl.createSender(JmsQueueSessionImpl.java:147)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.bankofamerica.xad.xim.messaging.queues.MessageQueue.initSender(MessageQueue.java:387)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.bankofamerica.xad.xim.messaging.queues.MessageQueue.sendMessage(MessageQueue.java:399)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.bankofamerica.xad.xim.messaging.queues.OutputFileMessageQueue.sendOutputFileMessage(OutputFileMessageQueue.java:32)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.bankofamerica.blz.threads.workers.XYZWorkItemWorkerThreadImpl.processWorkItem(BlzWorkItemWorkerThreadImpl.java:210)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.bankofamerica.xad.xim.messaging.beans.WorkItemWorkerMDBBean.processMessage(WorkItemWorkerMDBBean.java:145)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.bankofamerica.xad.xim.messaging.beans.WorkItemWorkerMDBBean.onMessage(WorkItemWorkerMDBBean.java:79)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ejs.container.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1092)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:777)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at $Proxy22.onMessage(Unknown Source)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jmsra.impl.JmsJcaEndpointInvokerImpl.invokeEndpoint(JmsJcaEndpointInvokerImpl.java:233)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:887)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:527)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:399)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R Caused by: com.ibm.ws.sib.processor.exceptions.SIMPTemporaryDestinationNotFoundException: CWSIP0097E: The temporary destination with name _Q_81A0A4D1A57D3DEA0000000006DAC2C4 cannot be found.
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.processor.impl.DestinationManager.checkDestinationHandlerExists(DestinationManager.java:4327)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.processor.impl.DestinationManager.getDestination(DestinationManager.java:1092)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.processor.impl.ConnectionImpl.internalCreateProducerSession(ConnectionImpl.java:1076)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.processor.impl.ConnectionImpl.createProducerSession(ConnectionImpl.java:1011)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.processor.impl.ConnectionImpl.createProducerSession(ConnectionImpl.java:940)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R at com.ibm.ws.sib.api.jms.impl.JmsMsgProducerImpl.<init>(JmsMsgProducerImpl.java:369)
[6/12/11 16:56:43:549 CDT] 00000022 SystemErr R ... 18 more
Please find the thread properties as well below.
output.queue.jndi.name=TEMPORARY_QUEUE
output.queue.factory.jndi.name=jms/XYZQueueConnectionFactory
output.queue.read.timeout=10000
input.thread.pool.default.max.idle=2
input.thread.pool.default.max.active=2
input.thread.pool.default.min.evictable.idle.time.millis=30000
input.thread.pool.default.test.on.borrow=true
input.thread.pool.default.max.borrow.wait.millis=0
output.thread.pool.default.max.idle=2
output.thread.pool.default.max.active=2
output.thread.pool.default.min.evictable.idle.time.millis=30000
output.thread.pool.default.test.on.borrow=true
output.thread.pool.default.max.borrow.wait.millis=0
work.thread.pool.default.max.idle=2
work.thread.pool.default.max.active=2
work.thread.pool.default.min.evictable.idle.time.millis=30000
work.thread.pool.default.test.on.borrow=true
work.thread.pool.default.max.borrow.wait.millis=0
Thanks and Regards
Vijay