A fix is available
APAR status
Closed as program error.
Error description
The LOAD statement generated for an unload written with the UNLOAD PLUS syntax and involving several logical unloads (SELECT statements) against tables from the same table space is incorrect as it actually contains as many LOAD commands as they are tables involved. If the applicable/requested LOAD option specifies REPLACE, using the LOAD statement as generated leads to data loss since the target tablespace is reset by every LOAD command and only last table loaded contains data. For example, with an unload statement as follows: UNLOAD SHRLEVEL CHANGE UNLOADDN SYSREC CNTLCARDS DB2LOAD 'REPLACE LOG NO ENFORCE NO' CNTLDDN SYSPUNCH AUTOTAG YES DIRECT AUTO SELECT * FROM MZLFRD.TBDZAAFRD14310 SELECT * FROM MZLFRD.TBDZAAFRD14309 SELECT * FROM MZLFRD.TBDZAAFRD14308 SELECT * FROM MZLFRD.TBDZAAFRD14307 SELECT * FROM MZLFRD.TBDZAAFRD14306 SELECT * FROM MZLFRD.TBDZAAFRD14305 SELECT * FROM MZLFRD.TBDZAAFRD14304 SELECT * FROM MZLFRD.TBDZAAFRD14303 SELECT * FROM MZLFRD.TBDZAAFRD14302 SELECT * FROM MZLFRD.TBDZAAFRD14301 the gerenated LOAD statement looks as follows: LOAD DATA INDDN SYSREC REPLACE LOG NO ENFORCE NO EBCDIC CCSID(0037) INTO TABLE MZLFRD.TBDZAAFRD14310 WHEN (1:4) = '0001' ( C1 POSITION ( 5 ) INTEGER NULLIF( 9 ) = '?' , ... LOAD DATA INDDN SYSREC REPLACE LOG NO ENFORCE NO EBCDIC CCSID(0037) INTO TABLE MZLFRD.TBDZAAFRD14309 WHEN (1:4) = '0002' ( C1 POSITION ( 5 ) INTEGER NULLIF( 9 ) = '?' ... where the following would be relevant: LOAD DATA INDDN SYSREC REPLACE LOG NO ENFORCE NO EBCDIC CCSID(0037) INTO TABLE MZLFRD.TBDZAAFRD14310 WHEN (1:4) = '0001' ( C1 POSITION ( 5 ) INTEGER NULLIF( 9 ) = '?' , ... INTO TABLE MZLFRD.TBDZAAFRD14309 WHEN (1:4) = '0002' ( PB12819
Local fix
None if the UNLOAD PLUS syntax must be kept. Otherwise, consider using the native HPU syntax to get the expected result.
Problem summary
**************************************************************** * USERS AFFECTED: Users of DB2 High Performance Unload. * **************************************************************** * PROBLEM DESCRIPTION: The LOAD statement generated for an * * unload written with the UNLOAD PLUS * * syntax and involving several logical * * unloads (SELECT statements) against * * tables from the same table space with * * the AUTOTAG option is incorrect as it * * actually contains as many LOAD * * commands as they are tables involved. * * If the applicable/requested LOAD * * option specifies REPLACE, using the * * LOAD statement as generated leads to * * data loss since the target tablespace * * is reset by every LOAD command and * * only last table loaded contains data. * * * * For example, with an unload statement * * as follows: * * UNLOAD SHRLEVEL CHANGE * * UNLOADDN SYSREC * * CNTLCARDS DB2LOAD 'REPLACE * * LOG NO ENFORCE NO' * * CNTLDDN SYSPUNCH AUTOTAG YES * * DIRECT AUTO * * SELECT * FROM MZLFRD.TBDZAAFRD14310 * * SELECT * FROM MZLFRD.TBDZAAFRD14309 * * SELECT * FROM MZLFRD.TBDZAAFRD14308 * * SELECT * FROM MZLFRD.TBDZAAFRD14307 * * SELECT * FROM MZLFRD.TBDZAAFRD14306 * * SELECT * FROM MZLFRD.TBDZAAFRD14305 * * SELECT * FROM MZLFRD.TBDZAAFRD14304 * * SELECT * FROM MZLFRD.TBDZAAFRD14303 * * SELECT * FROM MZLFRD.TBDZAAFRD14302 * * SELECT * FROM MZLFRD.TBDZAAFRD14301 * * the gerenated LOAD statement looks as * * follows: * * LOAD DATA INDDN SYSREC * * REPLACE LOG NO ENFORCE NO * * EBCDIC CCSID(0037) * * INTO TABLE MZLFRD.TBDZAAFRD14310 * * WHEN (1:4) = '0001' * * C1 * * POSITION ( 5 ) * * INTEGER * * NULLIF( 9 ) = '?' * * , * * ...ELECT * FROM MZLFRD.TBDZAAFRD14308 * * LOAD DATA INDDN SYSREC * * REPLACE LOG NO ENFORCE NO * * EBCDIC CCSID(0037) * * INTO TABLE MZLFRD.TBDZAAFRD14309 * * WHEN (1:4) = '0002' * * C1 * * POSITION ( 5 ) looks as * * INTEGER * * NULLIF( 9 ) = '?' * * ...PLACE LOG NO ENFORCE NO * * where the following would be * * relevant: MZLFRD.TBDZAAFRD14310 * * LOAD DATA INDDN SYSREC * * REPLACE LOG NO ENFORCE NO * * EBCDIC CCSID(0037) * * INTO TABLE MZLFRD.TBDZAAFRD14310 * * WHEN (1:4) = '0001' * * C1 * * POSITION ( 5 ) * * INTEGER * * NULLIF( 9 ) = '?' * * , * * ... * * INTO TABLE MZLFRD.TBDZAAFRD14309 * * WHEN (1:4) = '0002' * * * * C1 * * POSITION ( 5 ) * * INTEGER * * NULLIF( 9 ) = '?' * * ... * * pb 12819 * **************************************************************** * RECOMMENDATION: APPLY the PTF. * **************************************************************** The module inzrload was changed.
Problem conclusion
APPLY the PTF.
Temporary fix
Comments
APAR Information
APAR number
PI44221
Reported component name
DB2 HI PERF UNL
Reported component ID
5697F4400
Reported release
430
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-07-02
Closed date
2015-07-22
Last modified date
2015-08-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
INZUTILK
Fix information
Fixed component name
DB2 HI PERF UNL
Fixed component ID
5697F4400
Applicable component levels
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":"SSAUUV","label":"IBM Db2 High Performance Unload for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"4.3.0","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Document Information
Modified date:
12 February 2021