PQ85598: MQ queue not closed | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
APAR status Closed as program error. Error description This testcase deploy2 2 .process (FDML) services (Test.process and Test2.process) each implementing part of the same interface (Syn2), execute() and execute2() respectively. It is deployed using JMS inbound binding. A proxy is create to invoke the MDB on the server, which in turn is deployed as a SOAP service. A client (in then "client" project) then invoke the SOAP service. Alternatively, it can also be tested using the universal client. The test runs correctly. Just noticed that in the console there is an JMSException:Local fix Problem summary **************************************************************** * USERS AFFECTED: This problem affects customers who use the * * MQ for Java Developers (MQJD) * * functionality provided with WebSphere * * Application Server Version 5.x and * * WebSphere Studio Application Developer * * Version 5.x * **************************************************************** * PROBLEM DESCRIPTION: When an application that is using the * * MQ for Java Developers (MQJD) * * functionality calls the close() method * * on an instance of the MQQueue class, * * the following exception occurs: * * * * javax.jms.JMSException: MQJMS2000: * * failed to close MQ queue * * at com.ibm.mq.jms.services. * * ConfigEnvironment.newException * * (ConfigEnvironment.java:540) * * at com.ibm.mq.jms.MQQueueSender. * * close(MQQueueSender.java:490) * * at com.ibm.ejs.jms. * * JMSMessageProducerHandle.close * * (JMSMessageProducerHandle.java:508) * * at com.ibm.ejs.jms.JMSSessionHandle. * * closeChildren * * (JMSSessionHandle.java:1150) * * at com.ibm.ejs.jms.JMSSessionHandle. * * close(JMSSessionHandle.java:736) * * at com.ibm.ejs.jms.JMSConnectionHandle. * * close(JMSConnectionHandle.java:373) * **************************************************************** * RECOMMENDATION: * **************************************************************** The problem occurs if there are two or more applications using the same temporary dynamic queue. When the applications shut down and close their connections to the MQJD queue, a check is made to see if the temporary queue should be deleted. If the first application to shut down is the owner of the queue, it will successfully delete it. However, when the second application comes along, it will also attempt to delete the queue. As the queue has already been deleted, this fails and the exception reported in the APAR is thrown.Problem conclusion To fix this problem, the QueueHandle's close() method has been changed so that we do not attempt to delete the queue if it has already been deleted.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros
Publications Referenced
|
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > General
Operating system(s):
Software version: 10W
Software edition:
Reference #: PQ85598
IBM Group: Software Group
Modified date: Apr 1, 2004
(C) Copyright IBM Corporation 2000, 2008. All Rights Reserved.