MQSeries for Sun Solaris V5.0 CSD History ========================================= CSD01 - PTF U451855 (superseded) CSD02 - PTF U452979 (superseded) CSD03 - PTF U454878 (superseded) CSD04 - PTF U458801 (superseded) CSD05 - PTF U461609 (superseded) CSD06 - PTF U462275 (superseded) CSD07 - PTF U462317 (superseded) CSD08 - PTF U469671 (superseded) CSD09 - PTF U472524 (latest available PTF) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CSD Details =========== A) PTF U472524 ----------- This is the ninth CSD for IBM MQSeries for Sun Solaris Version 5.0 from IBM. It is delivered via PTF U472524 for APAR IY11735. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 18. It contains fixes for all the problems listed below: IC27327 - Cumulative maintenance #09 for MQSeries for OS/2 V5.0 IC27331 - Cumulative maintenance #09 for MQSeries for Windows NT V5.0 IY11733 - Cumulative maintenance #09 for MQSeries for AIX V5.0 IY11734 - Cumulative maintenance #09 for MQSeries for HP-UX V5.0 IY11735 - Cumulative maintenance #09 for MQSeries for Sun Solaris V5.0 IC25451 - The MQSeries executable runmqchl.exe went into a loop with 100% CPU usage. The channels were defined to the MQSeries queue manager as TCP/IP channels. 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. 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. 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. IY09889 - CICS application servers ("cicsas" processes) may dynamically load and unload MQSeries transactions. When an MQSeries transaction was unloaded, it was possible for MQSeries to leak some memory. 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. 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. IY11435 - Occasionally the use of draft 4 pthreads on HP-UX 10.20 suffers a very intermittent problem on certain machines in which pthread_getspecific may return a non-NULL pointer on a pthread key for which pthread_setspecific has not yet been performed. This led to a segmentation fault within MQSeries. 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. 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. 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. 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. SA90400 - Requester channel changed from "running" to "inactive" after 60 seconds following the receipt of a message. 38026.1 - Delete channel failed with error code 4004. 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. 51011 - Fastbound applications MQGET returned a reason of OK even though an MQCMIT failed and rolled back. 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. B) PTF U469671 ----------- This is the eighth CSD for IBM MQSeries for Sun Solaris Version 5.0 from IBM. It is delivered via PTF U469671 for APAR IY07328. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 37. It contains fixes for all the problems listed below: IC25881 - Cumulative maintenance #08 for MQSeries for OS/2 V5.0 IC25883 - Cumulative maintenance #08 for MQSeries for Windows NT V5.0 IY07301 - Cumulative maintenance #08 for MQSeries for AIX V5.0 IY07303 - Cumulative maintenance #08 for MQSeries for HP-UX V5.0 IY07328 - Cumulative maintenance #08 for MQSeries for Sun Solaris V5.0 IC24805 - Add Unicode to Kanji mapping for Microsoft encodings in addition to IBM. IC25096 - MQSeries failed to restart as a service after a re-boot, because of a Windows NT error 1723 from NetServerGetInfo. The error code 1723 indicated that the RPC Server was busy at that moment. A check for RPC_S_SERVER_TOO_BUSY has been added to catch occasional start-up problems after a re-boot. IC25162 - Channel exits were not working on channel callback when the channel definition was being used to store values across exit invocation. IC25535 - FDCs with probe id AD024000 were generated from adiCheckLocation when MQSeries V5.1 is installed in a non-default directory and MUSR_MQADMIN does not have access to this directory. 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. IC26168 - Handle and memory leaks may have been experienced by some MQSeries applications when executing under the control of an XA compliant transaction manager. 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 was not available. 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 - When using segmented messages, a browsing MQGET call, followed by a removing MQGET call to read an available message consisting of several segments, succeeded. A subsequent browsing MQGET call with the LOCK option failed with an FDC AQ105001 from component aqhLogicalMsgLock, an error message with reason code 2195 (MQRC_UNEXPECTED_ERROR) and completion code 2 (MQCC_FAILED). This was followed by a broken connection to the queue manager. 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. 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. 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). 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. 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. IY09651 - When the Sender channel was in RETRY mode and PING CHANNEL was issued, the Sender channel wnet into INACTIVE Mode and never returned to RETRY mode. IY10067 - MQSeries and Oracle XA signal handling was 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. 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. 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. 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(). IY12943 - The agent process amqzlaa0 demonstrated high cpu / bad performance . The extra time was in spinlock code (xllSpinLockRequest). 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). 27440 - On MQSeries for HP-UX V5.0, the value of AMQ_DEFAULT_MSG_CAT_PATH was /usr/lib/nls/C/amq.cat but the English catalog is put in /usr/lib/nls/msg/C/amq.cat (note the /msg). This would only affect operation if the user did not set the NLSPATH environment variable to the recommended value. 31672 - Sample MQSeries C program, which accepts the Lotus Notes Client data from the MQLINK program, has had logic added to cope with an incoming message size that does not match the expected size for messages generated from Lotus Notes using MQLSX. 38001.1 - Java Native Interface binding failed if Java fields were set to null. On Windows NT this caused an application error to occur without even throwing an exception. 39271.1 - An access violation was generated by a channel when converting a message from one code page to another code page such that the message was expanded by the conversion and the expanded message was too big. 40395 - Improve ccxSetTime to specify a minimum timeout period. 41444 - Message sequence number errors occurred following an endmqm (quiesce). 42000 - Memory leak occurred in the java trace class. 42607 - MQDistributionList.close() caused a null pointer exception, if it was called twice or it followed a qmgr.disconnect(). 42615 - A java MQQueue.close() after an MQQueueManager.disconnect() returned an unexpected return code, 2019, when dealing with more than one queue. 42648 - The GregorianCalendar typed putDateTime field should have the time zone field set to GMT. However this was not the case if MQSeries was not running in a GMT environment. 42929 - The java MQException class did not always check whether the message catalog was actually loaded before attempting to get messages from it. 44019 - Application agent could die when handling large segmented messages. 44468 - Add trace entries to find the return code from mmap in the case of a failure. 45148 - The trace entry of the return code from the function zutObtainDefaultQMName was incorrect. 45231 - When using UDP support, the process amqcruda generated core dumps when closing. 45969 - Scratchpads were not recreated by rcrmqobj unless the queue manager was stopped and restarted first. After stopping and restarting the queue manager, message sequence number errors occurred following the scratchpad recovery. 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. 49584 - The MQSeries Publish/Subscribe routine RegisterSubscriber did not check for expired subscriptions. 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 V11. 51440 - An FDC with probe id HL031000 in component hosDeleteMutexSem occurred after an "endmqm -i" on Windows NT. C) PTF U462317 ----------- This is the seventh CSD for IBM MQSeries for Sun Solaris Version 5.0 from IBM. It is delivered via PTF U462317 for APAR IX85261. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 50. It contains fixes for all the problems listed below: IC22708 - Cumulative maintenance #07 for MQSeries for OS/2 V5.0 IC22711 - Cumulative maintenance #07 for MQSeries for Windows NT V5.0 IX85259 - Cumulative maintenance #07 for MQSeries for AIX V5.0 IX85260 - Cumulative maintenance #07 for MQSeries for HP-UX V5.0 IX85261 - Cumulative maintenance #07 for MQSeries for Sun Solaris V5.0 IC17963 - The output routine that writes data to a file (eg. the logger file) sometimes returned a lock violation, which was probably caused by another non-MQ process doing a backup. The output routine has been modified to retry the output request for a period of time in the hope that the lock has been released by the other process. Although this problem was originally considered to be a problem exclusive to the MQSeries for OS/2 V5.0 product and fixed before shipment, it has now been reported in the MQSeries for Windows NT V5.0 product as well. IC19102 - The MQSeries NT client did not allow an APPLTYPE(WINDOWS) on triggered processes. 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. IC20278 - An application that created a temporary dynamic queue was closing it with the delete purge option while another application was trying to put to it at the same time. The locking mechanism had a small window where the queue would be deleted before the lock had been made but the thread would believe the queue was fine. This window has now been closed. IC20893 - When trying to start the channel from MVS to Windows NT, the following messages occurred: CSQM134I +K02M CSQMSCHL START CHANNEL(K02M_TO_METMQMGR) COMMAND ACCEPTED CSQX213E +K02M CSQXRCTL Communications error, channel K02M_TO_METMQMGR, TRPTYPE=LU62 RC=0000001A CSQ9023E +K02M CSQXCRPS START CHANNEL ABNORMAL COMPLETION On Windows NT the LU6.2 call cmaccp can give a return code of CM_OPERATION_INCOMPLETE which means that the call will complete, but as yet it has not completed. This return code was not being handled correctly. The required action on receiving this return code is meant to be to issue a cmwait to wait for the call to complete. This action is now performed. IC21655 - The DMPMQLOG command failed with an FDC probeid UN089000 and return code arcE_PAGE_EXTENT. IC21672 - When recovering the media image of the syncfile from the logs using the rcrmqobj command everything worked fine unless the syncfile itself was actually missing (\MQM\QMGRS\\@ipcc\AMQRSYNA.DAT). If the file was missing then the rcrmqobj command reported that it could not delete the syncfile and ended, without recovering it. IC22041 - User applications compiled with the Microsoft Visual C++ compiler that do new/delete on Imq objects can cause problems if the application and MQSeries bindings are using different 'C' runtimes. This can be caused by using different versions of the compiler, compiling the application as debug, using Microsoft Foundation Class (MFC) or statically linking the C-runtime. The problem can manifest itself as a user breakpoint when debugging the application and 'operator delete', of the imq object, is called. IC22266 - The RCRMQOBJ command displayed error message AMQ6090 when it attempted to display the message associated with reason codes hexadecimal 20800893 and 20800872. AMQ6090: MQSeries was unable to display an error message 20800893 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. IC22822 - A trap and FDC with probe id XC130031 occurred on each reconnect attempt after an LU6.2 session connection has been lost. The FDC probe error description was: AMQ6119: An internal MQSeries error has occurred (Access Violation at address 2DE when reading) IC22848 - MQSeries reply messages (eg COA and COD messages) and also messages from the command server in response to PCF messages did not pass on the expiry of the original message. IC23351 - During an MQPUT1, MQSeries received an access violation at address 0x00000074. This caused an XC130031 FDC from xehExceptionHandler, and in some cases was followed by additional FDCs with probes such as AQ047000, AT008000, and more XC130031's. The problem was caused when a trigger message was generated onto an initiation queue which generated a Depth high event. IC23380 - MQSeries on distributed platforms would allow messages with an invalid message type to be MQPUT to the queue manager. For example, a message type of 3 would not be rejected. However, platforms like MVS/ESA are more stringent in their checking and will not allow such messages. If one is sent via a channel to MVS/ESA, it would effectively plug up the channel until manually recovered. Additional checks will now be performed for valid MQMT_* types when the value lies in the system range. This will bring the behaviour of the distributed platforms into line with the behaviour of MVS/ESA. IC23456 - If the first message on the transmit queue was a segmented message and the channel was not started, the message stayed on the transmit queue and the process to start the channel never happened. IC23835 - For performance reasons, files are not always closed on disk. For example, if the file is a predefined queue (eg. a local queue), it is unlikely that an attempt will be made to delete the file while MQSeries is using it. Since the file will be in use there is a performance benefit in keeping the file open on disk. However these files can be opened by a long running application (such as the Command Server) and so remain open for long periods of time. If an attempt is made to delete such a file while it is being used by an MQSeries application then the delete will receive a sharing violation. This may be accompanied by an FDC with probeid AD023000 for component adiDeleteFile and error message AMQ6119. To allow users to choose whether or not they want to use this performance option, an environment variable, MQ_CLOSE_ALWAYS, has been added and if this environment variable is found to be defined with any value then the queues will always be closed and this problem will not occur. IC23891 - Trusted fastpath bindings were being used to allow more clients to connect to an OS/2 server with a Fastpath Listener. If there were multiple clients connected and one disconnected, subsequent incoming clients failed with RC2059 and RC2009. FDCs show ZX005006 for zxcProcessChildren and error message AMQ7159 (A FASTPATH application has ended). There may also have been an FDC or trace for runmqlsr receiving XC130031 with error message AMQ6119 reporting Access Violation at address 2E when reading. The problem only occurred for an OS/2 server with a Fastpath Listener. IC24477 - MQSeries clients may have returned rc=2002 (MQRC_ALREADY_CONNECTED) from MQCONN after a previous MQI call had returned rc=2009 (MQRC_CONNECTION_BROKEN). According to the MQI documentation, MQCONN should work normally after an MQRC_CONNECTION_BROKEN return code, provided the original problem (network outage, etc.) has been corrected. IC24575 - The xcsQueryTime function on NT was failing and it appears that the reason for this was that after calling _ftime, the GetLastError function was being used to check the return code. However, after testing, it was shown that _ftime does not actually call SetLastError on success (After a successful call, the value set by a prior SetLastError call persisted). In order to ensure that the return code being tested is the one returned by _ftime, SetLastError(NO_ERROR) is now called prior to the GetLastError call. IC24624 - When using the MQSeries Publish/Subscribe SupportPac MA0C a user written sample subscriber would wait for messages and receive the first 6 of 10 publications from the publisher. Thereafter, the publish request was rejected with RC2195. The publish command itself was identical to the first 6 successful publications. This was a consistent error. The text returned was MQPSReasonText = MQRC_UNEXPECTED_ERROR and MQPSErrorId = 0. It was necessary to restart the publisher to continue. The subscriber remained running and would accept the next 6 of 10 publications. IC24709 - When running MQSeries for Windows NT V5.0 and using the PCF Inquire Queue Command, and an error was returned for a queue, originally the inquire queue call would end at that point. The function was enhanced so that it would continue on to the next queue and process it. But no check was made to see if there were any more queues to process. If this was the last queue to process then the process would start again at the beginning, and reprocess all the queues. This time no error was detected and the function would end normally. It would appear as if there was no problem. IC25300 - MQSeries repeatedly generated the messages AMQ6091 and AMQ6183. IX75938 - "HARDENBO" is set as default for all Unix systems and cannot be changed as stated in the Application Programming Reference manual. But when several Unix queue managers were created, some queues were displayed as "hardened", and other queues were displayed as "nohardened". IX76701 - Performing a trace on an HP-UX V5.0 or Sun Solaris V5.0 client using STRMQTRC resulted in fatal error because the shared library libmqml_r.s or libmqml.so was needed, but these libraries were not installed on the client. IX77660 - The queue manager was not brought down when the the checkpoint processor came down for a failure. IX83280 - MQCONN in a forked process failed if its parent was connected to the MQSeries queue manager. An MQSeries for HP-UX V5.0 application failed when a call to shmat failed. Whenever a new message arrived for this application to handle, it forked another process to handle the incoming message. The child process also did an MQCONN at which point it failed. This does not occur with MQSeries for AIX V5.0 or MQSeries for Sun Solaris V5.0. IX84294 - When MQSeries accessed the client channel table, either as a response to a DEFINE CHANNEL command for a CLNTCONN channel, during crtmqm (when SYSTEM.DEF.CLNTCONN is defined), or when a client tried to access the table, rflOpen could hang. IX86748 - During stress testing, making thousands of updates to an Oracle database and using MQSeries as the syncpoint co-ordinator, on occasions, Oracle returned a -4 return code to MQSeries, and MQSeries generated an FDC (eg. Probe Id TM051000 was produced indicating that a -4 was returned on an xa_prepare call). The FDC produced varied according to the exact phase of processing. IX86843 - Oracle returns -3 errors to MQSeries on occasions when called for various XA calls. XAER_RMERR can denote a serious error with the database so MQSeries marks the transaction as being in error. MQSeries produces an FDC to report this. This is working within the guidelines of the XA specification. However, a -6 return code is also passed back from Oracle (XAER_PROTO) which appears to be a direct consequence of the -3 and this was not handled in a sensible manner by MQSeries. IX87077 - When an MQOPEN is performed for a model queue, MQSeries needs to set the permissions on the new dynamic queue that is created. When permissions on the OAM authorisation files were incorrect, there was a small window in which this MQOPEN could fail and lock the entire object catalogue. As a result, all subsequent MQI calls would hang indefinitely and the queue manager would gradually grind to a halt. IX88079 - MQSeries calls failed with return code 2059 (queue manager not available) and FDC files were created with probe id XC032000 for component xcsPostEventSem. IX89642 - 1. Wrong trace entry for zutEnsureQMDirTree( ) -In trace there was an entry for zutCreateQMDirTree instead of zutEnsureQMDirTree. 2. When shared memory extensions were requested on AIX and if EXTSHM was set there were problems. New function has been added to the trace to indicate whether or not EXTSHM was set. IY00046 - Entering "endmqtrc ?" caused an FDC with probeid XC076001 in component xcsGetMessage and error message AMQ6118. Entering endmqm with LANG=ja also failed with error message AMQ6118. IY01628 - Clients manual (GC33-1632-04) Chapter 12, pp. 140-141 discusses the use of the asterisk (*) with multiple queue managers. Example 1 shows an example of the queue manager name prefixed with an asterisk. This example did not work correctly. IY03058 - A java program put 2 messages to a queue, and then got those same messages by group id under syncpoint. During close, an "object damaged" error occurred for the queue that was used. During the get the second group id was incorrectly matched to the group id of the first group id. On commit, this created a situation that resulted in the queue being marked as damaged. It should be noted that this error condition only occurred when both logical messages and syncpointing were used. IY03663 - MQSeries does not normally chain to previously installed signal handlers, but when the MQS_PASS_ON_SYNC environment variable is set MQSeries should do so for synchronous signals. The synchronous signals MQSeries catches are SIGSEGV, SIGBUS, and SIGFPE, but when MQS_PASS_ON_SYNC was set MQSeries only chained handlers for SIGSEGV and SIGBUS. Chaining of SIGFPE handlers has been added. IY04197 - When an MQSeries V5.1 client connected to an MQSeries V5.0 server, the MQSeries V5.1 client defaulted to a VERSION_3 Message Descriptor but the MQSeries V5.0 server did not understand VERSION_3. The server should have return MQRC_GMO_ERROR to the client so that VERSION_2 is used but the server failed to do this. This only happened with the C++ client code sample for MQGET and applications built from this sample. The C sample works correctly. IY04395 - Free() at SetStringField() resulted in a SIGSEGV in MQSeries Java Bindings. IY05159 - During an MQPUT1 the queue manager sporadically hung with memory problems. Four different FDCs with probe ids AQ082000, AQ047000, XC130003, XC130004 were produced. The setup was server-to-server and the application was a multi-threaded MQSeries application. The FFST probeid AQ047000 resulted in a return code MQRC_UNEXPECTED_ERROR, which caused the object in hand to be marked as damaged. When the problem occurred, the error message AMQ7472 was produced. The object type queue marked as damaged appeared to be a PERMDYN queue that had persistent messages. At that time, MQSeries failed to recover, and so the queue manager shut down to preserve the consistency of messages. IY05586 - In MQSeries for AIX V5.0 with CSD #6 applied, the default queue manager CCSID was set to 819 irrespective of the locale from which you created the queue manager if you tried to use CCSID 932. IY06969 - The fix for APAR IX74360 introduced a new error code MQRC_DBCS_ERROR from an MQGET call. However the channel code was not modified to recognise this as an expected data conversion error and so it did not dump the message to the Dead Letter Queue. The channel code has been corrected to recognise the new error code. IY08957 - CSD #6 for MQSeries V5.0 introduced an error into the code which passes control to message exits. As a result of this error, some of the message exit parameters were incorrectly left blank, which typically caused the exit to malfunction. Some empirical evidence suggested that this problem happened only on channels to OS/390 machines. 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. 21576 - Return code 2195 (unexpected error) was returned from an MQCONN call when /var/mqm was full. This was accompanied by an FDC with probe id XY029001 from component xllOurSocket. 22867 - An attempt to recover a corrupted synchronisation file using rcrmqobj failed with return code 71 because of records with duplicate keys on the corrupted file. 26432.1 - The DCE message exit encrypts the message but not the message header. The message header length used for the encryption offset was incorrect as it did not take into account the extensions to the message header arising as a result of distribution lists and partial put/get. This meant that when it was used with distribution lists or partial put/get, the outbound DCE message exit would encrypt the header extension as well as the data. As the headers are analysed before decryption on the receiving end, an error would arise and the channel would fail. The problem has been fixed by using the new MQCXP HeaderLength field as the offset for encryption. 26594 - The command "runmqlsr -t LU62" with no parameters caused an access violation on MQSeries for Windows NT. 26786 - Incorrect semaphore use in logger data base control block. 27850.1 - Auto definition channel objects, SYSTEM.AUTO.RECEIVER and SYSTEM.AUTO.SVRCONN, were not created when migrating a queue manager from V2 to V5. 28060.1 - A incorrect entry in the MQS.INI file QueueManager stanza which specified "Directort=" instead of "Directory=" caused a CRTMQM command for this Queue Manager to fail. It terminated with the following application error :- crtmqm.exe - Application Error 29015 - The test of the return code from the function WaitForSingleObject in the zslEnqueue component was incorrect in MQSeries for Windows NT V5.0. 29084.1 - It was not possible to change DEFXITQ on an ALTER QMGR command. 29402 - A program that that put an MQCMD_INQUIRE_Q PCF request asking for 2 integer values was causing the command server to trap if the integer list structure length value was too small. 29425 - The queue manager name insert was missing from the AMQ9588 message. 30671 - A SEGV occurred for a fastbound application when MQCONN was not authorised on MQSeries for AIX V5.0 with CSD #3 applied. 31310 - If MQ_CONNECT_TYPE was set to FAST meaning that MQSeries connects directly to the queue manager rather than via an agent process then the recovery of an object appearred to work (in that a 'recovery success message appears) but in fact the object is not recreated. 33007 - Improve performance of Checkpoint processing when using a large unit of work. 33309 - FDC with probe id ZS085002 from component zsllpiCreateQM after crtmqm in MQSeries for OS/2 V5.0. 33840 - The command runmqlsr stopped after probe id XC035007 if too many clients were connected. 33866 - amqcrs6a.exe gave an access violation when no TP name was specified in the parameters for the TP definition. 34005 - Error message AMQ7605 and associated FDC contained incorrect transaction identifier information. 34408 - Renaming a temporary file in component xufOpenIniEdit failed in MQSeries for Windows NT V5.0. 35266 - C++ binding MQTM2 fields were not padded with blanks. 35379 - Incorrect parameter was passed to a trace call in component xstDeleteConnProcessFromList. 35423 - The trace file was being overwritten from the beginning for a new MQCONN, which made problem determination impossible for applications that connect and disconnect multiple times. 35607 - Memory leak in the component xcsterminate for the generic client. 35869 - ImqMessageTracker code relied on child classes to establish pointers. If these pointers were not established (ie. when class is used stand-alone) then code in this class failed. 35874 - ImqMessageTracker was not a true Abstract class. Direct construction compiled, but gave a runtime crash for the copy constructor. 36975 - FDC probe id AT008000 occurred in component atmLockCommitMutMutex. 37692 - Provide new function to handle return code XAER_RMERR from Oracle on xa_commit. 37853 - When a queue manager had been started to create default objects, and other applications tried to connect to the queue manager, the queue manager create was unable to complete, and the applications were unable to run since there were no default objects to act on. Application connections will now be prohibited during queue manager creation. 38291 - xllSpinLockRequest() LastError was missing from the FDC data. 38886 - MQEnvironment.enableTracing(int, OutputStream) only flushed if OutputStream.close() was explicitly called by the application. This was a major handicap for trace, which needs to work and yield readable output even when an application crashes. 38990 - MQSAPH data conversion failed on MQSeries for OS/2 V5.0 with CCSID 964. 39074 - On AIX V4.3, a conversion from an SBCS code page to a DBCS code page that forced the converted data to be truncated produced the return code MQRC_NOT_CONVERTED instead of MQRC_TRUNCATED_MSG_ACCEPTED. 39280 - Using the CFront compiler on HP-UX V11 has revealed some minor inconsistencies in some of the samples. The samples have been improved to avoid these warnings. 39339 - Data conversion problem occurred for formats starting with "MQH". 39522.1 - Issuing strmqm with a non-existent queue manager name caused FDCs with probe ids XC285001 and XC261003. 39598 - Data from a message was not being copied correctly to populate the C++ ImqReferenceHeader, which resulted in data corruption in C++ ImqReferenceHeader::pasteIn. 39626 - Exceptions were not always thrown in bindings if tracing was not turned on. 39686 - Memory leak occurred after a call to xcsGetNTUserSID returned to xcsGetUserQualification failed because the memory allocated before the call was not freed. 40864 - QUEUE_TYPE_ERROR event was not generated. 41007 - When an MQCLOSE failed, the ImqObject was not marked "not open" for some error conditions. 41248 - At QMgr disconnect() and MQQueue close() time uncollected objects were left, which could lead to memory leaks. 41263 - Terminate Private Services if no connections left to subpool. 41266 - Reset AllSubpoolsMutex when terminating private services. 41293 - Recover process shared mutexes more reliably. 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. 41344 - The Java client always used to set a minimum heartbeat interval of 5 minutes, whatever value the SVRCONN tried to set. 41346 - In the Java Bindings, the connection handle was not removed on MQDISC. 42313 - FDC with probeid XC285004 from component xehInitialiseAsySignalHandling. 42824 - Set TCP_NODELAY in the Java Client. 42850 - Multi-threaded application used to hang during MQCONN or MQDISC processing. 43052 - MQSeries incorrectly assumed that a channel with a batchsize of 1 meant that it was talking to an MQSeries Version 1 (EZBridge) product. 43803 - A segv occurred in kpiTickle following an immediate shutdown of a queue manager participating in MTS transactions. 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. 46657 - ziiStopHealthThread incorrectly traced its exit as "zllpMain". 46957 - MQSeries did not allow the use of any values for md.MsgType other than defined MQMT_* values. 47570 - Permissions on crtmqcvx should be 0550. 47588 - Stopping a server channel in force mode stopped the listener. D) PTF U462275 ----------- This is the sixth CSD for IBM MQSeries for Sun Solaris Version 5.0. It is delivered via PTF U462275 for APAR IX85213. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 54. It contains fixes for all the problems listed below: IC22705 - Cumulative maintenance #06 for MQSeries for OS/2 V5.0 IC22706 - Cumulative maintenance #06 for MQSeries for Windows NT V5.0 IX85211 - Cumulative maintenance #06 for MQSeries for AIX V5.0 IX85212 - Cumulative maintenance #06 for MQSeries for HP-UX V5.0 IX85213 - Cumulative maintenance #06 for MQSeries for Sun Solaris V5.0 IC19817 - In the case of an MQSeries Windows 3.1 client, MQSeries did not check that an attempt had been made to put a message that was longer than 64k. As a result the message was transmitted to the attached queue manager but the portion of the message beyond the 64K limit was corrupted on arrival. IC20190 - In a scenario in which one or more domains trust a central administrative domain, even with local mqm groups properly set up, a userid from the central administrative domain could not log on to that domain and have access to the MQSeries queue managers on the other domains. IC20672 - Any Java Applet failed with a return code 2195 when it tried to connect to MQSeries for MVS/ESA V1.2. The message log on MVS showed error message CSQX547E. IC20888 - MQServices contained unused hooks to missing code, particularly in PDInfo.java (which contains the class MQFilter). A number of JVMs convert class files into a native format when they are imported, and so complained when these hooks could not be resolved. For example, the IBM VisualAge C++ compiler reported that the class com.ibm.wmq.amqFastMqsc could not be found. The following classes were unused and have been removed: FFST DumpData MQFilter ProbeId PropertiesFile IC21636 - Provide new function to allow the user to specify the maximum size of error log files (amqerr0x.log) with a new environment variable MQMAXERRORLOGSIZE (the defcult is 256K): MQMAXERRORLOGSIZE=x where x is the approximate file size in bytes. IC21741 - Commands sent to the MQSeries Command Server on the Windows NT platform had different expiry times from commands sent to the MQSeries Command Server on the MVS/ESA platform. New function has been added to allow the use of a new environment variable MQCSVRESPEXPIRY to determine the expiry interval used on the reply messages from request messages put to the command server. Usage is: MQCSVRESPEXPIRY = Request or MQCSVRESPEXPIRY = N, where N is a Long. If the first form is used, the expiry time is copied over from the request (that portion of the expiry time that is left). If the second form is used, the expiry time is set to the specified number of 10ths of a second. IC22148 - After an MQSeries for Windows NT V5.0 sender channel (tcp/ip) to MQSeries for MVS/ESA V1.2 was stopped using the command: STOP CHANNEL MODE(FORCE) the Java Client hung. IC22600 - The common services conversion routine xcsConvertString was not thread-safe, and this resulted in an access violation. IC22604 - The routine, which parses the channel definition file to determine what exits are defined, incorrectly determined that there was a message exit. As a result the userid conversion did not take place. IC22613 - When using the Java client to issue an MQGET call that is coded so that it would not accept truncated messages, the call failed correctly with a return code 2080 (MQRC_TRUNCATED_MSG_FAILED 2080) as expected. After the return code 2080 was received, a call to method GetTotalMessageLength was made to find out what the real length of the message was but this returned with a 0 length. If the original MQGET call was not coded to fail and instead the message was truncated then the call to method GetTotalMessageLength returned an invalid length. If a buffer of that length was then allocated, it was filled with garbage. IC22619 - MQSeries checks queue manager directory structures to ensure that they exist with the proper permissions. It is possible for MQSeries to create an FDC when checking directory existence if the permissions on the directory are not quite enough. This should be construed as a (possibly nonfatal) permissions problem, and does not mean that an essential directory is missing. The FDC specified RC=5 from FindFirstFile with probe id AD024000 from function adiCheckLocation with major error code of xecF_E_UNEXPECTED_SYSTEM_RC. However, an RC=5 implied that access was denied, but the directory existed, so rather than produce an error, OK should be returned. IC22929 - MQSeries queue.get() method call was causing an IndexOutOfBoundsException for messages with a greater size than the default buffer size 4K when using JDK V1.2. This does not happen when using JDK V1.1.5. A return code 2079 is generated (TRUNCATED_MSG_ACCEPTED). IC22966 - After an MQRC_Q_NOT_EMPTY error occurred for the Java client, any subsequent Java client function failed with error MQRC_HOBJ_ERROR because the object handle was marked as unusable . IC23157 - Multithreaded programs on OS/2 using the C++ interface could have driven CPU usage to 100%. This was originally reported with simultaneous MQPUT calls, and synchronising these calls on a mutex prevented the problem. However, doing so forced MQI calls to run essentially single threaded. IC23174 - MQGET response times deteriorated as messages were retrieved from a single queue in a single Unit of Work (UOW). IC23439 - Updating Windows NT to Windows NT SP4 caused MQSeries to begin producing FDCs repeatedly in groups of 3 (AMQ6183, AMQ6177, and AMQ6119) although MQSeries appeared to be running fine while these FDC were being produced. IC23515 - After installing CSD #5 the new ALTER QMGR CCSID(xxxx) command resulted in error message MSGAMQ8101: AMQ8101 Unexpected error (3014). IC23577 - An error occurred while determining the MQMD Version when a Java client was connected to an MQSeries for MVS/ESA Queue Manager. This error resulted in return code 2029 (MQRC_MD_ERROR) on an MQPUT. This problem only occurred with a queue manager on the MVS/ESA platform. All other platforms work correctly. IC23844 - The amqcrsta processes or listener threads serving client connections will wait for more data from clients after a return code 2035 (MQRC_NOT_AUTHORIZED) is generated for an MQCONN call. If the client handled this error by exiting, the result could have been an AMQ9208 message on the server indicating abnormal channel termination. If the client did not exit, the amqcrsta/listener thread would not terminate until such time as the client finally did exit. IC23929 - A bad return code from inet_ntoa (not returning valid pointer) occurred in MQSeries for Windows NT. This caused an access violation error in AMQCCTCA.DLL . IC24194 - When using Publish\Subscribe under MQSeries for Windows NT V5.0, the addition of GroupId=xxx to the Broker stanzi in the qm.ini file resulted in being unable to start the broker. IC24279 - There were some Java client exit problems. 1. Send and receive exits were called during the security flow exchange. 2. During the security flow exchange the flag, that signified a server response was required, was not reset on receipt of said flow. This resulted in an abnormal termination 3. Send and Receive exits were called before they were initialised. IC25301 - FDC probe id XC293008 from component xstThreadDestructor was generated by a multi-threaded fastbound application when a thread was disconnecting. IX74360 - An incorrect character "@@" was added to the end of a string instead of spaces when transferring double byte character set data from MQSeries for MVS/ESA to MQSeries for AIX V5.0 or MQSeries for Sun Solaris V5.0. IX77013 - After upgrading an MQSeries V2 system to an MQSeries V5.0 system and defining new channels and queues, the conversion of the userid being sent to an IMS system did not take place. If definitions that had previously been built on the MQSeries V2 system were used, everything worked, conversion took place and an uppercase userid was sent to IMS. The problem occurred when defining new channels based on the system default channel definition (SYSTEM.DEFAULT.SENDER.CHANNEL), but not when channels were defined based on existing channel definitions. When a new channel is defined, an implicit LIKE SYSTEM.DEFAULT.SENDER.CHANNEL is used unless there is a LIKE explicitly used. The channel code did not process the interface data passed to it correctly for the following command: def chl(x) ..... msgexit(' ') It was processed as if there was a message exit specified. It did not process null entries in the message exit data correctly. IX80758 - MQSeries could have caused a segmentation fault within a threaded application during the shutdown of the MQSeries queue manager. This was occurring during a normal endmqm shutdown. The SEGV occurred within a pthread_mutex_lock which looks like it was destructed (freed) during shutdown, and then was referenced within another application. There was another symptom to this problem. An FDC with XC051099 was raised by ziiHealthThread because xcsTerminate was called twice. IX80827 - A message, which contained Mixedbyte Characters (MBCS), was truncated when sent from MQSeries for AIX V5.0 to MQSeries for MVS/ESA and AIX data conversion was involved, once the amount of data to be transferred exceeded a threshold limit. This limit was determined by the size of a work buffer which has now been increased. IX84674 - On HP-UX V11, MQCONN calls could sometimes fail with a return code 2009 in certain situations. In particular, this was true if the user running the application (such as amqsput) was a member of a group for which no group entry existed, which could be the case if the /etc/group file is damaged or has been updated in error. IX84929 - A multi-threaded C++ application workeds fine most of the time on a single processor box, while it dumped core all the time on a multi-processor box. The problem was found to be that a thread A was in the process of initialising common services while a second thread B was trying to make use of common services before it had become fully available. This was because a data structure is incorrectly set. The problem occurred because a data structure was incorrectly set indicating that common services had already been initialised before that initialisation was complete. IX85285 - The readline() method of com.ibm.mq.MQMessage had poor performance. IX85601 - MQSeries V5.0 could create an FDC with probe XC051099. This FDC listed its component (ie. failing function) as xstDeqPtr when in fact it was UnRegisterProcFromSubpool . IX85738 - FDCs with XY129018 were thrown showing an Invalid argument from shmat in the FDC Comment field. These FDCs started occurring after the Queue Manager was up and running for a while. Once the first FDC had been created, MQSeries started throwing these FDC more frequently until eventually the Queue Manager was hung. Recycling the Queue Manager on a frequent basis avoided the problem of the queue manager getting hung. IX86068 - A multithreaded application was creating many FDCs with the same probe id XC035020 in routine xcsCreateThread on an AIX V4.3.1 system. The FDC had the following additional information: Probe Description :- AMQ6119: An internal MQSeries error has occurred Comment1 :- 'The requested resource is busy' from pthread_cond_destroy. The error resulted in the applications hanging and consuming all system resources. IX86944 - After successfully upgrading MQSeries for AIX V2.2.1 to MQSeries for AIX V5.0, a runmqsc command "dis chs(*)" hung and every subsequent runmqsc command after that would also hang. IX87500 - TopEnd server applications having connectivity to MQSeries and Informix were receiving a SIGSEGV, and were consuming 80 to 90% of CPU. The problem was in the routine ziiXARecover within MQSeries where MQSeries was writing to uninitialized memory within recover when MQSeries was passing back the list of XIDs that should be a part of recover issued by TopEnd. IX87507 - Although error message AMQ9534 was being captured in the trace, this information was not being logged into the error logs for the installation to know the main reason why channels were not being triggered. If the channels went into stopped state then manual intervention was required to start the channel. If an attempt was made to start the channel, that was in stopped state, automatically using the channel initiator, then the rriaddstatusentry function would return rrcE_CHANNEL_DISABLED in the trace and this error, AMQ9534, was not logged in the error logs. IX87956 - When a process that was connected to MQSeries forked, problems may have occurred if the child process exited before starting a new program. When this happened, the connection of the parent process to the queue manager would be modified, resulting either in closed queues or return code 2009 (MQRC_CONNECTION_BROKEN). IX88400 - An MQCONN() from a java servlet sometimes failed with return codes 2059 or 2009. The symptom of this problem was an FDC probeid XC175028 from xllsemreq. There was also an error message stating "resource busy from pthread_cond_destroy". This problem resulted from incorrect recycling of thread control blocks. IX88602 - MQSeries allocated zero-length files in the ./@ipcc/ssem and ./ssem subdirectories of a queue manager (/var/mqm/qmgrs/QMGR), but failed to clean up these files. As a result, MQSeries consumed available inodes in the filesystem. Because it was not possible to determine which files were in use, MQSeries had to be ended before these files could be removed. IX89020 - CRTMQM on MQSeries for HP-UX V5.0 gives 2035 reason code. IX89161 - An application was calling xa_open which failed as the queue manager was unavailable or stopping. The application then retried xa_open which caused a SEGV due to the state MQSeries was in after the failed xa_open. MQSeries now cleans up properly after a failed xa_open so an application can retry safely. IX89207 - When an MQSeries transmission queue had reached a queue full condition, there was a possibility of message loss when the channel initiator process (runmqchi) was running. The message loss could occur with both persistent and non-persistent messages. IX89699 - At the CSD #4 and CSD #5 service levels of MQSeries V5.0, there were cases in which MQSeries servers may fail to byte-swap the completion code and reason code to MQSeries clients. As a result, clients received return codes which appeared to be large negative numbers, and so the clients typically ended abnormally. This problem existed with both big-endian and little-endian servers to little-endian and big-endian clients respectively. IY00242 - An FDC with Probe id XC161003 showed an MQSeries failure to be in a pthread_setspecific call. It did not show the error number actually received from the call, but instead it showed an error 0 occurring, which was not very helpful in investigating the problem. The FDC information has now been improved. IY01208 - After applying CSD #4 and/or CSD #5, SIGALRM could not be used, because the option MQS_SIGNAL_OVERRIDE did not work. The save/restore signal handlers regressed in CSD #4 and CSD #5. IY01533 - An MQDISC call hung in xcsRequestMutexSem and a SIGSEGV occurred in MQDISC after an application had processed considerable message throughput. The problem did not occur if the application only had very little message throughput to process. IY01723 - A memory leak occurred in MQSeries for AIX V5.0 when running on AIX V4.21 or earlier. The error is also exposed when running MQLSX, although the error is in the MQSeries base code and not in MQSeries Link LotusScript Extension (MQLSX). IY02506 - Error message AMQ7472 was recorded intermittently in the queue manager error logs and an FDC is created with probe id XC130004. The problem occurred as a result of a damaged scratchpad and resulted in the queue manager hanging. IY02543 - If a queue was inquired for current depth (curdepth) after a queue manager had been shutdown abnormally and then restarted, then the queue manager would check for consistency since the queue depth on the object did not match with the depth in log. In doing this the queue manager would open the log file and a number of other files, and it was not closing these files. 25053 - New function to improve performance and eliminate FDC probe ids on an MQPUT for segmented persistent messages. 25690 - FDC probe id XC274010 occurred in an application due to a Windows NT return code 1723 from GetUserName. The return code 1723 indicated RPC_S_SERVER_TOO_BUSY. The application received a return code 2059 from MQCONN. 25973 - FDC probe id XY232052 in trchkgt due to a Windows NT return code 6 (invalid handle) from WriteFile. 26012 - New function to increase the OS/2 font size for DBCS languages in a Java client applet. 26100 - An OS/2 java client could not connect to an MQSeries for OS/2 V5.0 server when there was a SVRCONN channel defined such that it had a security exit. An attempt to connect to the server received the following message on the listener: AMQ9503: Channel negotiation failed The java client session failed with the following message: RC=2195 and message MQJE056: Initial negotiation failure 26643 - Message data corrupted for chained reference messages on OS/2. This problem caused a reference message to fail when: 1. The source and target machines were different CCSIDs or Encodings 2. A channel exit (amqsxrm) ignored the reference message because it was not the expected object type. 26733 - Java bindings MQQueue::get failed with return code MQRC_TARGET_INTEGER_ENC_ERROR. 26740 - Java bindings MQQueue::get did not preserve GMO options when message was truncated. 27883 - The channel code did not allow for expansion when converting data from ASCII to euc. 27894.1 - Continual FDC probe ids HL061054 from component sqlpgifl occurred in the logger following a disk full condition when using linear logging. 28007 - The XA transaction process recovery function failed to operate correctly if the queue manager was running in fast-path mode. 28031m - Thread left after failed connect in C++ bindings. 28414 - An unexpected error 545284457 could occur in strmqm after logoff in the following scenario involving two users who had MQM and Administrator authority when running on Windows NT Version 3.51: 1. Log on as the first user. Create and start a queue manager. 2. Log off without issuing endmqm. 3. Log on as the second user. Issuing strmqm gives AMQ8101: Unexpected error 545284457 Once this problem had occurred then the following actions taken to attempt to correct the situation had unexpected results: 1. endmqm gave 'no queue manager available'. 2. dltmqm gave 'queue manager still running' (or equivalent). 3. Logging back on as the first user meant that the queue manager could be restarted, most of the time, but the subsequent behaviour might then have been unpredictable. A full restart of the machine was recommended if you got into this scenario, but this scenario could always be avoided if you terminated the queue manager properly with endmqm before logging off. NOTE: ===== 1. This behaviour was not seen if the queue manager was ended properly with endmqm. 2. This behaviour was not seen if the queue manager was running with Windows NT V4.0. 28727 - The list of MQAI constants in MQException.java was incomplete, and two entries were incorrect. Value 2302 was stated as MQRC_ITEM_NOT_ALTERABLE when it should have been MQRC_SYSTEM_ITEM_NOT_ALTERABLE. Value 2311 was stated as MQRC_DATA_TRUNCATED, when it should have been MQRC_STRING_TRUNCATED. 28768 - When using MQSeries for Windows NT V5.0, there used to be a message stating that there were existing processes still running if the listener was still running when an attempt was made to start a queue manager. This message no longer occurred and the queue manager just restarted, but this caused later problems. An FDC probe id XC000002 occurred when the incoming channel ended. 28942 - The java bindings and java client code routine convertDateandtime in MQMD.java had code of the form: retval = new GregorianCalendar(year-1900, ....) This would have potentially caused problems after year 2000 as year 100 was not a leap year but year 2000 is a leap year. 29260 - Trace enhancement. 29822 - Get with wait caused intense JVM CPU activity. 30961 - On MQSeries for HP-UX V5.0 and MQSeries for Sun Solaris V5.0, when the common services routines failed to create an extent due to ENOMEM or ENOSPC then an FFST was taken and the response was returned as "stop". On MQSeries for Windows NT the response was returned as "no memory" and no FFST was taken. The MQSeries API translated "stop" to MQRC_UNEXPECTED_ERROR while "no memory" translated to MQRC_STORAGE_NOT_AVAILABLE. The latter is the correct response in these situations. 30971.2 - FDC probe id AT031004 occurred when modifying the scratchpad even with the fix for APAR IC22460 applied. 31171.1 - A large memory leak occurred on MQSeries for AIX V5.0 when running a threaded MQSeries application under AIX V4.2 that did a large number of MQCONN-MQDISC cycles. The memory leak was smaller when run under AIX V4.3. 31800.1 - Add new function to allow terminating of a previous channel instance. 31814 - Silent install problem with MQSeries Client for Windows 95 V5.0 caused by the use of NT instead of 95 in the SETUP.ISS file. 32560 - Trace enhancement. 32659 - MQSeries for AIX V5.0 channel was connected to MQSeries for Windows V2.0 and appeared to be connected but was unusable. An attempt to MQPUT messages to MQSeries for Windows V2.0 failed immediately with error message: AMQ9520: Channel not defined remotely 32842 - When the Unix exception handler received a synchronous signal (segv), it did not correctly detect that the synchronous signal was caused by the MQSeries code. 32941 - Trap occurred on MQSeries for Windows NT V5.0 when loading and unloading the mqm.dll executable. 33014 - The heartbeat response sent by the Java client was invalid. On an MQSeries V5.0 server, this resulted in the following error message from the listener: AMQ9208: Error on receive from host '......' . 33115 - The listener died after starting lots of channels. Actually it stopped and the exit handler was called but nothing was logged and nothing appeared in the trace concerning the failure. 33511 - AN MQSeries and Database application issued multiple MQPUT calls and a database update within a single unit of work (UOW). When the MQSeries log became full an MQPUT failed with return code 2003 (MQRC_BACKED_OUT). When this happened, the recommended action for an application was to issue an MQBACK to back out changes. However following the MQPUT failure, the MQBACK failed with return code 2195 (UNEXPECTED_ERROR). It appeared that the connection to the queue manager has been lost since a subsequent MQBEGIN call failed with return code 2009. 33523 - Add new function to provide better diagnostic facilities in amqxcs2.ddl in MQSeries for Windows NT V5.0. 34131 - Listener took too long to start a conversation on MQSeries for AIX V5.0. 34176 - Return code 2195 was received on the OS/2 C++ bindings Begin() call and it was accompanied by an MQSeries internal error. This problem was caused by the implementation of xcsGetUniqueTag in MQSeries for OS/2 V5.0. 34189 - FDC probe id XC027001 (invalid handle) from component xcsRequestMutexSem occurred when two processes tried to access the status table at the same time. 34227 - C++ bindings ImqDeadLetterHeader failed to initialise dead letter reason code on construction. 34237.1 - If the agent Health Thread terminated abnormally due to a failure of xcsInitialize the thread failed to post the ziiHealthCheckReady event semaphore. Since the parent agent thread waits indefinitely for this event the agent hung. 34424 - C++ vector-delete error for compiled DLLs using the Microsoft C++ compiler as described in the Microsoft Knowledge Base article Q121216. 34493 - Memory leak in MQSeries for AIX V5.0. 34515 - Trace associated with MQCONN on a client gave no indication as to which queue manager the MQCONN call was trying to connect. 34556 - Add new function to allow queue and log files to be created on remote file systems on an MQSeries for HP-UX V5.0 system. 34647 - xcsGetgrgid incorrectly returned OK if group not found. 34762 - If listeners were started on an MQSeries for Windows NT V5.0 queue manager using the SCM and a suitable command file, they were not killed when endmqlsr was called, and had to be terminated manually. 35011 - The C++ bindings put method was inconsistent in returning the the correct return code to indicate whether the put was successful or unsuccessful. On occasions it would indicate the wrong result. 35359.1 - A semaphore leak occurred on MQSeries for AIX V5.0 because the health thread did not appear to use the thread count. 35756 - Return code MQRC_BUFFER_ERROR occurred on a 4 byte message MQPUT with a non-aligned buffer. 35997 - Queue manager would not restart if the listeners were running. 36189 - A channel locked up on MQSeries for AIX V5.0 and used large amounts of CPU time without making any apparent progress. Attempting to run RUNMQSC at the same time as the channel lock looking for status on that channel caused RUNMQSC to seize up. 36220 - The routine to obtain queue manager details failed to use a name padded with blanks. 36337 - The function xstThreadDestructor() was shown in trace and FFST's as being xcsInitGlobalSecurityData(). This was incorrect as the function that was actually being called was an MQSeries unix function and the function being displayed was an MQSeries for Windows NT function! 36511 - Add new function to provide support for UDP on MQSeries for AIX V5.0. 36537 - Default configuration failed to start during install. The default queue manager was created but failed to start. FDC probe id XY128004 was created by component xst AllocBlockInExtent. 36656 - Add new function to allow the error log (amqerr0x.log) directory to be changed on the MQSeries Client for Windows 95 V5.0. 36742 - Unnecessary referencing to the Java Trace class was made every time NativeTrace was substantiated. The code has been optimised by doing this only once. 36771 - The Java client could not handle messages larger than 4MB. 36805 - If an IndexOutofBoundsException is thrown in the Java bindings, the message buffer was cleared. In the case where ACCEPT_TRUNCATED_ MESSAGE had been specified, the truncated message was lost. 36816 - Add new function to check for any MQSeries shared memory when doing on uninstall on MQSeries for Sun Solaris V5.0, and to stop the uninstall if there is any MQSeries shared memory still in use. Failure to delete MQSeries shared memory before applying maintenance can result in errors when trying to restart the MQSeries queue manager. 36829 - FDC probe id AT001001 from component atmShutdown starting a queue manager that is in the process of stopping. 36868 - On MQSeries for Sun Solaris V5.0, the CCSID was not always set correctly for a few of the new code pages provided to support the Euro. 36989 - The 'putApplicationType' field was not being set when sending a mess using the java bindings. 37015.01- The putDateTime field was incorrect in the java bindings. 37023 - When using MQSeries Publish/Subscribe on MQSeries for AIX V5.0 or MQSeries for HP-UX V5.0, clrmqbrk -c failed intermittently and no error reason was given. 37037 - Add new environment variables MQ_COMMS_IP_SDRBUF and MQ_COMMS_IP_RCVBUF to allow the hard-coded TCP buffer sizes to be overridden, if necessary. 37198 - Function names were incorrect in the trace for functions xstRegisterConnectiontoSet, xstUnregisterConnectionfromSet, and xstThreadDestructor for MQSeries for HP-UX V5.0 and MQSeries for Sun Solaris V5.0. 37235 - FDC probe id UN125040 from amqfxcba in component faiGetNext before rollback due to full log condition in MQSeries Publish/Subscribe. 37348 - Add an environment variable MQ_REPORT_CHANNEL_PID to enable the optional display of the process number in the channel started message in the error log when a channel starts. The default is not to display this information for compatibility with previous service levels. 37356 - Enable the use of MQSeries Publish/Subscribe on MQSeries for OS/2 V5.0. 37561 - The MQSeries Publish/Subscribe metatopic authority check on subscribing to AllIdentities did not work. 37733 - The MQSeries Publish/Subscribe amqfcxba process died with FDC probe id XC006001. 37734 - Remove the CSD #5 enhancement 34523 because of the performance implications of the current implementation. 37773 - The java bindings MQMI_NONE/MQCI_NONE constants could become corrupted. 37811 - FDC probe id PU240000 occurred when running MQSeries Publish/Subscribe on MQSeries for Windows NT V5.0 when registering for the StreamSupport topic. 37864 - The amqsres sample ALWAYS deregisters its subscription on exit. If the broker was brought down while both it and one or more match simulators were running, then publications would build up on the stream queue. The amqsres sample would eventually time-out when it did not receive anything from the broker. In its termination it would send in a DeregisterSubscriber command to the broker. When the broker was restarted then typically the DeregisterSubscribe would be processed before the publications on the stream queue causing it to miss these events when it was restarted. 37935 - An FFST with probe id XY180003 could sometimes occur seen when running a multi-threaded client in a stress environment. This resulted from an xecL_E_NOT_OWNER return code from component xcsReleaseThreadMutexSem. 38003 - The MQSeries Publish/Subscribe broker did not deregister subscribers immediately if the users' authorisation had been revoked. 38051 - There was a leak of Thread Mutex semaphores. Component cciTcpAllocConv created a Thread Mutex semaphore but never destroyed it. 38142 - Normally for MQSeries, when a user is not authorised to issue a control command, the error message AMQ7077 (You are not authorized to perform the requested operation) is produced. However when an MQSeries Publish/Subscribe broker control command failed due to insufficient authority, the message AMQ8101 (Unexpected error) was produced. 38324 - On MQSeries Publish/Subscribe endmqm (-c) did not stop a broker queue manager. 38356 - The amsputc sample for the MQSeries Client for DOS V5.0 failed with return code 2059 when run, even though the MQSERVER environment variable and the server were setup correctly. 38367 - Requester-Sender(callback) channel pairing was failing sometimes. 38395 - On the MQSeries unix platforms it was possible for a thread to call xcsTerminate without having done an xcsInitialize. 38439.1 - Channels not permitted to retry could end up being disabled. 38489 - Process amqfcxba gave address exception on startup on MQSeries Publish/Subscribe when run on MQSeries for Windows NT V5.0. 38643 - MQCONNX call for threaded client gave core dump. 38841.1 - Replace the C++ bindings mutex locking mechanism with Common Services mutex locking for the MQSeries V5.0 unix products. 38934 - On MQSeries for HP-UX V5.0, some of the data conversion between Euro ccsid (923) and EBCDIC code pages failed with data conversion not supported. 38948 - Could not run MQSeries applications under Transaction Server for AIX V4.2 when run on AIX V4.3. 38991 - When running MQSeries Publish/Subscribe, clrmqbrk, dltmqbrk crash if not a member of group mqm. 39009 - Ensure that the synchronous signal handler is registered by applications during MQCONN initialisation. 39467 - During stress testing a multithreaded client application gave core dump in function ccxReceive and FDC probe id XC130006 from component xehExceptionHandler. 39527 - FDC probe id XC089004 from endmqm -c occurred in component xcsKillProgram. 39715 - Issuing "strmqtrc ?" on an MQSeries Client for Windows NT V5.0 displayed usage information, but it also produced FDC probe id XC076001 from component xcsGetMessage. 39745.1 - Improve contested spinlock performance on MQSeries for HP-UX V5.0 39773 - FDC probe id RM15500 from component ConvertSyncRecord occurred. 40086 - Fix minor errors in the runmqsc alt qmgr command. Using the command without any additional parameters gave the wrong error message. The CCSID parameter was not displayed in the usage display for the command. 40250 - Add additional FDCs for future diagnostic purposes. 40348 - Trace enhancement for C++ bindings. 40351 - Scratchpad recovery did not work always for scratchpads which have been damaged or deleted. 40395 - Improve ccxSetTime to specify a minimum timeout period. E) PTF U461609 ----------- This is the fifth CSD for IBM MQSeries for Sun Solaris Version 5.0. It is delivered via PTF U461609 for APAR IX80910. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 19. It contains fixes for all the problems listed below: IC21588 - Cumulative maintenance #05 for MQSeries for OS/2 V5.0 IC21589 - Cumulative maintenance #05 for MQSeries for Windows NT V5.0 IX80908 - Cumulative maintenance #05 for MQSeries for AIX V5.0 IX80909 - Cumulative maintenance #05 for MQSeries for HP-UX V5.0 IX80910 - Cumulative maintenance #05 for MQSeries for Sun Solaris V5.0 IC19511 - Synchronisation problems between start of execution controller and application MQCONN causing access violation on the application side due to incompletely initialised shared memory. IC21009 - The ENDMQLSR command could not be included in the command file that the SCMMQM command uses. Additional function has been added to allow the ENDMQLSR, STRMQTRC, and ENDMQTRC commands to be used in the command file that the SCMMQM command uses. IC21627 - On MQSeries for Windows NT V5.0, users were not able to access MQSeries unless they were in the local administrators group. All other users who tried to access the Queue Manager, even if they were members of the local mqm group, failed with return code 2059 (queue manager not available). The problem was caused by the event that is created by the execution controller to indicate that it is ready to accept incoming requests. The event was created with 'default' security attributes, which meant it could be accessed by Owner and Administrators only. This problem was fixed by changing the event creation to give 'global' security attributes instead of 'default' security attributes. IX70206 - Although it was possible to start the SNDR channel from AIX to MVS, the start of the SNDR channel from MVS to AIX failed with error message msgCSQK540A and sense code 084C0000 (TP name not found) when using the default MQSeries for AIX V5.0 queue manager. However if you specified -m queue-manager-name as a command line parameter in the tpname profile, the error did not occur. However, if you are using the default queue manager, the -m parameter should not be required. IX71656 - No error number was output with FDC probe id HL061202. IX74392 - Return code 71 (unexpected error) was sometimes returned for a temporary object when running the command 'rcdmqimg -t * *'. But according to the System Management Guide the command rcdmqimg should give an rc=135 when rcdmqimg is run on a temporary object. IX80423 - A program did a get with wait forever. After this program had been ended with a ctrl c, an attempt to restart the program failed with return code 2042 (object in use) and the program could not be restarted unless the queue manager was recycled. IX83066 - Probe id XC285004 in component XEHINITIALISEASYSIGNALHANDLING. IX83820 - The MQSeries channel code, which writes to a TCP/IP socket, tests for errors (rc<0 from write or send), but does not test for zero return codes (rc=0 from write or send). This means that an error like ECONNRESET is overlooked and the next write or send call to the socket generates SIGPIPE, which invokes the application signal handler. SIGPIPE is ignored and the return code of the write or send call is set to negative, with errno=EPIPE. The result is the same in that the conversation is no longer valid, but this takes longer to fail and MQSeries reports EPIPE rather than the original (and more informative) error (eg ECONNRESET). IX84178 - sigsegv in xehTrapSignalsF and ffst with probe id XC161003. IX84212 - APAR IC20841 modified MQSeries channels to use non-blocking TCP/IP calls to avoid hanging, but this change was not implemented for CLNTCONN/SVRCONN channels. This APAR is to make the same change for CLNTCONN/SVRCONN channels in order to ensure prompt error detection in the client environment. IX86008 - A multi-threaded application could not make a second MQCONN() call. The first MQCONN() succeeded, but the second MQCONN() failed with signal 11, segmentation violation. IX86222 - CRTMQM on MQSeries for HP-UX V5.0 gives 2035 reason code. IX86421 - On MQseries for Sun Solaris V5.0, endmqm -i or strmqm for a non-existent queue manager fail with a bus error. 27132 - Provide the prerequisite base code changes necessary to support the new MQSeries SupportPac MA0C 'MQSeries Publish/Subscribe'. This SupportPac runs on the AIX, HP-UX, Sun Solaris and Windows NT platforms. 27926m.7- Allow queue manager CCSID to be changed by runmqsc. 27364 - There is no runtime check on an MQCONNX fast bound connection. It should not be possible for a fast bound application to issue an MQCONNX call to a non-runtime enabled system from a non-runtime application. 28239 - If MQCMIT or MQBACK (or MQDISC) is the next MQI call used by a program using MQ XA coordination whilst the queue manager is stopping (endmqm -i), then the unit of work is left hanging since the MQSeries agent cannot terminate the global unit of work before the shutdown is complete. 28624 - If you end a queue manager but leave a process such as 'runmqsc' running and then attempt to delete the queue manager, you get an ffst with probeid XY051140 and error message AMQ6118. A second attempt to delete the queue manager will hang. 28656 - FFST on strmqm when root not in mqm group. 30849 - A single FFST with probe id XC167015 is produced at endmqm time if a multi-threaded application has been run. 31343 - Running dmpmqlog on Windows NT leaves a shared memory server running after dmpmqlog has ended and the dmpmqlog command cannot be run again until that shared memory has gone. 31421 - After installing a new level of the HP-UX operating system without reinstalling MQSeries, the file /usr/lib/nls/iconv/config.iconv has information about conversion tables that have been added by IBM. This information is wiped out by the HP-UX upgrade. This can result in data conversion errors such as when attempting to use AMQSPUTC.EXE to put from a Windows NT client to an HP-UX server. 32337 - It is fairly common to open a queue using MQOO_INPUT_EXCLUSIVE to ensure that no other application inteferes with an application. If an application opens with MQOO_INPUT_EXCLUSIVE and does not close the queue until it has completed then the application should be sure that no untoward inteference can occur on the queue. There is a very small window where this is not the case, if the application issues an MQDISC call and then the routine kpiMQDISC closes all open queues and then commits any current transaction. If a fast bound application or agent should fail while an MQDISC is in progress then it is possible for a new instance of the application to open the queue for input exclusive before the previous instance has committed/backed out the messages. MQDISC should backout/commit before closing the open queues. 32554 - Trigger monitor not started by SCMMQM. 33071 - Typing error on line 213 in Sun Solaris README file concerning the compilation of DCE applications. 33886 - CCSID problems. 34104 - crtmqm fails with reason code 2035 on MQSeries for HP-UX V5.0. 34219 - Incorrect output when FDC XC267009 is produced. 34452 - Add extra trace entries. 34523 - If an MQBACK or MQCMIT call from a program using MQ XA coordination fails with return code 2009 (MQRC_CONNECTION_BROKEN) (for example, due to endmqm -i or endmqm -p) then xa_end is issued, but xa_rollback or xa_prepare is not issued. The database maintains locks on the table involved, and any other applications that try to do any SQL work stop, waiting for the lock to be released. The lock has to be released by hand, because, when the Queue Manager restarts, it has correctly forgotten about the completed global unit of work, because it did not reach the prepared state. 35149 - dltmqm gives 'Segmentation fault' on finishing. When issuing dltmqm with a valid, stopped queue manager (so the command actually does something) a coredump is produced after the queue manager has been deleted. The delete appears to work properly - the QM directory is removed and entries are deleted from the top-level mqs.ini file. 35301.1 - Add additional information to FFSTs in xstInitialise. 35361 - Some FFSTs reported that a pthread_cond_wait failed when it was really a pthread_cond_timedwait that failed. 35365 - When a threaded client application was run, calls to MQCONN sometimes resulted in a return code of 2059. This appeared to be due to a problem with the srvconn channel caused by a 10058 return code from the recv call. 35383 - Return code xecL_E_NOT_OWNER was returned from xcsReleaseThreadMutexSem during an MQCONN call and an FFST with probe id XY180004 was generated. 35435 - The SaveChannelStatus process has been modified to save the channel status in SYSTEM.CHANNEL.SYNCQ. This queue used to be used for all channel sychronisation, but it was removed for MQSeries V5. However it has been reinstated to provide a much simpler mechanism for channel status. 36554 - When MQSeries commands try to display a message on the screen, core dumps, FFSTs or bus errors sometimes occur. This happens mainly when the message is due to an invalid or non-existent queue manager name being used. Another symptom is on some NLS languages the message is not converted from the message catalog CCSID to the locale CCSID so the message is garbled. 36652 - Error in CRTMQM when terminating Common Services. 36986 - endmqm fails on MQSeries for HP-UX V5.0 on HP-UX V10 with FDC probe id XY079022. Error message AMQ6119 is also produced because of an invalid argument from shmat. F) PTF U458801 ----------- This is the fourth CSD for IBM MQSeries for Sun Solaris Version 5.0. It is delivered via PTF U458801 for APAR IX80905. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 37. It contains fixes for all the problems listed below: IC21583 - Cumulative maintenance #04 for MQSeries for OS/2 V5.0 IC21584 - Cumulative maintenance #04 for MQSeries for Windows NT V5.0 IX80903 - Cumulative maintenance #04 for MQSeries for AIX V5.0 IX80904 - Cumulative maintenance #04 for MQSeries for HP-UX V5.0 IX80905 - Cumulative maintenance #04 for MQSeries for Sun Solaris V5.0 IC19477 - EXEC CICS SYNCPOINT causes an access violation in a CICS MQSeries transaction. IC19827 - Report options MQRO_PAN and MQRO_NAN resulted in a warning being generated with completion code MQCC_WARNING and reason MQRC_UNKNOWN_REPORT_OPTION even though the message was processed successfully. IC20284 - When MQSeries for Windows NT V5.0 was started as a Service under the SYSTEM id, it did not always start properly. On most machines this appeareds to work with no problems; however, on some machines it appeared to have authorisation problems at all times. IC20551 - Memory leak in AMQZLAA0 agent process. IC20755 - It was possible to predefine the Windows NT group mqm as 'Mqm' (note the use of upper case) with MQSeries for Windows NT V2.0, but after migrating to MQSeries for Windows NT V5.0 this group is no longer recognized as the group mqm. IC20841 - MQSeries channels over TCP/IP were difficult to handle when network glitches occurred. If the TCP/IP connection was broken when an MQSeries channel was up, it was not at all uncommon for the receiving end of the channel to hang indefinitely in a TCP/IP receive call. When connectivity was restored, the sender channel was generally unable to reconnect to the hanging receiver. In order to restart the channel, operator intervention was required to issue a STOP CHANNEL(xxx) MODE(FORCE) against the receiver. Once this was done, the sending side could reconnect. This APAR adds support for non-blocking receive calls. Rather than using recv on a blocking socket, which causes problems in the case of some network errors resulting in hung threads/processes, this APAR adds function to allow the use of non-blocking sockets with select() rather than recv(). IC20925 - This APAR adds function to improve the performance MQSeries for Windows NT V5.0 in a Windows NT domain environment, particularly when MQSeries is started as a service via scmmqm. IC21283 - Memory leak when using PCF escape commands. IC21446 - When an attempt was made to do an MQGET for a specific message(by message id) that was not expired but where there were expired messages on the queue, the MQGET failed with return code 2033 (no message available) on the first attempt but the second attempt to get the same message was successful. There was no problem if there were no expired messages on the queue. IC21912 - RCRMQOBJ failed to recover queues which contain mixed persistent/non-persistent messages. IC22086 - Receiver channel cannot be stopped with mode force from within RUNMQSC. IC22172 - MQSeries for Windows NT V5.0 has a memory leak in the agent process amqzlaa0.exe. The memory that was leaking is 28 bytes which represented an Windows NT security identifier returned by the LookupAccountName call in function xcsGetNTUserSID. IC22460 - Channels receiving many instances of RC2072 MQRC_SYNCPOINT_NOT_AVAILABLE and many FFSTs with probe id AT031004 and error message AMQ9510. IC22676 - Provide support for the Euro currency in MQSeries for OS/2 V5.0. IC22678 - Provide support for the Euro currency in MQSeries for Windows NT V5.0. IX69304 - A channel using the TCP/IP transport may show more than one connection to the same IP address. This can be as a result of the connection going down abnormally, and the channel never realizing this fact. When the cause of the connection termination is corrected, and the channel brought back up, a new connection is established, but the old one is still left out there. The new connection starts out with sequence number of 1, thus also producing an out of sequence condition. The problem is the same as that reported by IX59439, but that APAR did not cater for requestors. The original fix needs to be enhanced to apply to requestors. IX69517 - A non-MQSeries application spawned multiple threads to do an MQCONN, MQOPEN, and MQGET with WAIT. When the Queue Manager was brought down, one of the threads abended after an FDC was logged indicating AMQ6125 (An internal MQSeries error has occurred). IX71890 - On most none EBCDIC platforms MQSeries V5.0 currently converts the EBCDIC NL to ASCII LF as most ASCII code pages do not have a character assigned to NL. This ensures consistency across platforms and code pages, as the platform behaviour of NL conversion is variable. Unfortunately some ASCII codepages assign X'85' to NL and some customers would like the option to convert EBCDIC NL to ASCII X'85'. This APAR provides the ability to select this alternative conversion. IX73799 - Defining an MQSeries process with APPLTYPE(WINDOWSNT) results in a syntax error. IX74386 - RC 2009 MQRC CONNECTION BROKEN on an MQGET call when the Windows NT client code is running with Sun Solaris V5.0 server. IX77306 - Thread termination errors. IX79120 - Message conversion problem with byte swapping (Big Endian) between Windows NT client and Sun Solaris server. If a version 2 MQMD message was retrieved by a version 1 MQMD then MQCCSI_Q_MGR was put in the CCSID field of the MQMD. This was contrary to the Application Programming Reference manual which states that MQCCSI_Q_MGR is never returned by the MQGET call. IX81353 - When using DB2/6000 and MQSeries V5.0 with XAD into TXSeries CICS/6000 V4.2, a transaction is run that is designed to make an intentional abend call (ABENDASRA with SIGSEGV). This abend is handled by the transaction. But if MQSeries is used in XAD, signal handling is mislead by the MQSeries signal handler, and the CICS Region goes down with ABENDU1672. IX83343 - AMQ9526 sequence error for requestor channel after it has been restarted. This problem is only for REQUESTOR channels when started at the requestor end. This would not occur if started at the SERVER end. IX83506 - MQCLOSE or MQDISC hung for a multi-threaded application. IX83608 - When an MQSeries TCP/IP receiver channel (AMQCRSTA process) is shutting down, it generates an FDC with probe XC130003 and hangs indefinitely. The hanging AMQCRSTA causes the entire queue manager to hang, and only by finding and killing the proper AMQCRSTA can the hang be ended. IX83678 - Error message AMQ6118 for client trigger monitor. The trigger monitor continues working but every time a message arrives on the triggered queue a failure occurs. IX84139 - Channel agent process eat up 4K bytes of memory continuously until it is terminated with error message AMQ6090. IX84432 - 2056 MQRC_Q_SPACE_NOT_AVAILABLE followed by a loss of messages from the transmission queue after the transmission queue became full, and the queue was closed and re-opened. The in memory information on the queue fell out of synchronisation with the queue when the queue was reopened. This caused the lost messages. IX84923 - MQI calls hung in XLLSPINLOCKREQUEST. IX85126 - Provide support for the Euro currency in MQSeries for AIX V5.0. IX85127 - Provide support for the Euro currency in MQSeries for HP-UX V5.0. IX85128 - Provide support for the Euro currency in MQSeries for Sun Solaris V5.0. 26456 - Incorrect data in MQCD structure during message exit on AIX. 26627 - The Message Channel Agent message exit and message retry exit do not return the correct header length for the new set of message headers, including MQHMDE. 27026 - Logical misordering of segments. 27141 - If only the Windows NT client is installed, then the DLL imqb23in.dll is not installed. 27262 - After a DB2 error -913 (DEADLOCK) occurred, an MQSeries internal error occurred if the subsequent XA_ROLLBACK was not issued from the same DB2 client context as the SQL transaction. An FFST AMQ7605 with probe id TM050000 occurred at the same time. 27926m.3- This CSD enables support for the Euro. For the latest information please refer to INFO APAR II11367. 28151 - Killing an agent did not result in a connection broken response. Applications in a get wait at the time the agent died would wait forever. 28244 - An incorrect table index calculation could occur when converting between some code pages if the index value went above X'80'. This resulted in abnormal termination or incorrect conversion. 28679 - Invoking data conversion exit caused a memory leak on AIX. 28786 - An MQSeries V5.0 C++ client could not communicate with an MQSeries for ESA server. The C++ binding for a V5.0 client exploits the full API for MQSeries V5.0, which includes new calls such as MQCONNX, and new versions of data structures such as MQOD_VERSION_2. Therefore an MQSeries V5.0 C++ client could only successfully communicate with an MQSeries V5.0 server. Logic has been added to the C++ binding to allow the use of MQSeries for ESA from a client if the MQSeries V5.0 level of MQI function is not actually exploited by the application. 28896 - When the last application thread disconnected from MQSeries the function pthread_detach was called for the current thread. This resulted in the thread storage being reclaimed as soon as the thread terminated and prevented the application from collecting the termination status of a thread it had created. If the application called pthread_join, to collect the final status, followed by pthread_detach, to release the storage, then for the last thread to disconnect from MQSeries both calls would fail with ESRCH. It is the responsibility of the creator of the thread ( in this case the application ) to free the storage. 28910.1 - Thread destructor mechanism does not work correctly on Unix platforms. 29017 - Fix minor errors in the MQSeries V5.0 C++ support. 29019 - Message Ids were not available after distribution list messages were written to a queue by MQPUT or MQPUT1. 29200 - C++ samples failed on Windows NT. 29337 - When converting between EBCDIC codepages and the last character was SO, MQSeries still tried to read the next byte to see if it was SI, and then wrote to the output buffer one character beyond the correct length. 29417 - The execution controller was not always handling the return code xecL_W_SEM_OWNER_DIED correctly. 29478 - If the C++ client bindings used an empty buffer, the return code was 6116 when a return code of 0 is expected. The MQRC_ZERO_LENGTH error was unnecessarily harsh and has been removed. 29511 - Fix minor error in the MQSeries V5.0 C++ support. 29525 - ImqHeader::setXxx parameter defaults were missing in subclass declarations. 29551 - Access violation on any MQSeries command on a Windows NT V3.5.1 Domain Controller. The domain string is NULL and MQSeries does not check for it. 29663 - In the C++ bindings, default open options for a distibution list were MQOO_INQUIRE which is invalid. The default has been changed to MQOO_OUTPUT. 29712 - In the C++ bindings, 'min' and 'max' should not be defined in public headers. 30042 - The C++ bindings did not cope with return code MQRC_MD_ERROR. 30172 - In the C++ client bindings, the imqwrld sample failed with an application error. 30302 - In the C++ bindings, the imqwrld and imqsput samples failed with return code 2186 (MQRC_GMO_ERROR). 30368 - AIX agent reported probe id XC027016 in function xcsRequestMutexSem. 30700 - SIGSEGV in xcsRequestMutexSem followed by a hang in the execution controller. 30787 - The Object Authorisation Manager (OAM) was not thread safe on the Sun Solaris platform. 30839 - When running a fast bound multi-threaded stress test several applications were recorded with termination status of 11. 30844 - FDC with probe id XC027000 from fast bound application when locking commit mutex. 30962 - Errors associated with probe 42 in xcsRequestMutexSem. 30971 - FFST in Queue Manager relating to the amqzlaa0 process. 31218 - xcsIsDomainController returns incorrect results on BDC machines. 31362 - Allow maintenance to OS/2 V5 clients installed either from the Client CD-ROM or from a file downloaded from the web. 31362.1 - Allow maintenance to Windows NT V5 clients installed either from the Client CD-ROM or from a file downloaded from the web. 31633 - Rename ImqImsBridgeHeader to ImqIMSBridgeHeader. 31747 - MQPMR records should only be allocated for distribution lists. MQPMR records should not be allocated by the ImqQueue class during an MQPUT. 32103 - Queue manager failure with FDC probe id XC130004 from xehExceptionHandler. 32419 - When MQSeries issues an 'nsleep' system call (to delay processing while something else happens), it issues it with the 'time remaining' parameter set to NULL. On AIX, this causes a trap and error recovery within the kernel. This has been changed so that a valid address for this parameter is now used. 32980 - The ImqQueue::setDistributionListReference method did not ensure that the distribution list was closed before modifying the list of queues. 33326 - The ImqProcess methods to obtain values from a process definition returned null terminated strings. The corresponding ImqTrigger methods to set values in a trigger message would not fill up the fields in the MQTM structure with trailing blanks as required by the MQTM structure. So the MQTMC2 structure generated by the trigger monitor contained null terminated strings which was also invalid. 33655 - Unauthorised client access resulted in an FDC with probe id XY180002 from xcsReleaseThreadMutexSem. 34311 - In a stress test, a segv in xusGetLineType occurred following an FDC with probe id XC130003. 34472 - Handle leak from AMQXCS2.DLL caused by the creation of a register entry handle that was never released. G) PTF U454878 ----------- This is the third CSD for IBM MQSeries for Sun Solaris Version 5.0. It is delivered via PTF U454878 for APAR IX75679. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 40. It contains fixes for all the problems listed below: IC20196 - Cumulative maintenance #03 for MQSeries for OS/2 V5.0 IC20197 - Cumulative maintenance #03 for MQSeries for Windows NT V5.0 IX75677 - Cumulative maintenance #03 for MQSeries for AIX V5.0 IX75678 - Cumulative maintenance #03 for MQSeries for HP-UX V5.0 IX75679 - Cumulative maintenance #03 for MQSeries for Sun Solaris V5.0 IC18421 - If you omit the ChannelInstanceAttrs (MQCFIL) parameter from the Inquire Channel Status PCF command, then the command should also default to "All attributes" (MQIACF_ALL) and the response from the command should contain both the attribute parameters that are always returned together with all the attribute parameters that are only returned if requested. However the Inquire Channel Status command only returned the 4 attribute parameters that are always returned (ChannelName, XmitQName, ConnectionName, and ChannelInstanceType) in this situation. IC19619 - If MQSeries was configured as a Windows NT service and the list of commands contained runmqlsr, then the runmqlsr process was still active after the execution of the command NET STOP IBMMQSERIES. Trying to use the command endmqlsr to stop the remaining process failed with the message that there were no running listeners for the specified queue manager unless the userid specified for the MQSeries Service was the same as the userid that executed the endmqlsr command. The default userid SYSTEM was not usable. When configuring the MQSeries Service, you had to specify a specific userid and only that userid could then shut down the MQSeries Service completely including the runmqlsr process. This restriction has been removed. IC19625 - When an application issued MQGET calls to get messages via the Java client, it could fail with conversion problems on the first message. This was a result of the fact that the MD used on the MQGET got corrupted if the initial buffer for the message was not large enough. As a result, the CCSID specified in the MD was incorrect. This was a problem specifically with the Java client, not with the server queue manager code. IC19725 - When the Server service (which has its own icon in Control Panel) was not started on Windows NT, crtmqm failed with AMQ8101 rc=2195. Also on machines running Windows NT V3.51, strmqtrc failed with AMQ7047. IC19773 - In some circumstances MQSeries for Windows NT failed to delete the memory/handles associated with a temporary dynamic queue that was now defunct. IC19799 - After installing MQSeries for Windows NT V5.0 to migrate from MQSeries for Windows NT V2.0, error AMQ6182 occurred when trying to create a queue manager using the crtmqm command. This was followed by error message AMQ8101. The problem was in the conversion of the version 2 file ccsid.tbl in \mqm\conv\table to a version 5 format. A new file ccsid.bkp is provided with the correct format so that any local changes to ccsid.tbl are not overwritten. Copy any local changes to ccsid.bkp before replacing the incorrect ccsid.tbl file. IC19946 - Persistent/syncpoint messages were lost if log records were not all written during queue manager restart due to previous failure. Missing log records have been recreated from the softlog, but were not flagged as persistent, so were not hardened to queue file during re-start. IC19981 - An access violation was produced when running runmqsc from MQSeries for Windows NT V5.0 to MQSeries for MVS/ESA if the returned data exceeded 255 characters. For example the command 'dis q(QUEUE)' displayed correct information, but 'dis q(QUEUE) all' produced an access violation. IC19995 - When defining a Sender Channel on MQSeries for OS/2 that contained the LU62 Userid and LU62 password information, both these values were being scrambled instead of just the password value. The net result was that the userid that was being passed up to MVS at channel bind time, was not being recognised. IC20019 - When an application wanted MQSeries to convert messages from codepage 850 to 1252 only the first string was correct. The conversion routine was using the length field, llzz, from the first string for all subsequent strings. In some cases the length field for these strings were converted too and thereby corrupted. IC20077 - When using linear logging, the queue manager hung up without an error message when the new log file was created. IC20188 - If the MQSeries service started before the Server service was fully up, it received Windows NT error 2114 (NERR_ServerNotStarted). Now it will retry until the Server service is fully up. IC20209 - Time spent in a RCRMQOBJ was too long. The CPU went to 100% usage for amqzlaa0.exe and the operation could take a long time (5 minutes) during which time no other activity was taking place on the machine. IC20210 - If a channel went down while a file was being transmitted, the receiving message exit may have received duplicate segments for the segment being processed at the time of the failure and all subseqent segments. amqsxrma allowed for this and ignored the data in the duplicate segments. However, if the last segment was duplicated, the data in the message was ignored but the reference message was returned again to the MCA, and so got put to the destination queue again. IC20406 - The MQSeries service was not always created during the install of MQSeries for Windows NT V5.0 if the product had previously been uninstalled. After the first uninstall and install the service was not created. After the second uninstall and install the service was created. The problem occurred after an uninstall using mquninst.exe. IC20492 - When a channel breaks, the SHORTRTS and LONGRTS counters are decremented. When it recovers the counters should be reset. This was not happening with fast channels "NPMSPEED(FAST)". IC20535 - Locked message was seen by another process due to an invalid browse unlock. IC20540 - Access violation or other errors occurred when scmmqm was run twice to add the same entry to the AutoStart registry key for the NT service control manager. IC20577 - When MQSeries is to coordinate DB2 and MQSeries calls error message AMQ8146 occurred when trying to start the queue manager. IC20584 - Channels came up in stopped state rather than inactive after "endmqm -i" necessitating that they be started manually since they are in stopped status. Channels came up in the proper state of inactive if endmqm is issued without the -i option. IX73678 - MQSeries can sometimes send 32764 bytes which is one more byte than is allowed for an SNA mapped conversation. IX73906 - When an MQSeries Queue Manager was created and the -ll option was specified on the crtmqm command in order to use linear logging, error messages AMQ7467 and AMQ7468 occurred when the queue manager was started. After deleting the queue manager and creating a new one, the error messages AMQ7467 and AMQ7468 still occurred. IX74025 - Provide support for Japanese locale ja_JP.PCK (943) on MQSeries for Sun Solaris V5.0. IX74893 - Problems with semaphores under high stress conditions. IX75033 - Changes to signal handling. IX75080 - The rcdmqimg command abended with an AMQ7047 error when it tried to take a media image of the syncfile. IX75102 - The agent for an application ended with no warnings whatsoever during an MQGET. As a result, the connection to the queue manager was terminated, and the application received a return code 2009 (MQRC_CONNECTION_BROKEN). IX75289 - Default data conversion of the header part does not work between MQSeries for AIX V5.0 (CCSID 850) and MQSeries for AIX V2 (CCSID 932). IX75540 - MQSeries V2.2.1 introduced validity checking of input. After migrating to MQSeries V5.0, a zero data length in a security exit resulted in error message AMQ9189 because the data length set by the exit was not greater than zero. This did not occur with MQSeries V2. IX76293 - When a channel suffers some sort of error and the channel goes into retry, the reason code passed back was 8 (stopped_error) instead of the correct reason code 9 (stopped_retry). IX76297 - When running on a smp machine, occasionally the logger process disappeared and unexpected results occurred, for example log full. An FFST Halt6109 with probe id XC175049 occurred at the same time. IX77064 - When a version 5 MQSeries client is connected to a version 2.x MQSeries server properly, the client was able to issue all MQI calls successfully. However, when the client issued an MQDISC call, a 2009 (MQRC_CONNECTION_BROKEN) return code was issued. IX77529 - Provide MQSeries V5 support for the HP-UX V11 platform. IX77719 - The process amqcrsta on MQSeries for HP-UX V5.0 was started each time the SDR channel on MVS was started or restarted, but it did not terminate resulting in many useless processes. IX78918 - "dis chs(*) saved" gave invalid SAVED channel status data. 25061 - Use updated AIX thread-safe user/password system calls. 25478 - Probe XC028018 xecL_E_NOT_OWNER in xcsReleaseMutexSem. 25532 - Probe XY132012 from xstCreateExtent. 25646 - dcesetkt script generated SYS0002 error. 26408.3 - Access violation in runmqlsr on NT. 26551 - Semaphore leak on AIX 26965 - The file "imqwm35i.dll" will be added to the shipped and installed files for MQSeries for Windows NT V5.0. The existing shipped files "imq{b|c|s}23in.dll" will be reengineered so that they use the new file "imqwm35i.dll". Before reengineering, they required the file "cppwm35i.dll" which is shipped with VisualAge C++ for Windows and is not and cannot be redistributed using the original name. The new file "imqwm35i.dll" is the MQSeries redistributed version of "cppwm35i.dll". 27008 - Queue CURDEPTH attribute was reported incorrectly after queue manager was restarted. 27312 - Additional trace points have been added. 27498 - Performance enhancements for MQSeries for Windows NT V5.0. 27507 - Minor corrections to some code conversion tables, particularly for code pages 1252 and 1275. 27508 - MQSeries for AIX V5.0 version number was wrong in FFST log. 27552 - MQSeries for Sun Solaris V5.0 DCE postinstallation script used wrong directory. 27666 - NetServerGetInfo call failed if user was not Administrator. 27668.1 - Reference Message exit did not ignore report messages and treated them as reference messages. 27751 - OS/2 high memory supprt. 27767 - Conversion in Korean code pages on MQSeries for AIX V5.0 used wrong tables when using code page 5029. 27899.1 - Data Conversion problem between MQSeries for AIX V5.0 and a Windows NT Client 27933 - DCE multithreading fails on MQSeries for Sun Solaris V5.0. 27934 - MQGMO_CONVERT failed for Dead Letter Queue Header. 27960 - Damaged queue occurred after rcdmqimg followed a put and a get to the queue. 28002 - segv from strmqtrc and endmqtrc on MQSeries for Sun Solaris V5.0. 28004 - XC161004 from xppInitialize during MQCONN for Sun Solaris V5.0. 28005 - MQCONN returns 2002 (ALREADY_CONNECTED) on second thread for MQseries for Sun Solaris V5.0. 28030 - Probe XY035011 xecL_E_NOT_OWNER in xllSpinLock Release. 28055 - Probe XC027021 in function xcsRequestMutexSem on MQSeries for Sun Solaris V5.0. 28080 - Need to trace KeepAlive active on receiver channels. 28097 - Return code 2059 from MQCONN after probe XC271004 during crtmqm. 28141 - Turn on Threaded Semaphore Request support in MQSeries for Sun Solaris V5.0. 28158 - Unexpected error if xa_recover returned -3 during start-up. 28263 - Connecting a queue manager to another queue manager failed to connect with return code 2035 after connecting 60 channels. 28272 - Provide capacity enhancements to exploit threads through the use of multi-threaded agents. 28284 - No signal handling thread started on MQSeries for Sun Solaris V5.0. 28319.1 - Module tracing got turned off. 28323 - Provide Sybase XA support on MQSeries for Sun Solaris V5.0. 28331 - Sybase returns RMERR instead of RMFAIL which caused MQSeries to forget the transaction. 28357 - kqiputmessagesegments unlocks the queue handle a second time when rc=arcW_OBJECT_WOUNDED. 28437 - Provide database coordination with multi-threaded agents. 28519 - Probe id AD023000 was generated from function adiDeleteFile. This was caused by a bad return code (Rc=32 from DeleteFile). 28528 - Improvement in performance of the security model in MQSeries for Windows NT V5.0. 28578 - Create DCE linked sample programs for MQSeries for Sun Solaris V5.0. 28623 - zstxaend failed to interpret return code correctly. 28783 - Probe XC130001 from application due to SEGV in xihQueryThreadEntry. 28971 - If an application built for the non-DCE Sun Solaris environment was run with MQSeries installed for DCE then MQCONN failed with 2059, although client linked applications worked correctly. 28982 - runmqchi failed after more than 60 Channels were opened. 29005 - Fail over did not occur properly on AIX and HP machines. 29235 - runmqlsr trapped in lpiSPIAlter if MQDISC was called from within a channel exit. 29305 - MQSeries for Windows NT V5.0 failed under stress with MQCMIT failures with a 2195 (Unexpected error) from MQCMIT followed by 2101 (damaged object) from MQOPEN. 29320 - Uninstall was allowed on MQSeries for Windows NT V5.0 while the queue manager was running. If this is done then the uninstall does not rollback all the updated parts. 29322 - Probe ZL043023 from zlaMainThread - xecL_W_SEM_OWNER_DIED 29335 - Probe XC032005 from xcsPostEventSem - xecL_W_SEM_OWNER_DIED 29413 - endmqlsr did not end the listener on MQSeries for OS/2 V5.0 and MQSeries for Windows NT V5.0 if the listener was started by using 'runmqlsr -t tcp' and letting it default to the default queue manager. Attempts to stop the listener failed with the message that no MQSeries listeners were found for the given Queue Manager. If a queue manager name was specified when starting the listener then it could be stopped successfully. 29448 - dspmqtrn trapped on MQSeries for Windows NT V5.0 and MQSeries for OS/2 V5.0. 29603 - FFST from xehStopAsySignalMonitor on MQSeries for Sun Solaris V5.0 with error message AMQ6118 and probe id XC271003 in xehStopAsySignalMonitor - xecF_E_UNEXPECTED_RC. 29810 - FFST during rcdmqimg (aqqFlushDeferred) on MQSeries for OS/2 V5.0 with error message AMQ6119 and probe id XC130031 in xehExceptionHandler - xecF_E_UNEXPECTED_SYSTEM_RC. 29998 - Modify key generation for HP-UX ServiceGuard. H) PTF U452979 ----------- This is the second CSD for IBM MQSeries for Sun Solaris Version 5.0. It is delivered via PTF U452979 for APAR IX72755. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 21. It contains fixes for all the problems listed below: IC19407 - Cumulative maintenance #02 for MQSeries for OS/2 V5.0 IC19408 - Cumulative maintenance #02 for MQSeries for Windows NT V5.0 IX72751 - Cumulative maintenance #02 for MQSeries for AIX V5.0 IX72754 - Cumulative maintenance #02 for MQSeries for HP-UX V5.0 IX72755 - Cumulative maintenance #02 for MQSeries for Sun Solaris V5.0 IC18094 - MQSERIES sends the first block of data twice when using NETBIOS as the transport layer. IC18122 - MQGET WITH WAIT, specifying a wait interval will not return correctly if the system clock is changed during the wait. IC18970 - Issuing ENDMQM -I, with RUNMQDLQ started in background, causes exception access violation (0XC0000005), address: 0X1011EACB. IC19214 - CRTMQM fails with probeid ZF047002, RC234 from NETUSERGETLOCALGROUPS. IC19440 - Error message MQRC_BUFFER_ERROR (2004) occurred when the buffer MQSGET0.C was changed to global static and the buffer area size was set to approximately 32KB. The error did not occur if the buffer was changed to a local variable or the buffer size was reduced considerably (for example 1KB). IC19518 - MSGID not passed by Command Server. IC19519 - Comments in startup file gave errors. IC19529 - Connection to an MQSeries for Windows NT V5.0 queue manager from a client takes 30-40 seconds. IC19620 - rcrmqobj deletes a queue object and reports an unexpected error. IC19738 - When shutting down the queue manager in the case where an ENDMQM -I or -P is issued, an MQINQ request by the command server, for the MQSeries queue SYSTEM.ADMIN.COMMAND.QUEUE, failed with reason code 2009 for an MQRC_CONNECTION_BROKEN problem. The command server's MQGET call will receive MQRC_Q_MGR_STOPPING. In this case, the error is not handled and this means the MQINQ call will fail because the connection is gone. Two additional MQ calls are made but they are not reported. These calls result in MQRC_CONNECTION_BROKEN. IX61526 - MQSERIES Windows client channel security exit gets parameters in the reverse order on entry to the exit routine (MQENTRY) resulting in a violation detection or other errors. IX65409 - RUNMQSC does not always create non-persistent messages. When using RUNMQSC to do remote administration, it creates a temporary dynamic queue for the reply message. It does not set the persistence in the Message Descriptor, so if the transmission queue is defined with DEFPSIST=YES, an error is reported because the reply message, which will be persistent, cannot be placed on a temporary dynamic queue. IX71107 - If an AIX process does an MQCONN call and later forks a process. This child process will later have problems doing its own MQCONN call or MQDISC call. The MQCONN call and/or MQDISC call may hang up completely. In some cases, an MQCONN call may just fail, and the child can retry, and eventually get a queue manager handle, but will later hang in an MQDISC call. IX71870 - MQSERIES hangs after getting probeid XY030012. IX72034 - The wrong value is returned in the "PutApplType" field of the Message Descriptor. The value 6 (UNIX) is returned when the message is created on a local queue on an OpenVMS - AXP system. According to documentation, the value 12 (OpenVMS) is expected. IX72987 - During normal channel processing, the channel initiator keeps open recently used queue handles in an incore table in case they can be reused. During the scan of this incore table, it was possible for a table entry to be passed when deciding that its slot could be reused by another queue. This may lead to an incore table entry being reused without the corresponding queue being closed. IX73170 - When attempting to integrate CICS for AIX V2.1.1 with MQSeries for AIX V5.0, the CICS region fails to start with abend U8005. 25319 - Execution controller gets stuck in a fork on AIX. 25616 - MQSC syntax diagram inserts not translated for the German language. 25684 - Access violation on terminating the CICS trigger monitor. 25965 - Handle/storage leakage in long running Windows NT applications. 25994 - The installation instructions for installing an MQSeries client on a Sun Solaris system are incorrect. 26014.1 - Conversion from CCSID 183 to CCSID 1386 fails on MQSeries for Windows NT V5.0 and MQSeries for Sun Solaris V5.0. 26174.1 - An endmqm -i request will fail to terminate a queue manager if the thread count is invalid, which could be caused by a ctrl-c or similar in the middle of an MQCONN call. However in those circumstances, an endmqm -p request would work. 26296 - Channel may fail to recover after TCP/IP error on channel link with remote Queue Manager. 26383 - The endmqm command issues probe XC089004 and fails to stop the MQSeries SNA Transaction Program if an SNA channel is up and the MQSeries Transaction Program was dynamically loaded by IBM Communications Server for Windows NT as and when incoming SNA conversation requests arrive. 26404 - Channels will not restart when a queue manager is restarted several minutes later after it was stopped by an endmqm -i request on a loaded system. This occurred after applications running on the other queue managers have encountered queue full conditions on the transmission queues following the shutdown, and before the restart attempt. 26431 - Damaged queues occurred when rcdmqimg was run after a message backout. 26433 - rcdmqimg fails with an unexpected error message and after this MESSAGE, the queue manager ends. An FDC is also generated with probe-ID XC130031. 26477 - SNA sessions are cancelled when the listener goes down because of a timeout. 26486.1 - Errors in the MQSeries Internet Gateway online documentation HTML pages. 26489 - Remove message AMQ5748, which was introduced by the fix for defect IC17970. 26563 - Once and only Once integrity failure under stress conditions when it is possible for the receiving channel to commit messages and yet tell the sending channel that it didn't. The consequence of this is that channels will complain of sequence number mis-matches on restart and will duplicate messages if a RESET CHANNEL is issued. 26606 - Error message AMQ6118 is incorrectly produced after an endmqm -i request on MQSeries for AIX V5.0. 26607 - Error message AMQ6118 is incorrectly produced after the router was shutdown. 26635 - A repetitive loop of an MQCONN call followed by an MQDISC call requires more and more memory on MQSeries for Windows NT V5.0. 26664 - Simplify the Unix generic code by removing the Solaris specific code from routines that are not used by MQSeries for Sun Solaris V5.0. 26669 - This defect addresses a problem with the format of the mqhsap header message descriptor being set to MQHSAP. 26701 - On the MQ Uninstaller application on MQSeries for Windows NT, the 'F1' help is enabled but if you press F1 you are told that d:\mqm\bin\mquninst.hlp doesn't exist. F1 help should be disabled if there are no online help files. 26714 - The probe FDC ZT027001 is generated after a strmqm request on MQSeries for Windows NT V5.0 if you have installed and then removed CSD01, and selected uninstall executables only to keep the queue manager. 26745 - FDC probe ZF047002 occurred when lots of users defined. 26750 - FDC probe AT055013 occurred. 26751 - FDC probe AT074001 occurred. 26853.1 - On OS/2 the MQSeries APPC implementation does not use the CPI-C interface. The implementation does not allow the OS/2 client to select the Already_Verified option. 26979 - Allow additional parameters of userid and password on the end of the MQSERVER environment variable for LU62 definitions. 27019 - amqrcdfa.c contains an illegal character. 27028 - rcrmqobj deletes a queue object and reports an unexpected error. 27073 - Additional trace function to tie up application and agent processes. 27096 - Enable an optional bind to restrict usage for TCP/IP to a certain range of ports. 27126 - Client connection to a queue manager takes a long time. 27127 - A strmqm request with a -? or /? causes an exception. 27137 - Changing the service control manager to allow comments in the command file. 27368 - When a queue manager is ended using the -i option the command server, AMQPCSEA.EXE will receive the MQRC_Q_MGR_STOPPING return code in the MQGET call. If it does, it doesn't treat this as a stopping case and continues to issue an MQINQ call which will then fail and report the 8504 error. 27592 - Error message EPFIE132 occurs when installing and applying maintenance to an MQSeries for OS/2 Warp component after you have already installed and applied this maintenance to other MQSeries for OS/2 Warp components. 27627 - A dltmqm request with a -? or /? causes an exception. 27916 - Install/uninstall problems fixed by service upgrade to installation and maintenance utility. I) PTF U451855 ----------- This is the first CSD for IBM MQSeries for Sun Solaris Version 5.0. It is delivered via PTF U451855 for APAR IX70899. This CSD is distributed for all National Language versions using the same CD-ROM as the CSD for the English version. Number of APARs in CSD = 1. It contains fixes for all the problems listed below: IX70899 - Cumulative Maintenance #01 for IBM MQSeries for Sun Solaris V5.0 25804 - Resource problems when running large numbers of fast bound (trusted) applications. 25830 - Access violation occurred during an MQCONN request. 26041 - A log full condition may occur if a transaction remains indoubt for as long as it takes to wrap the log. The indoubt condition may be caused by a channel ending abnormally. 26640 - Messages lost under stress.