A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

Closed as program error.

Error description

ACE and EB control blocks remain allocated after the context
associated with them have already ended. The orphaned control
blocks are allocated from subpools of storage used by WebSphere
MQ and so can still be freed if the QMGR is shutdown.

Local fix

Recycle queue manager

Problem summary

****************************************************************
* USERS AFFECTED: All users of WebSphere MQ for z/OS Version 7 *
* Release 0 Modification 1 and Release 1 *
* Modification 0. *
****************************************************************
* PROBLEM DESCRIPTION: After applying PTF UK79818 (for Version *
* 701) or UK81712 (for Version 710), a *
* leak of ACE/EB control blocks can occur *
* when an application task using WMQ *
* private contexts ends without first *
* ending all the contexts. This can *
* happen due to a normal end without *
* appropriate cleanup, or due to an *
* application abend. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
Various changes were made in PM64200 (for V701) and PM67446 (for
V710), corresponding to the above PTFs, helping to ensure that
RRS threads do not go through deferred end-of-task if
end-context has taken place or deferred end-context has been
scheduled (or vice versa). This code added extra serialization
using the CCBDENDS flag to ensure that ACE/EBs were not cleaned
up by one process while queued for cleanup by another.
Following APAR PM64200 and PM67446 a problem can be seen during
an abend or a normal end (without ending the context) of an
application that creates a private context. In this case a
private context is scheduled for deferred end-context
processing, which sets CCBDENDS to ensure that no-one else tries
to deal with it. When RRS is called to end the context during
processing of the deferred end-context, RRS drives CSQ3RRSX exit
for CTX_END_CONTEXT_EXIT. CSQ3RRSX finds that CCBDENDS is set
on and does not free the ACE/EB for the context and the ACE/EB
gets orphaned.

Problem conclusion

The code has been changed to reset CCBDENDS prior to calling RRS
to end-context.
010Y
100Y
CSQMCTXE