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