A fix is available
APAR status
Closed as program error.
Error description
A shared queue is defined with a custom capexpry value on a qmgr at an earlier release than V9.4 A putting application connects to a V9.4 queue manager and puts to the shared queue. The message is put to the queue with the application's expiry value even if the custom capexpry setting specifies a lower value. This issue can occur either, if the queue is defined while the qmgr is at an earlier release and then the qmgr gets migrated to V9.4. In a mixed qsg, if the queue is defined on a qmgr at an earlier release and is then put to via another qmgr at V9.4.
Local fix
If you define or alter a shared queue with a custom capexpry value on a V9.4 qmgr, it works correctly when accessed from either a qmgr at V9.4 or one at an earlier release. This means that the problem can be resolved (even in a mixed level QSG) by issuing an an alter command on a V9.4 qmgr specifying the existing custom value: ALTER QLOCAL(xxx) QSGDISP(SHARED) CUSTOM('CAPEXPRY(nnn)') If all the qmgrs have been migrated to V9.4 then a better approach would be to remove the custom value and set the new CAPEXPRY attribute.
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM MQ for z/OS Version 9 * * Release 4 Modification 0 * **************************************************************** * PROBLEM DESCRIPTION: A queue defined at IBM MQ for z/OS * * version 9.3.0 or earlier with a * * CAPEXPRY value set, would apply the * * CAPEXPRY value to messages put to the * * queue via a version 9.3.0 queue * * manager, but not to messages put to the * * queue from a 9.4.0 queue manager. This * * can occur as a result of migrating from * * MQ for z/OS version 9.3.0 to version * * 9.4.0 or, when in a mixed level QSG * * with queue managers at version 9.4.0 or * * later and version 9.3.0 or earlier. * **************************************************************** The logic that sets the CAPEXPRY attribute did not update the resolved CAPEXPRY value when reading a shared queue definition with a custom CUSTOM attribute set. This occurred because it assumed the CAPEXPRY value had already been assigned prior to being written. However, for queue definitions created before version 9.3.0, CAPEXPRY is not set. As a result, the value is overlooked on queue managers from version 9.4.0 onwards.
Problem conclusion
The code has been updated to detect when an object's first-class CAPEXPRY value is invalid and has a resolved expiry value set, indicating it was defined on a pre-9.4 queue manager. In such cases, the resolved expiry value is now correctly derived from the custom CAPEXPRY attribute.
Temporary fix
Comments
APAR Information
APAR number
PH65546
Reported component name
IBM MQ Z/OS V9
Reported component ID
5655MQ900
Reported release
400
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2025-03-05
Closed date
2025-07-03
Last modified date
2025-08-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UO03936
Modules/Macros
CSQEOPEN CSQERCAT CSQMREF2
Fix information
Fixed component name
IBM MQ Z/OS V9
Fixed component ID
5655MQ900
Applicable component levels
R400 PSY UO03936
UP25/07/12 P F507 ¢
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":"BU048","label":"IBM Software"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"400","Line of Business":{"code":"LOB77","label":"Automation Platform"}}]
Document Information
Modified date:
02 August 2025