A fix is available
APAR status
Closed as program error.
Error description
MQ java 64 bit application has many threads waiting. The failing thread is trying to do an MQPUT of a 94MB message. An malloc request of 31 bit storage fails probably because there is insufficient contiguous storage available to provide a 94MB block. CSQBLB16 sets MQCC_FAILED and MQRC_ADAPTER_STORAGE_SHORTAGE but the logic is trying to access the 31 bit storage. This results in an 0c4.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of WebSphere MQ for z/OS Version 7 * * Release 0 Modification 1 and Release 1 * * Modification 0 using 64 bit WebSphere MQ * * applications. * **************************************************************** * PROBLEM DESCRIPTION: When an application running in a 64-bit * * mode performs an API call to a local * * queue manager, if storage below the bar * * is low, the application may abend 0C4. * **************************************************************** * RECOMMENDATION: * **************************************************************** An 0C4 can occur when a malloc for a buffer at the start of WebSphere MQ API function fails due to a lack of free storage. In this case, the malloc will set the buffer pointer to null. A post-allocation check detects this failure and sets MQCC_FAILED and MQRC_ADAPTER_STORAGE_SHORTAGE. However, following this, processing then continues. Instead of returning from the MQGET with the failure, and attempting to write to the location set in the pointer, the code tries to write to the buffer and this leads to an abend 0C4. The post-allocation check should return the above MQCC and MQRC response in this situation. The Information Center needs to be updated with regard to the above MQCC and MQRC response when making an MQ API call from an application running in 64-bit mode.
Problem conclusion
The code has been changed to return from the API call if we are returned a null pointer by the malloc. Information Center topic fm13210_ WebSphere MQ, Messages, API completion and reason codes, Reason codes, Reason code list, 2127 (084F) (RC2127): MQRC_ADAPTER_STORAGE_SHORTAGE "On an MQCONN call, the adapter was unable to acquire storage." Should be amended to say, "During an MQCONN call (or any MQ API call when called from an application running in 64 bit mode), the adapter was unable to acquire storage." Also, the following paragraph should be added to the Programmer response. "For applications running in 64 bit mode, MQ API calls must allocate storage to copy the call parameters into the 31 bit region of the application address space. Check that sufficient 31 bit storage is available for the parameters of any current MQ API calls." 010Y 100Y CSQBLB16
Temporary fix
********* * HIPER * *********
Comments
APAR Information
APAR number
PM89237
Reported component name
WMQ Z/OS V7
Reported component ID
5655R3600
Reported release
010
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2013-05-17
Closed date
2013-05-28
Last modified date
2013-08-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK94602 UK94603
Modules/Macros
CSQBLB16
Fix information
Fixed component name
WMQ Z/OS V7
Fixed component ID
5655R3600
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
02 August 2013