MQSeries for Sun Solaris, Intel Platform Edition V5.1 CSD History ================================================================= CSD01 - No PTF available CSD02 - No PTF available CSD03 - No PTF available CSD04 - No PTF available CSD05 - No PTF available CSD06 - No PTF available CSD07 - No PTF available CSD08 - PTF U473265 (superseded) CSD09 - PTF U478911 (latest available PTF) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CSD Details =========== A) PTF U478911 ----------- This is the second CSD for IBM MQSeries for Sun Solaris, Intel Platform Edition Version 5.1 from IBM. It is delivered via PTF U478911 for APAR IY21329. This PTF is distributed for all National Language versions using the same CD-ROM as the PTF for the English version. Number of APARs in PTF = 40. It contains fixes for all the problems listed below: IC31041 - Cumulative maintenance #06 (CSD09) for MQSeries for OS/2 V5.1 IC31043 - Cumulative maintenance #09 (CSD09) for MQSeries for Windows NT V5.1 IY21317 - Cumulative maintenance #07 (CSD09) for MQSeries for AIX V5.1 IY21319 - Cumulative maintenance #06 (CSD09) for MQSeries for HP-UX V5.1 (HP-UX Version 10) IY21325 - Cumulative maintenance #06 (CSD09) for MQSeries for HP-UX V5.1 (HP-UX Version 11) IY21328 - Cumulative maintenance #07 (CSD09) for MQSeries for Sun Solaris V5.1 IY21329 - Cumulative maintenance #02 (CSD09) for MQSeries for Sun Solaris, Intel Platform Edition V5.1 IC26214 - A performance problem occurs when executing on a Windows NT V4.0 Server with the CICS Transaction Server. It takes noticeably longer to execute a command when compared with running the same command on a Windows NT V4.0 Workstation. IC27211 - When tracing was started from the command line, the amqmsrvn process leaked memory. This memory leak would continue until the trace was stopped. IC29358 - Error message AMQ9203 occurred when attempting to connect a Client to a Server via LU6.2 services on MQSeries for Windows NT and Windows 2000 V5.2. This worked when using a Client definition table, but it did not work when using the MQSERVER Environment Variable. IC29721 - Typing a path into any path field in the MMC Snap-in (eg. the application id of a process definition) resulted in corrupted characters when viewed with runmqsc. IC29805 - RUNMQDLQ failed with error message AMQ8721 when processing a version 2 MD. IC29847 - MQSeries Client trace did not contain all entries that it should contain, making trace analysis difficult. IC30250 - MQSeries for Windows NT V5.2 failed to authenticate a Windows NT user through a firewall. IC30908 - When running under a UNIX operating system on little-endian machines, MQSeries may have handled eight-character usernames incorrectly. As a result, extra characters were appended to the end of the username, which caused MQSeries to return erroneous 2035 (MQRC_NOT_AUTHORIZED) errors. IC31323 - When CRTMQM gets executed, the wrong return code resulted if MQCONN was called. The return code has been changed from MQRC_CONNECTION_NOT_AUTHORIZED to MQRC_Q_MGR_NOT_AVAILABLE. IC31431 - If a user ran the dspmqaut command against a userid that did not exist, MQSeries for Compaq Tru64 UNIX V5.1 checked for the id but did not return an expected return code. It then went into a CPU loop and the user had to ctrl c out of the loop. IC31755 - Manual cluster sender channels disappeared following restart of queue manager. IC32260 - Net stop from the command line failed to wait for the NT service to terminate. IC33691 - On MQSeries for Compaq Tru64 UNIX V5.1, the queue manager agent threads and logger threads were locking on a spinlock. This resulted in a dead lock situation. An FDC was produced which specified a semaphore busy condition. IC34063 - Although the original installation of MQSeries for OS/2 V5.1 created a file SYSLEVEL.AMQ which showed the current service level of the product as U200000, after installing a service CSD (eg. CSD08), the file SYSLEVEL.AMQ showed the service level as XX_XX_I instead of the current PTF number (eg. U200141). IY13629 - MQSeries transactions running under CICS may be loaded and unloaded. On AIX, this reloading of MQSeries caused MQSeries for AIX V5.1 toleak a modest amount of memory and a pthread key on each iteration. Once all pthread keys had been exhausted, the MQSeries libraries went into deadlock in MQCONN when the function 'xppInitialize' recursed. IY14518 - Performance events were using MQCA_Q_NAME instead of MQCA_BASE_Q_NAME. IY16483 - If an MQSeries queue manager on a unix system occupied its own filesystems (eg. if "/var/mqm/qmgrs/QMGR" or "/var/mqm/log/QMGR" was a filesystem), the command dltmqm would not remove those filesystems. However, it would remove the "lost+found" entry from the root of those filesystems, which could inhibit relinking of orphaned inodes in the filesystem if it was reused. MQSeries should leave the "lost+found" entry alone. IY18500 - When MQSeries reached the Unix file descriptor soft limit, it could fail to open an error log or FDC file to report the problem. This resulted in a serious and silent failure by MQSeries. IY18567 - The MQSeries runmqlsr process may have ended abruptly when it reached the system imposed limit on file descriptors (ulimit -n) on UNIX systems. This situation could occur when a single listener must support a large number of socket connections, since each socket is essentially a file descriptor. Because it was not possible to open the error log, FDC file, or trace file, the effect was that the listener simply terminated abruptly and silently. MQSeries has been modified to ensure that an FFST and syslog entry gets written in the event that MQSeries runs out of socket file descriptors. IY20510 - If you used "runmqlsr" for the TCP/IP listener instead of inetd, and the queue manager was shut down while the number of processes exceeded 1000, the "runmqlsr" stayed active and if you used "endmqlsr" to stop the listener, you received a message to the effect that it could not find any running listeners for the specified queue manager. IY20763 - An FDC with probe id XC006001 from component xcsFreeMem occurred for a private memory error in process amqrrmfa. IY21665 - MQSeries running out of shared memory extents caused unpredictable results. IY21795 - When an amqcrsta process failed due to a bind error message AMQ9213 (Communications error for bind), several FDCs were produced with probe id RM070000 from component cccJobMonitor. IY22185 - Very intermittent hangs or abnormal terminations of the queue manager have occurred. There were several different probe ids that have shown up in the FDC files accompanying the failures: a) Probe id AT023000 from component atmAcquireDataMutex, with major error code xecF_E_UNEXPECTED_RC and minor error code xecL_E_INVALID_HANDLE. b) Probe id AT039001 from component atxPerformCommit. c) Probe id AT038003 from component atxCommit. IY22333 - MQSeries hung during process initialization while attempting to report an FFST, because the FFST generation was waiting for a lock it would never get. Another symptom of this problem was an FDC with probe id XC307070. IY22429 - An FDC with probe ids XC010002 or XC009009 with minor error code XECL_NOT_OWNER occurred in components xcsDisconnectSharedMem and xcsConnectSharedMem. IY23148 - After applying CSD06 to MQSeries for AIX V5.1, MAXMSGL no longer used the queue manager default value if MAXMSGL was coded as zero in the channel definition when sending messages from MVS/ESA to AIX. When an attempt was made to send a message on the sender channel from MVS to AIX, the message did not transmit and instead it ended up on the Dead Letter Queue (DLQ) with return code 2218 (message too long for channel). IY24268 - MQSeries hung and FDCs with probe ids XC333025 from component xlsPostEvent (a spurious sempahore post) and XC332070 from component xlsWaitEvent occurred. The shared memory connect and disconnect routines did not ignore a semaphore owner died condition when requesting a mutex and this resulted in mutexs being unexpectedly locked which caused MQSeries to hang. IY25080 - The MQSeries internal function kqiCloseIt may have failed with a segmentation fault (SIGSEGV) if it received an authorisation failure when closing a queue. The resulting FDC would have had a probe id of XC130003 from xehExceptionHandler, but the function stack would show componnet kqiCloseIt at the top of the stack. IY25639 - The C++ sample programs could be compiled on MQSeries for HP-UX, but the compiled programs failed to execute properly. IY25746 - The trigger monitor failed to start with a queue name that had a length of 48 characters. IY25795 - Under certain circumstances MQSeries could hang in component rfxWaitCollection on or soon after startup due to a problem with the amqrrmfa repository manager process. This problem may have occurred on both partial and full cluster repositories. IY31498 - An FDC with probe id XC130004 from component xehException Handler occurred for a SIGSEGV exception in process amqrrmfa. 47968 - FDC with probeid XY179001 from component xcsRequestThreadMutexSem when running crtmqm or dltmqm. 49655 - FDC with probeid ZL000028 from component zlaMain in the agent. 52551 - The MMC Explorer incorrectly displayed the "Last Message Time (GMT)" for messages passed across a channel when a daylight saving adjustment was applied. 54400 - Memory leak occurred in componet zsqDeletePCD. 55449 - Error message AMQ4082 (Unexpected MQSeries error) with return code 4008 occurred when creating a namelist with more than two names on AS/400 using MQ Explorer. 57459 - Insuffient number of client connections were allowed on MQSeries for Compaq Tru64 UNIX V5.1. 59354 - Unnecessary qdepth log records were written by the recovery process. 59462 - Poor performance may have occurred occasionally while processing queues with very large queue depths. 61698 - After executing a PCF Stop Channel with force mode, followed by a runmqsc command to display the channel status, the system hung indefinitely. B) PTF U473265 ----------- This is the first CSD for IBM MQSeries for Sun Solaris, Intel Platform Edition Version 5.1 from IBM. It is delivered via PTF U473265 for APAR IY13542. This PTF is distributed for all National Language versions using the same CD-ROM as the PTF for the English version. Number of APARs in PTF = 177. It contains fixes for all the problems listed below: IC29413 - Cumulative maintenance #05 (CSD08) for MQSeries for OS/2 V5.1 IC29414 - Cumulative maintenance #08 (CSD08) for MQSeries for Windows NT V5.1 IY16005 - Cumulative maintenance #06 (CSD08) for MQSeries for AIX V5.1 IY16017 - Cumulative maintenance #05 (CSD08) for MQSeries for HP-UX V5.1 (HP-UX Version 10) IY16020 - Cumulative maintenance #05 (CSD08) for MQSeries for HP-UX V5.1 (HP-UX Version 11) IY16018 - Cumulative maintenance #06 (CSD08) for MQSeries for Sun Solaris V5.1 IY13542 - Cumulative maintenance #01 (CSD08) for MQSeries for Sun Solaris, Intel Platform Edition V5.1 IC19477 - EXEC CICS SYNCPOINT causes an access violation in a CICS MQSeries transaction. IC20274 - The backup and recovery facilities of MQSeries on Windows NT did not work correctly when following an RCRMQOBJ command with an RCDMQIMG command. The RCDMQIMG command generated an FDC. The problem was caused because RCRMQOBJ does not organize the queue file in the way that is expected by RCDMQIMG. However, if the recreated queue was accessed (by an application) then the queue file was reorganized again and RCDMQIMG worked correctly again. IC20277 - The queue manager failed after producing some FDCs. The first FDC contained probe id AD027000 and referred to RC32 from CreateFile (ERROR_SHARING_VIOLATION). This error caused a second FDC with probe id ZX005000, because the error with CreateFile had ended the process. The problem was caused because the queue file had been opened by another application and the queue manager did not expect this situation. The queue manager will now retry a number of times to open the file before returning with an error. IC22041 - User applications compiled with the Microsoft Visual C++ compiler that do new/delete on Imq objects could have caused problems if the application and MQSeries bindings were using different C runtime environments. This could have been caused by using different versions of the compiler, compiling the application as debug, using the Microsoft Foundation Class (MFC) or statically linking the C-runtime. The problem could have manifested itself as a user breakpoint when debugging the application and operator delete, of the imq object, was called. IC22270 - A slow memory leak occurred when using the MQSeries for Windows V3.1 client with 16-bit SQL applications that perform MQCONN and MQDISC calls to MQSeries. IC23434 - A CSD update copied the *.TBL files into the FILEPATH directory, when the original base *.TBL files were installed in the WORKPATH directory. IC24279 - Applications which used security, receive, and send exits in the Java client were subject to a number of problems: 1. Send and receive exits were called during the security flow exchange. 2. During the security flow exchange the flag, that signifies a server response is required, was not reset on receipt of said flow, resulting in abnormal termination 3. Send and Receive exits are called before they are initialised IC24567 - When an attempt to PUT a message to a clustered queue was made from a Queue Manager outside the cluster the PUT failed and the message went to the deadletter queue. The resultant error could have been either that the remote queue manager was unknown or that an object was invalid. IC24571 - The MQSeries MMC Snap-In may have produced a stream of errors every minute or two, including error messages AMQ6184 and AMQ6118 and an FDC showing a probe of MS098000 with Arith1 of 2080 (0x820). These errors had no noticeable effect on the queue manager, but they did fill up the error logs and the ..\errors subdirectory while the queue manager was running. IC24670 - A display of qalias showed cluster field information as blank, even though the qalias was defined with cluster information. IC24709 - Running MQSeries for Windows NT V5.0 and using PCF Commands, and if an error was returned for a queue, it used to be the case that the inquire queue call would end at that point. A change was made so that the code would continue on to the next queue and process it. However, when this was done, no consideration was given to the case where this was the last message. At this point, it would go back around the loop, find that there were no more queues, and as a result, the function would end normally and it would appear that there was no problem. IC24783 - MQSeries for Windows NT V5.1 would not run on a Finnish machine because of the machine's base translation of "BUILTIN" exceeded the Microsoft defined maximum length. This occurred when MQSeries for Windows NT V5.1 queried the domain information for the group "Administrators". IC24805 - Add Unicode to Kanji mapping for Microsoft encodings in addition to IBM. IC25162 - Channel exits were not working on channel callback when the channel definition was being used to store values across exit invocation. IC25358 - MQSeries V5.1 did not support MQSeries Three Tier message types. IC25495 - When other messages were waiting to be processed, the number of puts and gets to a queue (MsgEnqCount and MsgDeqCount) were not always updated properly. This meant that the queue statistics were incorrect. IC25535 - FDCs with probe id AD024000 were generated from adiCheckLocation when MQSeries V5.1 was installed in a non-default directory and MUSR_MQADMIN does not have access to this directory. IC25745 - When a conversion exit was used to send a message, the channel failed with error message AMQ9510 if the message contained DBCS/SBCS mixed data. This problem did not occur if the message only included SBCS data. IC25797 - When using the MQSeries Explorer GUI to perform remote admin, for example, and specifying the use of a security exit, the MQSeries Explorer did NOT call the exit. The security information was not being copied when the CLNTCONN was auto defined. IC25860 - If an MQPUT or MQGET request resulted in the generation of a queue service interval event message, and the queue specified on the request was an alias queue then the event data field, QName, contained the name of the alias queue, and not the queue name to which the specified name resolved. IC25861 - A standalone MQSeries for Windows NT V5.1 server sent a Windows NT operating system call LookupAccountName to the PDC (Primary Domain Controller) for every MQCONN call in order to get the SID of the local mqm group. This was not necessary if MQSNOAUT=NO was specified. IC25897 - When a message with an expiry time was sent to a remote system and the message expired while it was still on the transmit queue, a report message was built but an error occurred with MQSeries reason code 2249 (MQRC_MSG_FLAGS_ERROR) when an attempt was made to put the report message to the reply_to_queue. It then failed with the same reason code when an attempt was made to put it on the dead letter queue. IC25930 - An attempt to change the default user account to another user account failed with the following message if either an invalid user account name or a valid user account name with an embedded '-' was specified: System process-Application error The instruction at "0x771f 643d5 referenced memory at "0x00000030". The memory could not be read". Click on OK to terminate the application. IC25958 - If a queue manager was stopped, AMQMSRVN continued to poll the state of its services. This caused a memory leak observed by the number of process handles and page file bytes increasing over time. IC26131 - MAXACTIVECHANNELS and MAXCHANNELS were not being used on restart of the Queue Manager. When a queue manager was restarted, its channels were not restored to their active status prior to the shutdown unless a default queue manager was present on the system. IC26145 - Error message AMQ6091 was received from INQUIRE CHANNEL(*) when using the MQSeries Explorer to send PCF commands to the command server to get a list of all the channels which were defined on the system. IC26149 - The MQSeries Explorer GUI did not always refresh its display properly when the "Refresh" button was clicked. Instead, it continued to display old data. IC26222 - A locking problem occurred around the tracing functions with the MQSeries Automation Classes for ActiveX interface when there were more than 40 threads in an ActiveX process. IC26259 - When information was added for the LU6.2 entry under queue manager properties in the Registry, an APPCLU entry was added to the registry entries for the queue manager. When the information in the LU6.2 entry was removed, the APPCLU key would be reset to a default value rather than being removed. This could prevent LU6.2 channels from starting. IC26339 - It was not possible to create or stop a queue manager through the Explorer GUI when the machine name was longer than 14 characters. IC26417 - When the "like" parameter was used in runmqsc to create another queue, the new queue ended up with the BIND parameter set to "open," even though the original queue on which the new queue was based had the BIND parameter set to "not fixed". IC26566 - When trying to start a sender channel on MQSeries for Windows NT V5.1, an FDC with probe id XY176001 was received from component xcsLoadFunction with return code xecU_S_LOAD_FAILED and error message AMQ6175. The system could not dynamically load the library MQS_EXIT. The system return code was 13372000. The queue manager would continue without this module. In the MQ error log the return code was 14682720. IC26573 - There was a problem in the repository subscription code leading to error messages such as CSQX037E and CSQX038E when trying to put or get messages to and from the SYSTEM.CLUSTER.COMMAND.QUEUE. IC26626 - A security error (RC2063) which pointed to an authority file in /mqseries/qmgrs/qmname/auth/queues/qname occurred when the backup file already existed. IC26657 - MQSeries for Windows NT V5.1 created a default channel initiator to run against the SYSTEM.CHANNEL.INITQ for new queue managers (and for upgraded queue managers which did not have one). This is necessary to support clustering properly. However, when users deleted or modified this channel initiator, for example to use a different initiation queue, MQSeries would continue to recreate the default channel initiator even though it was not wanted. IC26662 - After a silent CSD installation there are two processes that start automatically, amqmsrvn.exe and amqmtbrn.exe. Since these were running it was not possible to load any additional efixes that might be required without some manual intervention. This was due to locked files. A silent install or even a normal install specifying "-nongui" does not start MQSeries because this directs the install not to register any of the GUI components and so does not launch them on completion. The CSD installation did not include the same option. A command line option on the CSD install to stop amqmtbrn.exe from being launched on Windows NT has now been provided. IC26733 - When using MQSeries clustering, an error AMQ6119 (internal MQSeries error) occurred when starting the queue manager. An FDC was produced with a probe id of XC130031 from component rrmMakePCF. This only occurred when a clussdr channel was started and the clusrcvr had been defined with the same name but with a different cluster name, and then only if the clusrcvr had actually been deleted previously. IC26747 - An MQSeries for Windows NT client had an intermittant problem where Visual Basic was receiving a return code 2059 and error message AMQ9209. There were several FDCs created with probe id XC022002 from component xcsDisplayMessageForSubpool and error message AMQ6118. IC26796 - Installation of AMQMSRVN failed, when the Windows NT workstation service was stopped or did not exist. The failure occurred because in this case the call to NetWkstaUserGetInfo or NetWkstaGetInfo returns an error which was not being checked. The symptom of this problem was that, during installation of MQSeries for Windows NT V5.1, this message appears: AMQMSRVN.EXE Application Error The statement in 0x000119290 refers to memory in 0x00000008. The process "read" could not be issued to the memory. IC26797 - If an application failed to issue an MQDISC and relied upon MQSeries to clear everything up, then the agent process leaked some storage for every connection that was made by the application. If enough connections were made, then an FDC with probe XY159015 from function xstAddConnProcessToList occurred when a new connection was attempted later, and then the queue manager terminated. IC26863 - The Queue Manager name was not being set in the MQCD before calling the Channel Auto Defined Exit on a Cluster Channel. IC26879 - MQSeries for Windows NT V5.1 CSDs did not provide a silent uninstall tool to enable CSDs to be removed without prompts popping up to which a reply must be made. IC26940 - The MQSeries Client for Windows 95 V5.1 did not generate any error logs on the client machine if a remote (channel) error occurred. IC27089 - When using the Java bindings, on an MQPUT, the correl id was not copied back into the Java MQMD on successful completion. IC27149 - The SYSTEM.CLUSTER.REPOSITORY.QUEUE became out of sync with the cluster because the repository queue manager failed to refresh its cluster information. IC27228 - If a blank channel name was mistakenly specified on a client connection, then this could have resulted in a channel being auto defined with no name which could not then be deleted but could be displayed via DISPLAY CHANNEL(*) in RUNMQSC. IC27229 - System error 1067 occurred when stopping the IBM MQSeries service on Windows NT while the queue manager was running. IC27299 - This APAR provides the files necessary to enable the operation of MQSeries as an XA transaction manager with Oracle 8.1.5 on Windows NT. IC27384 - Visual Basic bindings now include a type definition for a new structure MQCNOCD which combines two MQSeries types MQCNO and MQCD in a single structure for use with an MQCONNXAny call: Dim CNOCD As MQCNOCD MQCONNXAny QmgrNameIn, CNOCD, Hcon, CompCode, Reason In addition the Visual Basic bindings are now equivalent to the C bindings. IC27655 - FDCs with probe id XC076001 from the routine xcsGetMessage were generated when running without a console on MQSeries for Windows NT. The FDCs were caused by getting a zero CCSID returned from the routine GetConsoleOutputCP. IC27656 - There is an intermittent problem accessing the registry key in xcsGetWorkPath. Occasionally, the RegOpenKeyEx fails with ERROR_INVALID_HANDLE. This is described in the MSDN KB article Q176906 and as recommended in this article, a small loop has been added around the regopenkeyex if this condition occurs. IC27696 - When using an 8 character userid, that was a member of the mqm group, on MQSeries for Compaq Tru64 UNIX 4.0 V5.1 to run an MQSeries application, the application failed with return code 2035. This failure did not occur for userids less than 8 characters in length. IC27970 - Logpath not valid or inaccessible trying to launch the queue manager for users of MQSeries on Windows 32 bit platforms IC28245 - FFST generated frequently with probeid MS098000, arith 2079 81F for users of MQSeries on Windows 32 bit platforms using the MMC snapin with CSD #5 or CSD #6. IC28466 - After rebooting the server, a MQSeries for Windows NT V5.1 queue manager failed to restart following a recovery failure. IC29149 - Issuing an endmqm on MQSeries for Compaq Tru64 UNIX V5.1 (UNIX V5.0) did not always stop the queue manager if the process amqhasmx was killed after the channel processes had stopped. This only happened when two queue managers on different machines were connected to each other and the channels were active. IC29207 - A TCP/IP port variable was incorrectly defined and this caused port numbers greater than 32768 to be displayed as negative values. IC29218 - Error message AMQ6119 "OS/2 error 290" was produced from component DOSCREATEMUTEXSEM for an out of handles condition. IC29362 - In MQSeries V5.1 the CHAD exit was only driven once for each channel at a point when it could modify the definition. It was, as a result, very difficult for the exit to acquire storage specific to this channel instance which could then be released at a later stage. IC29498 - At start-up following a failure, removed object records can exist on cache queue and object records that are to be deleted can exist on the clustering cache queue. During the start-up the cache is restored in the exception controller. If records of the two above types existed on the cache queue, it was possible to start processing on the assumption that the queue manager was working in full operation. This could have caused start-up to fail. Also, no error message was output in the execution controller if a cache restore error was encountered. This problem can be identified by return code MQRC_HCONN_ERROR and a trace may end at rfiHardenObject. On unix, probe id XC130004 has also been seen. IC29643 - A trap occurred in MQSeries for OS/2 in amqxcs2.dll at offset 1f8cc when tracing was enabled for a multithreaded application which reused threads very quickly. IC29645 - A deadlock occurred in a multithreaded OS/2 application in component xppStopMonitorThread when a multithreaded application reused threads very quickly. IC29675 - When using MQSeries for Windows NT, FDCs with probe id KN102002 or KN130002 were produced from the routine lrcNoErrorsExpected after a call to xcsQueryTime gave a bad return code, xecU_E_TIME_ERROR. IC29687 - The component AMQRMQIA.DLL used to crash if it was passed a queue manager name which was not 48 characters in length. IC29718 - A large memory leak occurred on MQSeries for Windows NT V5.1 in amqhasmn.exe after running for a while. The FDC probe id was xy159015 from xstAddConnProcessToList. IC29815 - CHANNEL_STOPPED events (2283) wrongly occurred when multiple channel starts were issued together. IC29908 - When running the command server and sending a series of DISPLAY QCLUS and DISPLAY CLUSQMGR commands to it, the number of registrations as viewed by amqrfdm used to rise. All the additional registrations were owned by the command server. If this went on for long enough, the repository storage was all used up and no more commands could be run. IC29945 - It was possible for a user to uninstall MQSeries for Compaq Tru64 even while a queue manager was running. This would have resulted in abnormal termination of any running queue manager(s) as well as exposing the user to the risk of data corruption and/or loss. IC29984 - When trying to install the MQSeries for Windows NT V5.1 Client from the client CD-ROM or the SupportPac MAC5, then mfc42u.dll got replaced by an earlier version. After the install the version changed to 4.21.7022.0. This is due to the fact that the installation program checked the latest modified date and time and replaced with the latest one without giving warning or an option to keep the current version of the file. This will be fixed in any subsequent refresh of SupportPac MAC5 at service level U200140 or higher service levels. IC30062 - A client application occasionally caused error messages to be written to amqerr01.log. When this log file filled up, it got copied to amqerr02.log, and given mqm/administrator access only. When the log filled up again, since the user running the client application did not have mqm or administrator authority to delete the file, it could not replace it with the next amqerr01.log file. IC30219 - The Registry did not reflect the 'AdoptNewMCACheck' options correctly. When 'ADDRESS' was selected for the AdoptNewMCACheck option, 'NAME' was written to the registry and vice-versa. IC30225 - When using the *name for a Queue manager name, the ActiveX component did not return the actual queue manager name to which it was connected. IC30343 - MQSeries trigger failed when the filename specified in the APPLICID contained spaces in the name. IC30409 - Installing a C++ DLL into COM+ using the component services installation wizard failed. IC30555 - If an MQOD contains a remote destination queue and queue manager name, MQSeries will route this message to the default xmitq if it cannot find a qremote or xmitq with the same name as the remote destination queue manager. However on MQSeries V5.1 it also generated an FDC with error code 2085 (object not found) which did not occur previously with MQSeries V5.0. IC30569 - When using the API Exerciser, the MQPUT1 call did not fill in the msgid or correlid fields when the message was placed on the queue. The msgid returned was the default one, (AMQ<...>) and the correlid was set to nulls. IC30844 - An FDC with probe ID XC130031 (stack overflow exception) occurred in the runmqlsr program. Another symptom of this problem was that a Sender channel remained in Binding Status. IC31899 - Cluster messages hung on the transmit queue following error message AMQ9999 (abnormal termination). IC32320 - FDC with probeid XC167002 from component xstAllocBlockInSharedMemSet. IC32486 - Provide switchload file for using Oracle configuration and XA setup for use with MQSeries for Compaq Tru64 UNIX V5.2. IC32544 - After applying V5.1 CSD07, installations have reported some weird problems with queue manager names that are shorter than 4 characters and with some other lengths also. Symptoms include the following probe ids: XC037002 from component xcsExecProgram, return code 160 ZL002005 from component zlaReadAGParameters, rc=60 from fopen of a string containing garbage. The problem has been fixed by recompiling one of the executables without using compiler optimisation. IC33078 - While MQSeries link LotusScript Extension was being used, a trap appeared when running under load on an SMP machine. IX82635 - When the "mqm" userid was not defined on unix systems, crtmqm ended with return code 2195 and printed an FDC. It also printed out a broken error message (AMQ6090) to the error log. An enhancement has been made to print out a more informative error message to the error log. IX83915 - When using MQSeries for AIX, error message AMQ8405 was received when defining channels or queues if the DESCR field contained DBCS characters. IX87483 - If a channel was stopped via stop channel when the channel was inactive, then the xmitq status was not changed. The xmitq would remain with GET(ENABLED) TRIGGER instead of GET(DISABLED) NOTRIGGER IY00367 - The runmqsc PING QMGR command could return successfully even when the queue manager is not available. IY01722 - An abend occurred after an application issued an MQCONN while the queue manager was quiescing. IY03499 - HP-UX clients which waited in an MQGET with wait when a network outage occurred were hanging for several minutes. The hang was found to be in "close()" waiting for a FIN request to complete which eventually timed out, due to the network outage. This problem does not occur for other clients. IY03547 - After a successful browsing MQGET call, followed by a removing MQGET call to read an available message consisting of several segments, a subsequent browsing MQGET call with the LOCK option led to a failure with reason code 2195 (MQRC_UNEXPECTED_ERROR), completion code 2 (MQCC_FAILED) and to a broken connection to the queue manager. An FDC with probe id AQ105001 was produced from component aqhLogicalMsgLock. IY03669 - During abnormal shutdown situations, it was possible for MQSeries agents to hang indefinitely while terminating the internal health thread. While hanging, the agents produced a stream of FDCs with probe id XC174006 from component xllSemSetVal. IY04395 - Free() at SetStringField() resulted in a SIGSEGV in MQSeries Java Bindings. IY04851 - A post installation script showed a chmod on /var/mqm/@SYSTEM. This has been corrected so that it shows a chmod on /var/mqm/qmgrs/@SYSTEM. IY04894 - NGROUPS_MAX was hard coded to the value on the box where MQSeries was built (ie. 16 on Sun Solaris, 32 on AIX and 20 on HP-UX), instead of getting this value at runtime. The operating system command "groups" displays group information depending on NGROUPS_MAX. If a userid has more groups than the value of NGROUPS_MAX , then the "groups" command displays only the first NGROUPS_MAX groups and the rest are ignored. MQSeries handles groups belonging to a user in a similar way. The value of NGROUPS_MAX no longer has a dependency on the box where MQSeries was built, but instead it is now got dynamically using SYSCONF(_SC_NGROUPS_MAX). IY05540 - When an FDC with Probe id XC294000 was created, the component causing the creation of the FDC was shown incorrectly as component xppWaitForAsySigMonThread. The correct component is xllRemoveWaiterBlock and the FDC has now been corrected. IY07051 - When one user attempted to use DeregSub to remove an MQSeries Publish/Subscribe subscription for another user, an FDC with probe XY180002 from xcsReleaseThreadMutexSem was generated. This FDC should not occur, and this APAR merely addresses the code problem which caused it to be generated. It should be noted that subscriptions may be deregistered only by the same user which originally registered them; either by the user directly or by someone allowed to set context authority on the DeregSub message. This APAR does not change this behaviour. IY07333 - An FDC with probe id XC027033 and return code xecF_E_UNEXPECTED_SWITCH occurred when running a single threaded application under stress conditions. This was because a single threaded application could not reuse the agent when a multithreaded application had used it first. IY07349 - MQAT_JAVA (decimal value 28) was not defined in the header file table MQAT_*. IY07754 - The "crtmqm" program handled filesystems inconsistently. That is, users could create filesystems beforehand for the queue manager's data directories (/var/mqm/qmgrs/NAME), but not for the queue manager's logs (/var/mqm/log/NAME). Instead, the queue manager recorded an error if its logging directory already existed, and "crtmqm" ended abnormally. The routine responsible for creating the log files failed if it detected the existence of the directory it was trying to create, whereas the routine responsible for creating the data directories did not fail if it detected the existence of the directory and that the directory was empty. This prevented the easy creation of a queue manager where the logs are coming from a mounted file system. IY07924 - During an MQBACK call, MQSeries may need to issue an xa_end call to resource managers involved in a global unit of work. MQSeries was passing a flag of TMSUCCESS in the xa_end call, when it probably should set a flag of TMFAIL, marking the transaction branch rollback-only. Although this appeared to work in nearly all cases, it may differ from the XA specification, so an environment variable AMQ_MOD_DB2XA has been added. If this environment variable is set to anything then Flags is set to TMFAIL, otherwise Flags is set to TMSUCCESS as at present. IY08131 - MQSeries could write an FDC with probe id VP011003 when it tried to convert an MQTMC2 trigger message. The function converting the trigger message expected only MQTMC type trigger messages. IY08401 - After applying CSD06 to MQSeries for AIX V5.0, MAXMSGL no longer used the queue manager default value if MAXMSGL was coded as zero in the channel definition when sending messages from MVS/ESA to AIX. When an attempt was made to send a message on the sender channel from MVS to AIX, the message did not transmit and instead it ended up on the Dead Letter Queue (DLQ) with return code 2218 (message too long for channel). IY08553 - STOPPED cluster sender channel status was not propagated after Queue Manager restart. IY08576 - "crtmqm" on UNIX platforms could end abnormally after writing an FDC showing probe XC037008 from the function xcsExecProgram with a major errorcode of xecP_E_PROC_LIMIT. This corresponded to an errno of EAGAIN from fork(), which crtmqm called to start the logger process as part of formatting new log files for the queue manager. Typically EAGAIN means that the maximum number of processes for a user has been reached, but this error occurred even when there were no processes running under the "mqm" user. The error was correct, but it was caused because in process accounting on UNIX the fork will fail if the number of processes running under root has already exceeded the "maxuproc" setting on the system. IY08799 - MQSeries tracing on AIX could have made an impact on performance on a stressed system. MQSeries performance on AIX may have been slowed somewhat even when tracing was not active. On systems which were extremely heavily loaded, this overhead could slow MQSeries processing noticeably, although it should not have caused any hard errors. IY08921 - Some MQSeries functions traced incorrectly, appearing to be a different function. IY09074 - When an MQSeries for Windows NT V5.1 client was connected to an MQSeries for AIX V5.1 server, a return code of 2035 was received on the client. The userid being passed from the client side was not being converted to lower case as expected when being read on the AIX server side. IY09240 - On HP-UX and Sun Solaris platforms, the install processes for applying an MQSeries CSD would allow maintenance for MQSeries version 5.0 to be applied on a queue manager that was installed at version 5.1. The consequences of this could be quite severe in some circumstances. For example, in one instance the QMQMOBJCAT file became damaged which resulted in the the queue manager failing to start with MSGAMQ7472 damaged object type catalog. The AMQ7472 message occurred because the objects were defined with different formats in V5.0 and V5.1. IY09487 - One of the MQSeries trace output functions was not writing its output automatically. This led to problems in heavily threaded applications, particularly on SMP machines, in which trace output may have been missing, or trace files may have caused the formatter to hang. IY09709 - When a queue manager was restarted, its channels were not restored to their active status prior to the shutdown unless a default queue manager was present on the system. IY09844 - Even though a local queue was defined as PUT disabled for a queue manager in a cluster, it was still possible to put to the queue, if this queue was also defined elsewhere in the cluster as PUT enabled, by opening the queue fully qualified with the queue manager name specified explicitly in the open handle. IY09859 - MQSeries transactions running under CICS may have leaked 24 bytes on each MQCONN call. This memory was allocated by MQSeries with a malloc call during the MQCONN processing, but the memory was not released by MQSeries when processing an MQDISC call. The memory was only released when the cicsas, under which the MQSeries transactions were running, terminated. IY09958 - The MQSeries CICS switch load file (amqzsc) shipped with MQSeries was built slightly incorrectly. Although it worked fine from a functional point of view, it did cause any cicsas process which was XA-connected to MQSeries to report an application server number of 0, and this was incorrect. IY10067 - MQSeries and Oracle XA signal handling were incompatible. A large number of FDCs were produced, but the prevailing probe id was XC027016. An application which monitored the process received rc2009. An application, using MQSeries with the Oracle XA interface, was trying to perform an MQCONN through the C++ bindings but it was failing while requesting the mutex protecting the Execution Controller shared IPC link. According to the FDC, the process already owned the mutex and so the MQCONN failed with an MQRC_Q_MGR_NOT_AVAILABLE. IY10068 - The error number value in the xcsExecProgram FDC was incorrect. There is no problem with xcsExecProgram at all; this FDC simply ensures that we report any errors properly if and when they do occur. IY10361 - "runmqtrm" buffered its output which prevented it from being seen in real time. IY10490 - MQSeries applications which fork could have found that their child processes could not issue MQI calls successfully. The child may have failed to connect to the queue manager using MQCONN, it may have dumped core, or it may even have corrupted the parent's connection to the queue manager. IY10509 - When MQSeries channels stop, MQSeries may generate a message to the SYSTEM.CHANNEL.INITQ queue to prompt the restart of the channel if it has not ended normally (ie. due to DISCINT). MQSeries also does this for SVRCONN channels, which makes no sense since they cannot be restarted. Because the message is generated under the client userid, an authorisation error occurred unless the client had "put" authority against the SYSTEM.CHANNEL.INITQ queue. IY10592 - MQSeries FDCs on AIX did not print out the program name, unlike FDCs on most other platforms. This APAR will enhance FDCs on AIX by printing this information. IY10596 - After migrating an MQSeries for AIX V5.0 queue manager to MQSeries for AIX V5.1, channels from MVS to AIX which worked with V5.0 between AIX and OS/390 failed with V5.1 with error message CSQX0206E and reason code 00000018 when trying to start them. On AIX, messages AMQ9002 and AMQ9001 were generated stating that the channels started normally and ended normally. IY10830 - The MQSeries trigger monitor passed the MQTMC2 structure to the triggered application in double quotes (ie. " ") as opposed to single quotes (ie. ' '). This meant that certain shell constructs (for example, $$) may have been interpreted rather than being passed literally to the triggered application. IY11160 - An FDC with probe id XC285001 from component xppRunDestructors (accompanied by error AMQ6119) occurred when using draft 10 threads on HP-UX Version 11. The FDC contained the additional information "(' 2 ' from pthread_mutex_lock)". IY12110 - When MQSeries is coordinating a two-phase unit of work, it needs to issue an xa_end call to commit or back out the unit of work. MQSeries used to set TMSUCCESS in most cases, and then APAR IY07924 modified its behaviour to set TMFAIL on more xa_end calls. APAR IY07924 also introduced the AMQ_MOD_DB2XA environment variable which could override the setting. None of these options were completely correct, so the AMQ_MOD_DB2XA environment variable has been removed and the correct xa_end flag is now set for all cases. IY12240 - This APAR has replaced the system() call in runmqtrm with a call to fork() and exec() in order to start triggered programs. This was necessary in order to avoid potential hangs due to the non-threadsafe nature of system(). IY12689 - If local events were enabled on the queue manager "LOCALEV(ENABLED)", then record media image ("rcdmqimg -m qmgr -t queue *") incorrectly wrote an error event message to "SYSTEM.ADMIN.QMGR.EVENT" reporting that MQOPEN("SYSTEM.DEFAULT.ALIAS.QUEUE") returned MQRC_UNKNOWN_ALIAS_BASE_Q. IY12776 - When an FDC with probe id ZF037010 was produced, it incorrectly showed the component as zfu_as_init instead of zfu_as_SetObjectAuthority. IY12943 - The agent process amqzlaa0 demonstrated high cpu / bad performance . The extra time was in spinlock code (xllSpinLockRequest). IY13007 - MQSeries with Oracle 8.1.6 on AIX had problems when the XA switch file was unloaded. IY13066 - When MQSeries for AIX V5.1 was running, the /etc/group file had an active process on it. The process was associated with MQSeries. The command "fuser /etc/group" would show that the "amqzxma0" process, the queue manager's execution controller, had a handle on /etc/group. This handle was left because an MQSeries function on startup neglected to call the endgrent() routine. This handle should not have caused any problems at all for an active system. IY13229 - MQSeries sessions went into an indefinite wait. The problem was caused by a flawed calculation in xcsQueryTime which was meant to calculate the overflow when multiplying the number of seconds since the epoch by 1000 to get the number of milliseconds. This led xcsQueryTime to return inaccurate times when near the 4G millisecond wrap time relative to the epoch. This in turn meant that it would seem as if time had gone backwards and so the wait interval was reset to 30 seconds despite any previous waiting that had been performed. This continued and so the wait interval never elapsed. The new calculation is done using shifting operations and is more accurate. IY13399 - The queue manager failed to start due to memory corruption. The problem was typically characterised by numerous FDCs with probe id AQ076000 from component aqhLoadMsgDetails. The problem was only apparent at a queue full condition (MQRC_Q_FULL, return code 2053). IY13461 - STOP MODE(FORCE) did not work on a channel. The trace of the failure indicated that runmqsc was not receiving a response from the channel initiator's monitor thread when it tried to pass the command on to it because the monitor thread had exited. IY13909 - A large memory leak occurred on MQSeries for Windows NT V5.1 in amqhasmn.exe after running for a while. The FDC probe id was xy159015 from xstAddConnProcessToList. IY14045 - When an LU6.2 connection ends, SNA sends a SIGUSR1 to the channel (SDR & RCVR) process. This caused the processes to end without executing their atexit() function cccExitHandler, so that the conversation was not freed. The result was that the channel status table contained an invalid entry for the channel. This in turn could cause RCVR channels not to start with an error message AMQ9514, and SDR channels to display a status of RUNNING instead of status not found. IY14124 - The agent process amqzlaa0 demonstrated high cpu / bad performance . The extra time was in spinlock code (xllSpinLockRequest). IY14200 - The refreshed SupportPac MAC9 (MQeEries Client for Sun Solaris V5.1) at service levels CSD04 and CSD05 did not work unless you already had an existing mqs.ini file present on your system prior to the installation. The installation was supposed to copy the sample mqs.ini file to the /var/mqm directory if it did not already contain an mqs.ini file, but failed to do this. IY14251 - The MQSeries trigger monitor (runmqtrm) places trigger messages to the dead letter queue with a feedback code of 265 (MQFB_APPL_CANNOT_BE_STARTED) if it cannot start the triggered application, which is correct behaviour. However, runmqtrm would do the same if the triggered program terminated with anything other than a zero exit status. IY14283 - If an MQSeries Java Bindings application on Sun Solaris or HP-UX received a signal destined for the Java JIT compiler, it would correctly identify it as destined for another thread (in this case the JIT), but it then passed the signal to the previously registered signal handler (the JIT's) with incorrect parameters. This parameter inconsistency led to failure of the JIT and the Java environment. In normal operation, the JIT is equipped to deal with the signal predictably. This failure was only observed with the JIT compiler turned on. IY14563 - A SIGSEGV failure occurred in the amqrrfma process. IY14780 - When an AIX MQSeries application sends a message containing grouping information across to MQSeries for OS/390 requires an MQMDE. There was a conversion problem with the MQMDE if it was returned from OS/390 as part of the replyto message. The encoding in the MQMD header (which should contain the encoding of the MQMDE) was not correct (this is set by the AIX side of the channel) and as a result the MQMDE was treated as application data. IY15382 - Thread safety issue with LOCKF caused AMQERR log files to be scrambled when a log write could occur before the previous log write had been completed. IY15425 - After migrating from MQSeries for HP-UX V5.0 to MQSeries for HP-UX V5.1 on an HP-UX 10.20 system, defunct processes were created by runmqchi. This did not occur for V5.0 and did not occur for V5.1 on any other platform, including HP-UX V11. IY15655 - When running MQSeries for HP-UX V5.1 on HP-UX V10.20 with the environment variable mqremlog set to true so that /var/mqm could be an nfs mounted filesystem, the SYSTEM.CICS.INITIATION.QUEUE could not be deleted after creating a new queue manager and starting it. The attempt failed with an FDC with probe id AD034000 from component adiDeleteDir. IY15801 - When an attempt was made to shutdown MQSeries for Sun Solaris V5.2 using the command endmqm -i, an FDC with probe id ZL000028 from component zlaMain occurred and endmqm -i just blocked, waiting forever. A brutal shutdown (kill -9) had to be performed. IY16092 - Avoid MQSeries IPC key conflicts with other products. IY16170 - In defect 39564 it was found that AIX iconv has occasionally returned a 0x0F in the buffer provided, but failed to update the number of bytes remaining in the output buffer, and as a result a shift in character was not added to the output buffer. The code added in defect 39564 did an additional check to see if a shift in character was returned, and if so, one was added to the output string. However it has become apparent that this behaviour cannot be relied on, as sometimes a shift in character is returned even if one is not required (ie. the output string is valid EBCDIC), but the number of bytes remaining is not altered. The original check did not have a problem with this, but the new code would return a false positive, and hence a superfluous shift in character got added to the output string. Consequently this defect has returned the code to the way it worked prior to the change in defect 39564 (ie. a missing shift in character in some situations), and a fix for the original problem will depend on a change to the AIX iconv routine. IY16190 - If many MQSeries processes attempted to write messages to any of the AMQERRxx.LOG files at once, they were serialised and had to wait for their turn to append to the log. This serialisation could delay MQSeries processing, and if a high number of errors continued to occur, could lead to a buildup of MQSeries processes. If the machine sustained a high, steady rate of error messages, it was possible for these processes to contribute to a systemwide slowdown which could in the most extreme cases necessitate a reboot of the machine. IY16913 - MQSeries TCP/IP channels load a signal handler for SIGPIPE. They used to unload this handler when terminating the network connection. However, some channel processes have terminated due to SIGPIPE after the handler was unloaded, so the unload has been removed. IY17285 - Runmqsc returned error message AMQ8405 when trying to create channels with a trptype of UDP. Error message AMQ9214 was also output when the runmqlsr command was issued with a trptype of UDP. IY17319 - After applying CSD06 on MQSeries for Sun Solaris V5.1, strmqm could hang after producing an error message AMQ6109. This was caused by the fix for APAR IY10067 which made a change to avoid unloading the Oracle client shared library after an XAClose. This was done to fix a problem concerning an incompatibility between Oracle XA signal handling and MQSeries for AIX. This change was incorrectly applied to all platforms. The functionality of CSD05 has now been restored for the Sun Solaris and HP-UX platforms to explicitly unload the Oracle client shared library following an XAClose. IY17668 - After applying V5.1 CSD06, installations that connected their V5.1 queue managers to MQSeries V2 queue managers and installations that specified a zero heartbeat may have encountered channel time-out conditions that did not occur prior to applying the CSD. IY17846 - On HP-UX V10, the library libcma.sl provides draft 4 pthreads. Provided that the DCE enablement feature is installed, MQSeries makes use of draft 4 pthreads and supports draft 4 threaded applications. However the first call to pthread_create can replace application signal handlers in draft 4 threaded applications. APAR IY17699 documents this issue thoroughly. While customers need to take action to protect their own signal handlers, MQSeries has been modified to use the cma_init() workaround as described in APAR IY17699 to protect its handlers. IY18201 - When using the channel process runmqchl_nd with MQSeries for AIX V5.1 with transmission through the AIX SNA Communications Server V6.0, the runmqchl_nd process core dumped when it tried to end. IY19616 - A sender Message Channel Agent (MCA) stopped picking up messages from the transmission queue when mutex contention occurred. IY20510 - If you used "runmqlsr" for the TCP/IP listener instead of inetd, and the queue manager was shut down while the number of processes exceeded 1000, the "runmqlsr" stayed active and if you used "endmqlsr" to stop the listener, you received a message to the effect that it could not find any running listeners for the specified queue manager. IY20768 - When an MQPUT specifying MQPMO_SYNCPOINT is issued by an application, MQSeries must allocate some storage from the repository manager in order to record a queue manager registration. When this new registration was recorded, no check was made to see if the queue manager registration had already been made, so a new registration was allocated for every MQPUT under syncpoint, which caused the MQSeries cluster repository manager to fail with AMQ9211 ("Error allocating storage") and AMQ9500 ("No Repository storage") error messages. The MQPUT which encountered the failure may then have hung while MQSeries was clearing up. FDCs with probe id XC022001 from component xcsDisplayMessageForSubpool and probe id KN168047 from component kqiFastnetAddQmgr were produced when this happened. IY20931 - Under heavy stress or low memory conditions, MQSeries channel processes could terminate with an FDC with probe id XC130003 from component xehExceptionHandler showing an Arithmetic 1 value of 11, indicating a SIGSEGV. The last entry on the function stack showeds rrxOpenChannelDef. This problem was more likely to occur in threaded channel processes such as runmqchi and runmqlsr. IY21274 - FDCs with probeids HL092082 (from component sqlpgwlp), HL006005 (from component hlgWriteLogRecord), and XC027042 (from component xcsRequestMutexSem) on MQSeries for HP-UX V5.1 (HP-UX Version 11). IY21795 - An amqcrsta process failed due to a bind error, accompanied by an FDC with probe id RM070000 from component cccJobMonitor and error message AMQ9213 (Communications error for bind). IY21854 - When doing an MQPUT under syncpoint, if an MQDISC is performed without first explicitly calling MQCMIT, MQSeries automatically does a commit, but it did not start the Cluster channels at the same time. IY22185 - Very intermittent hangs or abnormal terminations of the queue manager have occurred. There were several different probe ids that have shown up in the FDC files accompanying the failures: a) Probe id AT023000 from component atmAcquireDataMutex, with major error code xecF_E_UNEXPECTED_RC and minor error code xecL_E_INVALID_HANDLE. b) Probe id AT039001 from component atxPerformCommit. c) Probe id AT038003 from component atxCommit. IY23667 - Cluster channel failed to restart after the discint value had expired when using an external XA transaction manager. IY24515 - CRTMQM with the -g option returned a 2195 error code. IY24677 - When MQSeries was defined as an XA resource to CICS, endmqm could take a long time to complete. While the queue manager was ending, MQSeries could generate many FDCs with probe id XC333025 from the componenet xlsPostEvent. In addition, CICS could abend an active MQSeries transaction with an A147 ABEND. IY25494 - If FastPath channels were being used, an FDC was produced with Probe ID ZI095217 when the queue manager was started. IY25648 - An FDC with probe id XY018001 occurred in component xufCloseIniRead with error code xecU_E_INI_FILE_ERROR. IY25652 - Tracing on the MQSeries for Windows NT and Windows 2000 V5.2 client did not work. IY26290 - A message could have been restored out of sequence under very rare circumstances at queue manager restart following a crash. IY27191 - After LDAP was added to a system, crtmqm failed with error messages AMQ6109 and AMQ6184 (MQSeries internal error) as well as an AMQ5522 error message (An MQSeries installable service component could not be initialized). In addition, MQSeries generated an FDC showing a segmentation fault SIGSEGV in component zfu_as_findgroup with FDC probe id XC130004. IY27710 - A queue manager's shared memory segment could have been deleted by another queue manager because a duplicate segment key was generated by AIX FTOK(). The queue manager would fail with FDC XC212018 from component xstConnectSegmentViaID. SA90400 - Requester channel changed from "running" to "inactive" after 60 seconds following the receipt of a message. 30103 - Semaphore leak on HP-UX and Sun Solaris platforms. 36264 - If you created a new queue manager whilst the API exerciser was open you could not see it in the queue managers list. In order to see it you had to close the API exerciser and restart it. 38366 - Pressing F1 for more information was incorrectly shown as an option while the "Hide Queue Manager" dialog of the MQ Explorer snap-in was displayed, resulting in the following error: Cannot find the e:\mqm\bin\amqmsnap.HLP file. Do you want to try to find this file yourself? 39034 - The MQSeries Application Programming Reference manual SC33-1673 states that for MQSeries for OS/2 the conversions between code pages 803 <-> 862 and code pages 803 <-> 867 should be supported. All four failed with return code MQRC_NOT_CONVERTED. 39190.1 - ForceRemove of a queue manager caused channels to be stopped when the channels should not have been stopped. The channels should only be stopped if there are no live locally-defined CLUSSDRs (CSDs) or auto-defined CLUSSDRs (CSAs) on clusters other than the ForceRemoved one and also there is no live CSD on the cluster to be ForceRemoved. 39427 - Unnecessary nulling of unused bytes in a message buffer, which could have affected performance if the buffer was much larger than the message, was being done during conversion on MQSeries for OS/2 and MQSeries for Sun Solaris. 40395 - Improve ccxSetTime to specify a minimum timeout period. 40493 - Unhelpful error was produced when jview.exe was not installed on Internet Explorer V5. 40621 - The console hung if a process application id had mismatched quotes in a Process definition (eg. '"xxx"' - single quote double quote xxx double quote single quote). 40898.1 - AMQMSRVN.EXE occasionally used loads of memory and cpu. 41096 - The API Exerciser trapped if the queue name was left blank on an MQGET. 41308.1 - Tracing the entry to xppTestAndSetupInitCondition used a non-standard comment instead of the standard trace entry call on Unix platforms. 41330 - A network failure could cause a java client to hang if the server terminated badly, and the client was in a receive, and KEEPALIVE was not being used. 41334 - The Java client printed out incorrect closure reasons. 41344 - The Java client always used to set a minimum heartbeat interval of 5 minutes, whatever value the SVRCONN tried to set. 41444 - Message sequence number errors occurred following an endmqm (quiesce). 41536 - If the UDP listener died, it could not be restarted if a responder, that had propagated socket, was running. 42824 - Set TCP_NODELAY in the Java Client. 42951 - The error message AMQ8147 (object not found) was not displaying which object could not be found. 43110 - The MQSeries Explorer did not show the 'Namelist' and 'Cluster Queue Managers' folders under 'Advanced' for AS/400 queue managers. 43188 - Refresh the Java classes to the same code level as SupportPac MA88. 43716 - The reason code MQRCCF_CFH_TYPE_ERROR was returned when a bad version number was detected instead of MQRCCF_CFH_VERSION_ERROR. 43752 - Occasionally Web Admin would crash if a user requested a large amount of data back. 43921.1 - On MQSeries for AIX V5.1, running the command server and sending a series of DISPLAY QCLUS and DISPLAY CLUSQMGR commands caused the number of registrations (viewed by amqrfdm) to rise and all the additional registrations were owned by the command server. 44019 - Application agent could die when handling large segmented messages. 44211 - Add new cluster workload exit API call "MQXCLWLN". 44272 - When restoring old logs, it is possible to process old synchronisation records for which there is no longer a corresponding channel definition. This situation resulted in misleading messages and failure to start existing channels. In future these synchonsiation records will be ignored if there is no corresponding channel definition. 44468 - Add trace entries to find the return code from "mmap" in the case of a failure. 45081 - Error message AMQ4082 (Unexpected MQSeries error) with return code 4008 occurred when creating a namelist with more than two names on AS/400 using MQ Explorer. 45148 - The trace entry of the return code from the function zutObtainDefaultQMName was incorrect. 45170 - The Visual Basic MQCONN binding was incorrect, and could result in a compile error when used. 45196 - Add support for ComponentBroker on the HP-UX Version 11 and Sun Solaris platforms. 45205 - Visual Basic bindings needed modifying for IIS/ASP pages. A message box was displayed and the program was halted if the type of binding was invalid. However in IIS the 'End' statement is not permitted within a function, so the program will no longer halt. 45208 - The Visual Basic bindings had an incorrect structure for MQRMH. 45211 - If the MQCCSI_INHERIT flag in the MQMD was not processed by an MQPUT (eg. on MQSeries for OS/390 where this flag is not currently supported) then a subsequent MQGET on a system that supports the MQCCSI_INHERIT flag caused the message to be corrupted. 45231 - When using UDP support, the process amqcruda generated core dumps when closing. 45490 - The default value for MQRFH2 NameValueCCSID should be 1208 instead of zero. 45694 - The installation/uninstallation of an AIX CSD was apparently successful even though the queue manager was running. 46040 - Following an initial segmentation violation (segv), a subsequent segmentation violation was not caught by the MQSeries exception handler (xehExceptionHandler) even though the handler was installed. This happened because the kernel did not reset the SIGSEGV signal in the process signal mask. This meant that the next time a segv was generated the process would terminate. 46375 - When a queue manager was deleted from the services MMC, the MMC displayed the queue manager as "does not exist" instead of removing the entry altogether. 46678 - An FDC with probeid XY176001 from component xcsLoadFunction occurred following an MQSeries V5.1 channel exit load failure. 46681 - The IBM MQSeries service has occasionally reported an invalid current state 20 when stopping AMQSVC, but the service still stopped. 46933 - Put the Operating System version information into the FDC header. 46957 - The value for md.MsgType was restricted to just those values with defined MQMT_* values. 47001 - The conversation count value became negative and caused the SIGPIPE handler to be unloaded. 47205 - FDCs were not formatted correctly when a line in the stack history was longer than the FDC line buffer. 47381 - FDC with probe id XC089007 in xcsKillProgram occurred following an attempt to end a CLUSSDR with the CL command. 47570 - Permissions on crtmqcvx should be 0550. 47712 - The fix for defect 40502 in CSD #4 had the unintended effect on Sun Solaris of replacing an indefinite wait with a 60 second timeout which would cause the logger to terminate after a period of inactivity. This, in turn, caused the Manager to terminate. 47818 - On unix, a close() call against a socket would hang if there was an outstanding recv() on another thread. 48041.1 - The SA_SIGINFO option in the signal flags passed to sigaction( ) was not specified when registering the synchronous signal handler xehExceptionHandler. 48153 - Lists of channel exits and channel exit data may have been corrupted by concatenation in the explorer when using names in quotation marks. 48202 - On AIX there is a limited amount of virtual storage available for malloc'ed areas. The previous stack size of 256K used this storage up much too quickly so that the number of clients that could be attached to the listener was affected. The stack size has been reduced to increase the number of clients that can be attached to a listener. 48365 - Queue managers were not refreshed after dltmqm in the api exerciser. The queue manager list in the api exerciser displayed the deleted queue managers. This did not vanish even after restarting the api exerciser. 48376 - The batch size was not always set correctly during channel negotiations. The session initiator set the proposed batch size to the lowest of: (a) the batch size in the channel definition (b) MAXUMSGS - 3 (c) 1 This value was not updated into the channel status, but was sent to the accepting end of the channel. The accepting end of the channel completely ignored its local MAXUMSGS. If the value sent from the initiator was lower than its channel batch size it accepted the value and quite correctly did not send another value back to the initiator. This received value was correctly reflected in the acceptor's channel status, but the initiator did not update its status table which still contained the batch size from the initiator's channel definition. 48570 - A sender channel should only ever end normally if the disconnect interval expires. However if the sender channel was asked to end by a receiver then the channel would end normally. Usually this was not a problem since it is common practice to set up a channel for triggering and when the channel ends with messages on the transmission queue a trigger message will be generated causing the channel to be started again and hence go into RETRY. However it was a problem if channels were not set up as triggerable. To resolve this situation, a channel will now always go into RETRY if it ends for any other reason than disconnect expiry. 48757 - If a merged CLUSSDR was deleted locally and then the channel was recreated, in some circumstances it was possible for some remote messages to be ignored. 48992 - Performance enhancements to the repository manager. 49271 - The setStringToLength() method, as used by the Java client, was particularly inefficient in its construction/appendage of strings. 49358 - The Java Client was not compatible with an MQSeries for MVS/ESA V1.2 queue manager. 49584 - The MQSeries Publish/Subscribe routine RegisterSubscriber did not check for expired subscriptions. 49808 - A segv occurred in the Repository Manager. There was also an FDC with probe id XC130004 from the component xehExceptionHandler for program amqrrmfa. 49853 - If an installation uses its own authorization service then it is perfectly valid to use a userid which is not actually defined on Windows NT and it will all work correctly (if their service allows the user) but an AMQ9245 message is produced for every MQCONN from one of these users. An environment variable (MQSTOPAMQ9245) has been added which, if set, will prevent the message AMQ9245 from being generated. 49866 - A program hang occurred when starting or stopping channels. 50038 - Add support for Greek Euro codesets. 50261 - An FDC with probe id ZI029001 occurred in component ziiVSendReceiveAgent on MQSeries for Windows NT. 50291 - Changes to database sample programs for use with DB2. 50357 - When a Segmentation Violation (segv) occurred in an MQSeries application it was the MQSeries Signal Handler which caught the error and then wrote an FDC. The MQSeries exception handler should not write an FDC if the segv occurs outside of MQSeries product code. Instead it is designed to pass the signal on to a handler previously registered by the application. If no handler exists it will terminate with or without generating a core file, depending on the setting of the AMQ_ABORT_ON_EXCEPTION environment variable. 50444 - A failure, which occurred in the routine kqiVerMsgForPutPutList, was caused by an optimisation failure in the routine xcsConvertLong. 50675 - An error occurred while trying to load AX support module 'amqzaax' on Solaris 5.7 50691 - An FDC with probe id XC167015 in component xllTidyUpSems occurred after an "endmqm -p" on HP-UX Version 11. 50873 - When using MQSeries for AIX V5.1 with Oracle 8.1.6 on AIX there were problems when the XA switch file was unloaded. 51011 - Fastbound applications MQGET returned a reason of OK even though an MQCMIT failed and rolled back. 51375 - An FDC with probe id ZX005025 from component zxcProcessChildren with error message AMQ5008 (return code zrcX_PROCESS_MISSING). 51440 - An FDC with probe id HL031000 in component hosDeleteMutexSem occurred after an "endmqm -i" on Windows NT. 51539 - A sigsegv occurred in component rfxAddCLQMgr. 51643 - An FDC with probe id XC076001 from component xcsGetMessage occurred when triggering an application on the MQSeries Client for Windows 95 V5.1. 51678 - A trap occurred in amqmsrvn.exe during a refresh install. The trap happened at the point in the install when a message "Registering Object Classes ..... amqmsrvn.exe" occurs and the error message accompanying the trap was "amqmsrvn.exe - application error - the memory could not be 'read'". 52705.1 - A short channel timeout was longer than it should have been. 52873 - The cache message buffer was not being freed at the end of function zxcCreateRepositoryCache. 53032 - Modify the Java functions to recognise the new command level for MQSeries V5.2. 53090 - In a cluster where QM1 is a partial repository and QM2 is a full repository, error message AMQ9426 "Repository command recipient unknown" could occur if QM1 was forced removed from QM2 at the same time as a refresh was performed on QM1. 53111 - If conversion failed and the data was byte swapped the failure was not reported. 53156 - Application trapped if Oracle returned -3 from xa_close. 53234 - An FDC with probe id AD030001 from component adiReadFile (RC=0 from read) was created by rcdmqimg when disk was full. 54284 - The MQSeries trigger monitor passed the MQTMC2 structure to the triggered application in double quotes (ie. " ") as opposed to single quotes (ie. ' '). This meant that certain shell constructs (for example, $$) may have been interpreted rather than being passed literally to the triggered application. 55508 - When a channel, that was in-doubt, was resolved via the RESOLVE CHANNEL runmqsc command, the channel status became RUNNING instead of RETRYING. Note that the recommended way to deal with an in-doubt channel is to restart the channel, and the resolve will be done automatically as part of the startup procedure. Using the RESOLVE CHANNEL runmqsc command to do this should be avoided. 56989 - VisualBasic sample AMQSAICQ.VBP could not be compiled and executed because of a VisualBasic global constant MQHO_NONE constant being declared twice, once in the header file cmqb.bas and once in the header file cmqbb.bas. 57239 - When a checkpoint is made, active transactions are backed out, and when they try to do any more work (eg. another put or get), they fail and return code MQRC_BACKED_OUT is returned to the application. At this time, another unnecessary Start Transaction record was written to the log file even though the application was in a backed out state. When the checkpoint was taken because the log file was running low on space, the additional log file space used by these unnecessary Start Transaction records was occasionally sufficient to cause a restart failure after the checkpoint request failed because the user's application chose to ignore the backed out failure and continued to sit around without disconnecting or ending the transaction. 57249 - Unnecessary qdepth log records were written by the recovery process. 57366 - If a dltmqbrk command is issued when there are unprocessed messages (that cannot be DLQ'd) on a stream queue at the time of trying to delete the broker, then the command should fail and error message AMQ5842 should be returned from dltmqbrk. When such messages existed, each time dltmqbrk was issued then one message would be removed incorrectly from the queue. 58695 - When putting messages under syncpoint to a cluster queue, if they were not explicitly committed with MQCMIT, they were committed at MQDISC time. However, the cluster channels did not get automatically started and this resulted in the message staying on the SYSTEM.CLUSTER.TRANSMIT.QUEUE. 58828 - The endmqm process sometimes takes a long time to complete. 58862 - When running a loop consisting of an MQCONN followed by an MQDISC, a memory leak of 64 bytes occurred. 58908 - MQSeries for Compaq Tru64 UNIX V5.1 failed when run under stress on a Tru64 4.0 system and an FDC with probe id XC268010 from component xehAsySignalMonitor occurred. 59193 - Groups of clustering objects were being registered then all but one of the items were being discarded. This resulted in a corruption of the clustering cache. HY50003 - New function to provide better trace diagnostics when an MQGET fails with MQRC_NO_MSG_AVAILABLE (RC 2033).