A fix is available
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