IBM Support

PK78852: ABENDS0C4 AT CQSMOV00 DURING CQS STARTUP.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • ABENDS0C4 during CQS startup by an invalid address in R4.
    The abend PSW points to the CLC instruction after the label
    FOR32000 in CQSMOV00.
    .
    Dump analysis indicates that we are running in a loop with a
    counter in R3. The code logic in CQSMOV00 is to use the value
    in LAAREADCNT as a loop counter to process the data objects.
    The loop counter is decremented at the end of the loop and
    is checked for zero to break out of the loop.
    The problem in this case is that we have a negative value
    x'FFFF221F' in the loop counter, R3. this should never happen.
    .
    Here is the abend symptom:
    BPE0006I CQS  RQOT TCB ABEND S0C4, THD=UNLK DIAG=4004000184
    BPE0006I MODULE ID = CQSMOV00+0140+2003 EP = 22A8A230
    BPE0006I PSW = 077C3000 A2A8BF32    OFFSET = 00001D02
    BPE0006I R0-3   00000001 00000000 22F43EC0 FFFF221F
    BPE0006I R4-7   23433000 23433040 23245F18 22A71AA8
    BPE0006I R8-11  00000005 233E5190 23245F60 22A12730
    BPE0006I R12-15 22A8BB42 232EE3A0 A2A8BEE2 00000000
    .
    The purpose of this APAR is to tolerate the zero count returned
    from the IXLLSTM READ_LIST call, prevent the unexpected loop
    and report the problem when it reoccurs.
    .
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All IMS V11 users of CQS.                    *
    ****************************************************************
    * PROBLEM DESCRIPTION: During a CQS startup with the use of    *
    *                      resource structure, CQS terminated with *
    *                      an abend 0C4 in CQSMOV00 module.        *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    During IMS shared queues registration and connection with CQS,
    CQS receives a data unlock request to move messages from the
    lock queue back to the original queue in order to make the
    messages available to other clients in the IMSplex.
    
    The CQS unlock request processor first determines the number of
    entries to be unlocked in the lock queue by issuing a sysplex
    service IXLLSTM REQUEST=READ_LIST on the lock queue.  The read
    was successful with zero return and reason codes, but returned
    zero count of entries unexpectedly.
    
    The count of read entries is used as a maximum number of
    iterations of a loop process and decremented to zero until all
    entries are processed.  The initial zero count made the loop
    counter negative and caused an infinite loop until the CQS
    startup failed with an abend 0C4:
    
    CQS  RQOT TCB ABEND S0C4, THD=UNLK DIAG=4004000184
    MODULE ID = CQSMOV00+0160+2008 EP = 0BD9E138
    PSW = 077C3000 8BD9FED0    OFFSET = 00001D98
    R0-3   00000000 0C6CA698 0C27D050 FFFF227F
    R4-7   0C76E000 0C76E040 0BD83AA8 0C57FF18
    R8-11  00000005 0C73AA40 0C57FF60 0BD829D8
    R12-15 0BD9FADA 0C6CA3F0 8BD9FE52 00000000
    
    It is unexpected that the IXLLSTM REQUEST=READ_LIST call returns
    a zero return code and zero count of found entries.  Normally if
    the read call is successful then the count is positive, and if
    the call is unsuccessful then the count is zero.  Currently the
    unlock processor assumes a positive count upon the read call's
    zero return code and does not check the zero count case, this
    leads to an infinite loop problem.
    

Problem conclusion

  • GEN:
    KEYWORDS: ABEND0C4 S0C4 0C4
      SYSPLEXSQ
    
    
    *** END IMS KEYWORDS ***
    CQSMOV00 - CQSMOVE/CQSUNLCK REQUEST PROCESSOR
    In the routine FORCE000 that processes CQSUNLCK FUNC=FORCE
    requests, upon a successful return of the IXLLSTM READ_LIST
    call, changed to check the count of returned entries.  If the
    count is zero, trace the error condition and skip processing
    entries from the adjunct area and the buffer.  If the count is
    non zero, process entries as normal.
    
    CQSBRW00 - CQSBRWSE REQUEST PROCESSOR
    In the routine BRWS0000 that processes CQSBRWSE FUNC=BROWSE
    requests, upon a successful return of the IXLLSTM READ_LIST
    call, changed to check the count of returned entries.  If the
    count is zero, trace the error condition, skip processing
    entries from the adjunct area and the buffer, check if a read-
    continue is needed, if not, then return internal error to the
    requester.  If the count is non zero, process entries as normal.
    
    In the routine BOBJ0000 that processes CQSBRWSE FUNC=BRWSOBJS
    requests, upon a successful return of the IXLLSTM READ_LIST
    call, changed to check the count of returned entries.  If the
    count is zero, trace the error condition and skip processing
    entries from the adjunct area and the buffer.  If the count is
    non zero, process entries as normal.
    
    CQSDEL10 - CQS DELETE DATA OBJECT PROCESSOR
    In the routine DELRSCTP that processes data object deletion by
    resource type and owner requests, upon a successful return of
    the IXLLSTM READ_LIST call, changed to check the count of
    returned entries.  If the count is zero, trace the error
    condition and skip processing entries from the adjunct area and
    the buffer.  If the count is non zero, process entries as
    normal.
    
    CQSTRUNL - CQSUNLCK TRACE RECORDS
    Defined a new CQSUNLCK trace subcode TRULIXLM EQU X'50'
    indicating IXLLSTM errors.  Defined the IXLLSTM request error
    mapping for the new trace subcode.
    
    CQSTRBRW - CQS BROWSE REQUEST TRACE RECORDS
    Defined a new CQSBRWSE trace subcode TRBRIXLM EQU X'40'
    indicating IXLLSTM errors.  Defined the IXLLSTM request error
    mapping for the new trace subcode.
    
    CQSTRDEL - CQS DELETE REQUEST TRACE RECORDS
    Defined a new CQSTRDEL trace subcode TRDLIXLM EQU X'0F'
    indicating IXLLSTM errors.  Defined the IXLLSTM request error
    mapping for the new trace subcode.
    
    CQSFTRC0 - CQS Trace Entry Dump Formatter
    Defined a new trace subcode TRULIXLM and new text UNLCK_IXLM to
    the existing subcode table SUBCUNLCK to indicate IXLLSTM errors.
    
    Defined a new trace subcode TRBRIXLM and new text BRWSE_IXLM to
    the existing subcode table SUBCBRWSE to indicate IXLLSTM errors.
    
    Defined a new trace subcode TRDLIXLM and new text DEL_IXLM to
    the existing subcode table SUBCDEL to indicate IXLLSTM errors.
    

Temporary fix

  • *********
    * HIPER *
    *********
    

Comments

APAR Information

  • APAR number

    PK78852

  • Reported component name

    IMS V11

  • Reported component ID

    5635A0200

  • Reported release

    100

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2009-01-16

  • Closed date

    2009-03-20

  • Last modified date

    2009-09-19

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

    PK77978

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

    UK45088

Modules/Macros

  • CQSBRW00 CQSDEL10 CQSFTRC0 CQSMOV00 CQSTRBRW
    CQSTRDEL CQSTRUNL
    

Fix information

  • Fixed component name

    IMS V11

  • Fixed component ID

    5635A0200

Applicable component levels

  • R100 PSY UK45088

       UP09/03/25 P F903 Ž

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":"100","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVRBJ","label":"System Services"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"100","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
19 September 2009