IBM Support

PI56838: ASN0543E IN Q APPLY, SEE APAR COMMENTS 16/03/23 PTF PECHANGE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A memory leak is happening in Qapply with PTF UI35093.
    The problem will be corrected by the PTF for PI56838.
    
    The symptom is error message:
    ASN0543E The program cannot obtain "<number>" bytes of
    storage for a "<object>".  The program terminates.
    The number of bytes varies and the object has been
    qTransMsgHeader.
    
    The memory leak is happening when apply has to write changes
    to the SPILLQ queue.  For each row that Apply fetches from
    the SPILLQ 168 bytes of memory are used and not reclaimed
    by Apply.
    
    The leak would happen during an initial load "catchup" as
    well as So both initial load catchup from spillq as well as
    Resumesub (after spillsub) are exposed.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: 1- Q Capture                                 *
    *                 2- ASNTDIFF on z/OS                          *
    *                 3- All users                                 *
    *                 4- Q Apply                                   *
    *                 5- Q Apply                                   *
    *                 6- Q Apply SpillQ processing                 *
    *                 7- Capture data may be lost if capture is    *
    *                 unable to allocate memory for a row.         *
    ****************************************************************
    * PROBLEM DESCRIPTION: 1- Q Capture has poor performance when  *
    *                      publishing event using delimited        *
    *                      message.                                *
    *                      2- ASNTDIFF will throw an ASN4079W      *
    *                      warning message indicating no unique    *
    *                      index found, while there is an unique   *
    *                      index in the user table.                *
    *                      3- When a customer starts a new load    *
    *                      of a table, it deletes the old spill    *
    *                      queue to make a new one, and there is   *
    *                      a period of time when the deleted       *
    *                      spill queue is still in the             *
    *                      IBMQREP_SPILLQs table. The asnqmon      *
    *                      process finds this spill queue in the   *
    *                      table and issues an error message when  *
    *                      MQ reports that there is no such        *
    *                      queue.                                  *
    *                      4- Q Apply code would need to use       *
    *                      STDOUTMSG instead of ALL as             *
    *                      destination for ASN7868W.               *
    *                      5- Q Apply running with PRUNE_METHOD=2  *
    *                      may use excessive memory when MQ        *
    *                      message pruning is slow and has a huge  *
    *                      backlog of messages yet to be pruned.   *
    *                      6- Q Apply SPILL Agent may have memory  *
    *                      leak when applying row messages from    *
    *                      SPILLQ during initial load or during    *
    *                      RESUMESUB. This could eventually lead   *
    *                      to excessive memory usage or memory     *
    *                      exhaustion resulting in ASN0543E        *
    *                      failures.                               *
    *                      7- Capture data may be lost if capture  *
    *                      is unable to allocate memory for a      *
    *                      row.                                    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    1- Q Capture uses double loop to check if columns are
    subscribed when publishing delimited messages.
    2- The algorithm was changed to check if there is any eligible
    index, need to change the message to inform user that no
    eligible index was found.
    3- Stale rows in the IBMQREP_SPILLQS table cause asnqmon to
    issue unnecessary warning messages. This message is written as
    part of monitoring spill queue depth, and we do not need to
    issue any messages at all for queues that have been deleted.
    4- Q Apply code would need to use STDOUTMSG instead of ALL as
    destination for ASN7868W.
    5- Q Apply with PRUNE_METHOD=2 may use excessive memory when MQ
    message pruning has a huge backlog of messages yet to be
    pruned. This could lead to memory exhaustion and Q Apply
    failing with ASN0543E.
    6- Q Apply Spill Agent leaks 168 bytes of memory for every row
    message that it applies from spillQ. Regression was introduced
    in APAR PI56342. Exposure exists for spillq processing during
    initial load as well as Resumesub (after spillsub).
    7- Capture data may be lost if capture is unable to allocate
    memory for a row..
    

Problem conclusion

  • 1- double loop is replaced by an array storing all subscribed
    columns of a subscription.
    2- Change the ASN4079W message to inform user that no eligible
    index was found.
    4- msgToLog() call was fixed to go to STDOUTMSG instead of ALL.
    5- The problem is fixed.
    6- The memory leak is fixed.
    7- Capture has been modified to stop without data loss if
    it cannot allocate memory for a row.
    

Temporary fix

Comments

  • ×**** PE16/04/11 FIX IN ERROR. SEE APAR PI59985  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PI56838

  • Reported component name

    WS REPLICATION

  • Reported component ID

    5655L8800

  • Reported release

    A21

  • Status

    CLOSED PER

  • PE

    YesPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-02-08

  • Closed date

    2016-03-29

  • Last modified date

    2016-05-04

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

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

    UI36574 UI36575 UI36576 UI36577

Modules/Macros

  •    ASNAAPP  ASNACMD  ASNACMP  ASNADMSP ASNAFET
    ASNAISO  ASNAMAN  ASNAPPLY ASNAPRS  ASNAWPN  ASNCAP   ASNCCMD
    ASNCLPAP ASNCLPCL ASNCLPCM ASNCLPCO ASNCLPMS ASNCLPQA ASNDB2SQ
    ASNMCMD  ASNMON   ASNMONIT ASNQACMD ASNQAHKT ASNQAPP  ASNQASUB
    ASNQBRWZ ASNQCAP  ASNQCCMD ASNQDEP  ASNQEXRP ASNQMFMT ASNQSPIL
    ASNQXFMT ASNRBASE ASNSQLCZ ASNTDIFF ASNTDSP  ASNTRC   ASN2BASE
    ASN2DB2Q ASN2SQLZ
    

Fix information

  • Fixed component name

    WS REPLICATION

  • Fixed component ID

    5655L8800

Applicable component levels

  • RA21 PSY UI36574

       UP16/04/06 P F604 Ø

  • RA24 PSY UI36575

       UP16/04/06 P F604 Ø

  • RA25 PSY UI36576

       UP16/04/06 P F604 Ø

  • RA26 PSY UI36577

       UP16/04/06 P F604 Ø

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":"SSDP5R","label":"InfoSphere Replication Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A21","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
04 May 2016