IBM Support

PM61521: PROVIDE A NEW QCF RECOVERAB FUNCTION FOR SHARED QUEUES ONLY

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • A current REQ is to have the possibility to re-enqueue input
    messages which, as per a MSGQ Structure full condition, were
    logged on OLDS / SLDS as unresolved UOWE and also in case IMS
    would have to be restarted with a cold start. This is based
    off of FITS REQ MR00075806.
    
    The current RECOVERAB function is for non-shared queues only.
    It starts with the last queue checkpoint and selects all
    messages that have not been de-queued.
    The new RECOVERAB will be used when shared queues IMS cannot be
    /ERE started and needs to be COLD started. The messages that are
    in the logs that did not make their way to the CQS will be
    selected (not all messages in and after the last queue
    checkpoint as it is in the current RECOVERAB function).
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of QCF 3.1 with shared queues. This    *
    *                 APAR provides RECOVERAS procedure for shared *
    *                 queues.                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: In shared queues environment:           *
    *                       - IMS writes x'67D0' log records for   *
    *                      messages that can not be put on the     *
    *                      queue.                                  *
    *                       - On checkpoint - IMS preserves the    *
    *                      UOWs of such messages in x'4040' log    *
    *                      records.                                *
    *                       - If IMS abends and is /ERE started -  *
    *                      these messages are retrived from the    *
    *                      logs                                    *
    *                      - If IMS abends and can not be /ERE     *
    *                      started - these messages are lost       *
    *                      - If the olds are re-used- some         *
    *                      messages are lost.                      *
    ****************************************************************
    * RECOMMENDATION: Install the APAR and use the functionality   *
    *                 after shared queue overflow and IMS cold     *
    *                 start after abend.                           *
    ****************************************************************
    Install the APAR.
    

Problem conclusion

Temporary fix

Comments

  • Using CHKPT LAST with function RS (Recover for Shared Queues)
    
    1. Introduction
     New functionality is created for QCF IQCSELCT program
    with CHKPT LAST.... control statement.
     IQCSELCT allocates logs and extracts messages with
    unresolved UOWs .
     IMS writes x'67D0' log records for messages that can
    not be put on the shared queues.
     On checkpoint IMS preserves the UOWs for these
    messages in entries in x'4040' log records and -
    after the messages are put on the shared queues -
    entries in x'3F' log records.
     If there are messages with unresolved UOWs, and IMS
    abends and can be /ERE started, these messages are
    retrieved from the logs and put on the queues.
     If IMS abends and can not be /ERE started, but has
    to be COLD started - these messages are lost.
     If the online logs are re-used before a checkpoint
    is issued to recover these messages - these messages
    are lost.
     The new functionality is developed to extract messages
    from the logs, based on information in x'67D0', X'4040'
    and x'3F' log records.
    
    2. Function RECOVERAS
    The process is implemented in next steps:
    -SELECT step
    -SORT1 step
    -SORT2 step
    -CANCEL step
    -LOAD step
    
    2.1. SELECT step
    In SELECT step program IQCSELCT analyzes the execution parameter
    prepares LIST.LOG command for DBRC, reads
    the allocated logs and extracts several sets of
    records in output files.
    Control statement format with execution parameters:
    CHKPT LAST,imsid,RS,D=yyyy.ddd,T=hh:mm:ss,DT=CP
    FUNCTION RECOVERAS
    
    CHKPT LAST,imsid,RS,D=yyyy.ddd,T=hh:mm:ss,DT=MSG
    FUNCTION RECOVERAS
    
    CHKPT LAST,imsid,RS
    FUNCTION RECOVERAS
    
    
    Imsid      - is the 4 bytes IMSID
    RS         - recover after abend for shared queues
    D=..,T=... - is the date and time of the  restart
    checkpoint.
    (Selected checkpoint should be before the shared queues go in
    overflow condition)
    DT=CP
    After the parameters are checked, the logs data sets are
    allocated, starting with the log that has the start of the
    selected checkpoint.
    The logs are read and several output files are created:
    
    LOGOUT contains all selected input and output messages
    
    SCRAPSEL contains the not selected input and output messages
    (based on selection criteria and recoverability of the
    messages)
    
    CKPTOFIL contains formatted records created from x'67D0',
    X'4040' and x'3F' log records.
    
    2.2. SORT1 step
    In sort step SORT1 (see the sample job) CKPTOFIL is sorted
    by messages UOWs and by number of the log record.
    
    2.3. SORT2 step
    In sort step SORT2 (see sample job) LOGOUT is sorted by
    message's UOWs.
    2.4. CANCEL step
    In CANCEL step program IQCCAN1 reads sorted files and
    selects only messages with missing x'3F' records.
    Selected messages are put in the CANCLOUT file to be
    loaded in last LOAD step.
    
    CANCEL step ends with RC=0 if all UOWs with missing
    x'3F' records are found in the sorted file with
    logged messages.
    CANCEL step ends with RC=4 if some UOWs are not
    found in the sorted file with logged messages.
    In such case earlier restart checkpoint has to be used
    recovering the messages queues.
    
    3. JCL for Execution
    New sample - IQCRCAS - is added in hlqual.SIQCSAMP
    library.
    The sample JCL has to be customized. There are comments
    how to customize the JCL and parameters for allocation
    of all required data sets.
    ×**** PE13/11/20 FIX IN ERROR. SEE APAR PI06607  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PM61521

  • Reported component name

    IMS QUEUE CNTL

  • Reported component ID

    5697E9900

  • Reported release

    310

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2012-03-29

  • Closed date

    2013-09-25

  • Last modified date

    2013-12-03

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

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

    UK97905

Modules/Macros

  • H0GN310J IQC##### IQCACKPT IQCALST0 IQCASEGE
    IQCASELO IQCCANC1 IQCRCAS  IQCSELCT
    

Fix information

  • Fixed component name

    IMS QUEUE CNTL

  • Fixed component ID

    5697E9900

Applicable component levels

  • R310 PSY UK97905

       UP13/09/26 P F309

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":"3.1.0","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCX8A6","label":"IMS Queue Control Facility"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
03 December 2013