######################################################################## # # # COMPONENT_NAME: MQSeries # # # # FILE: MEMOEFIX # # # # Program Number 5697-A17 # # (C) COPYRIGHT International Business Machines Corp. 1993, 1997 # # All Rights Reserved # # Licensed Material - Property of IBM # # # # US Government Users Restricted Rights - Use, duplication or # # disclosure restricted by GSA ADP Schedule Contract with IBM Corp. # # # ######################################################################## E-fix Memo for IBM MQSeries for Tandem NonStop Kernel V2.2 10/29/99 ------------------------------------------------------------------------ This MEMOEFIX file contains information you need for updating IBM MQSeries for Tandem NonStop Kernel with the E-fix for APAR IY05417. The E-fix is provided to correct a problem where the Queue Manager agents abend with a Run-time Error 004 Arithmetic fault in function xcsGetUniqueTag. The abend occurs when a short declared variable exceeds 32767. The variable is used to create a unique LUWID for channels or MSGID for MQPUT, MQPUT1 when MQMI_NONE is used in customer applications or internally in MQSeries for Event processing. The E-fix provided for IY05417 corrects the Arithmetic fault in the Queue Manager agents. The E-fix also contains corrections to the LQMA and MCAs done under APARs IX78837, IX79977, IX81219, IX82505 and IX86823. A summary of these APAR modifications follows, with details at the end of this memo: IX78837 - MQGET fails with shared queues in multiple CPUs IX79977 - Possible message duplication if no DLQ IX81219 - Correction of error code for MQGET with SET_SIGNAL option IX82505 - Possible deadlock on generation of COD reports IX86823 - Correction of memory leak in MQLQMAG process ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INSTALLATION AND MAINTENANCE INFORMATION ---------------------------------------- This E-fix MUST ONLY be installed on the latest service level of MQSeries, PTF U456615. There is no installation program for this E-fix - you must manually verify that the release you are installing over is at the correct level. A) Applying Maintenance ----------------------- This E-fix is supplied in an archive format. The UNPAK program must be used to extract the updated program. ** Precaution ************************************************** * * * Do not have queue managers running while you are applying * * or removing maintenance updates to MQSeries for Tandem * * NonStop Kernel. * * * * It is NOT necessary to delete any Queue Managers that were * * created prior to the installation of this E-fix. * * * **************************************************************** Backup your original MQSeries for Tandem NonStop Kernel executables that are being replaced. Ensure that all Queue Managers have been ended. 1. Logon as the user in the MQM group that owns the MQSeries installation that you are updating. 2. Download the pak file to subvolume ZMQSEFIX. The correct filesize is 9,209,116 bytes You can obtain UNPAK from the World Wide Web. The URL is http://www.bsi.com/DOWNLOAD-FREE.HTML 3. Extract the updated programs from the archive file as follows: UNPAK IY05417, $*.*.*, MAP NAMES $*.*.* TO $.ZMQSEFIX.*, & LISTALL, MYID 4. Replace the programs in ZMQSEXE (or other location if you are not using the default) with the updated versions from ZMQSEFIX. Ensure that the new files are secured with exactly the same attributes as before. Use the FUP utility to resecure them, if necessary. When properly installed, the programs should have the file attributes "NCCC", PROGID and owned by a user in the MQM user group. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ To verify that your currently installed release is at the correct level, run the Tandem utility VPROC on the MQLQMAG executable for MQSeries, normally found in the ZMQSEXE subvolume. The output should be as follows or later if other e-fixes are applied: $VOL.ZMQSEXE.MQLQMAG Binder timestamp: 03APR98 22:53:15 Version procedure: T0085D30_24OCT1997_CSLIB_2202 Version procedure: T0085D30_24OCT1997_IPCLIB_2203 Version procedure: T0085D30_24OCT1997_LQMEXE_2203 Version procedure: T0085D30_24OCT1997_LQMLIB_2203 Version procedure: T0085D30_24OCT1997_ZSLIB_2202 Target CPU: TNS, TNS/R AXCEL timestamp: 04APR98 01:43:45 After installation, the VPROC information for the program should be updated to: $VOL.ZMQSEXE.MQLQMAG Binder timestamp: 28OCT1999 13:23:30 Version procedure: T0085D30_24OCT1997_CSLIB_2203 Version procedure: T0085D30_24OCT1997_IPCLIB_2203 Version procedure: T0085D30_24OCT1997_LQMEXE_2203 Version procedure: T0085D30_24OCT1997_LQMLIB_2207 Version procedure: T0085D30_24OCT1997_ZSLIB_2202 Target CPU: TNS, TNS/R AXCEL timestamp: 29OCT1999 10:16:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Included E-fix details ---------------------- E-fix IX78837: A FFST with probe AD106001 is generated by the MQLQMAG executable, and the MQGET call fails with MQRC of 2195, and subsequently the Queue Manager connection is broken. The problem has only been seen in multiple CPU Queue Managers where 2 or more agents are running in different CPUs sharing the same queue for input. There is no loss/corruption/duplication of data and re-establishing the connection and retrying the GET works fine. The code at the bottom of the MQGET operation contained a window shown up by the different timing associated with processes running in multiple CPUs sharing the same queue. E-fix IX79977 is provided to correct a problem where if no dead letter queue is defined for a queue manager, messages can be duplicated when problems are experienced delivering messages over a channel. This situation occurred when a local queue reached its maximum depth and an attempt was made to put the remaining messages in the batch to the DLQ. There was no DLQ defined for the Queue Manager, so the messages should have all been backed out and the batch rejected in total. However, MQSeries committed the messages that had been delivered successfully onto the local queue and then reported that the batch was rejected to the sender. This lead to duplication of the messages that had been delivered because the sender resends the entire batch when the channel is re-started. The IX79977 fix provided ensures that the entire batch is backed out when an error condition is encountered that will cause the partner to re-send the message batch. The IX81219 E-fix is provided to correct a problem where if an MQGET with signal notification IPC message (MQGMO_SET_SIGNAL) was attempted multiple times the processing of the request was not correct. MQSeries tried to set the signal request more then once producing an FFST and returning a reason code of 2070 (MQRC_SIGNAL_REQUEST_ACCEPTED). The E-fix provided for IX81219 will set the signal notification request only once and return a reason code of 2069 (MQRC_SIGNAL_OUTSTANDING) for subsequent attempts of MQGET with signal notification. E-fix IX82505 is provided to correct a problem where the Queue Manager can "deadlock" on the generation of Confirm on Delivery (COD) reports when the resolution of the ReplyToQ for the report involves the Queue Manager's default transmission queue. The deadlock occurs when multiple MQGET calls are in progress and the ReplyToQ is the same for the messages that are being retrieved - and resolves to the Queue Manager's default transmission queue. The deadlock is caused by the MQOPEN branch of the creation of a COD locking records in the Object Catalog file in a different order to the MQCLOSE branch. A "fup listlocks" on the Object Catalog shows the deadlocked records - the Queue Manager record itself, and the default transmission queue. The E-fix provided for IX82505 removes the lock on the Queue Manager record in both the MQOPEN and MQCLOSE branches of the report generation. E-fix IX86823 is provided to correct a problem where if a Pathway MQMC Monitor Queue, RUNMQSC DISPLAY QUEUE(*) CURDEPTH or equivalent PCF management command via the Command Server are attempted repeatedly with the OAM enabled, the Local Queue Manager Agents (LQMA) memory and cpu utilization increases with each query. The E-fix IX86823 will correct memory leak and memory fragmentation problems attributing to the increased memory and cpu utilization. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++