IBM Support

PH53907: PARAMETER VALIDATION OF CSQ4BVJ1 TO PREVENT UNEXPECTED BEHAVIOUR

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A batch job parm should have been as follows:
    
    //MQGET  EXEC PGM=CSQ4BVJ1,REGION=1024K,
    //  PARM=('QMGR,queue name,000001,B,N')
    
    However, accidentally the 3rd parameter for the number of
    messages was not passed:
    
    //MQGET  EXEC PGM=CSQ4BVJ1,REGION=1024K,
    //  PARM=('QMGR,queue name,B,N')
    
    This resulted in an unexpected destructive get of 2 messages:
    
    PARAMETERS PASSED :
    
      QMGR       - QMGR
      QNAME      - queue name
      NUMMSGS    - 000000002
      GET        - N
      SYNCPOINT  - N
    
    The "B" character in EBCDIC is C2.
    
    Because the number of messages field interprets whatever that
    was entered as number, the second nibble was assumed as the
    amount of the messages to get.
    
    So "2" was used as the number of messages to get.
    
    "N" for GET just means what was intendeded for the (N)O
    SYNCPOINT.
    
    In practice, the code of CSQ4BVJ1 checks if "B" (BROWSE-GET)
    was selected and if so, MQGMO-BROWSE-FIRST is added to
    MQGMO-OPTIONS.
    
    If not, destructive get is assumed.
    
    This APAR intends to improve the parameter validation of
    CSQ4BVJ1 to prevent this unexpected behaviour.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of IBM MQ for z/OS Version 9       *
    *                 Release 1 Modification 0,                    *
    *                 Release 2 Modification 0 and                 *
    *                 Release 3 Modification 0.                    *
    ****************************************************************
    * PROBLEM DESCRIPTION: When using the CSQ4BVJ1 COBOL getting   *
    *                      sample, it is possible to               *
    *                      unintentionally destructively get       *
    *                      messages if incorrect parameters are    *
    *                      passed to the program.                  *
    ****************************************************************
    The code that handles receiving the input parameters was not
    performing any validation on the provided input parameter
    string.
    

Problem conclusion

  • The code has been changed to perform some validation on the
    input parameter string so messages can't be unintentionally
    destructively got.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH53907

  • Reported component name

    IBM MQ Z/OS V9

  • Reported component ID

    5655MQ900

  • Reported release

    100

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-04-13

  • Closed date

    2023-08-01

  • Last modified date

    2023-09-01

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI92986 UI92987 UI92988

Modules/Macros

  • CSQ4BCJ1 CSQ4BVJ1
    

Fix information

  • Fixed component name

    IBM MQ Z/OS V9

  • Fixed component ID

    5655MQ900

Applicable component levels

  • R100 PSY UI92988

       UP23/08/19 P F308

  • R200 PSY UI92987

       UP23/08/19 P F308

  • R300 PSY UI92986

       UP23/08/19 P F308

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":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"100","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
01 September 2023