zOs/JCL/XBREPEMP

$#:
j6 = XBREPE
jMod = 5
dbSys = DVBP
<>
>. fEdit()
<=[table           part $]
<DSN.DBADM.TEXV(XBREPA1)
$*( ******************************************************

    empty overloaded Elar Partition
        after the are repartitioned to two new partitions

    generates jobs, that copy, unload and empty the partition
         but keep the compression dictionary
         last, meta data is inserted

    Input: 2 words on each line (separated by spaces or tab chars)
        table:     tablename (without creator)
        part:      old partition number

10.10.16 Walter added insert of meta data
13. 9.16 Walter neu
*******************************************************$*)
$@/mainWork/
$= jx = 0
$@. csvWordRdr( , 'u')
$|
$forWith $@=/onePart/
    $= jx =- $jx + 1
    $= jy =- right($jx, 3, 0)
    $= jm =- right($jx // $jMod, 2, 0)
$** $@tableInfo
//$j6$jm  JOB (CP00,KE50),'DB2 ADMIN',
//             TIME=1440,REGION=0M,CLASS=M1,SCHENV=DB2ALL,
//             MSGCLASS=T,NOTIFY=&SYSUID
//********************************************************************
//* job $jx modulo=$jm
//* empty partition $PART of table BUA.$TABLE
//*   1. copy
//*   2. unload
//*   3. load Dummy keepdictionary
//********************************************************************
//CU$jy    EXEC PGM=DSNUTILB,PARM='$dbSys,$j6$jm.U$jx'
//SYSPRINT   DD SYSOUT=*
//UTPRINT    DD SYSOUT=*
//SYSTEMPL   DD DSN=$dbSys.DBAA.LISTDEF(XBTEMPL),DISP=SHR
//SYSIN    DD *
LISTDEF L  INCLUDE TABLE BUA.$TABLE PARTLEVEL $PART

TEMPLATE TCOPYX
    DSN('XB.&DB..&SN..P&PART..REPCOP.&UNIQ.')
    $'STORCLAS(FAR$N)  MGMTCLAS (SUB#ELA2) DATACLAS (ENN35)'
    SPACE (1500,10000) TRK

TEMPLATE TPUNX
    DSN('XB.&DB..&SN..P&PART..REPPUN')
    $'STORCLAS(FAR$N)  MGMTCLAS (SUB#ELA2) DATACLAS (NULL8)'
    SPACE (1,1) TRK

TEMPLATE TUNLX
    DSN('XB.&DB..&SN..P&PART..REPUNL.&UNIQ.')
    $'STORCLAS(FAR$N)  MGMTCLAS (SUB#ELA2) DATACLAS (ENN35)'
    SPACE (100,12000) TRK

COPY LIST L  COPYDDN(TCOPYX)
  FULL YES PARALLEL
  SHRLEVEL REFERENCE

UNLOAD LIST L
  PUNCHDDN TPUNX  UNLDDN TUNLX NOPAD
  SHRLEVEL REFERENCE
//       IF CU$jy.RUN AND CU$jy.RC = 0 THEN
//LD$jy    EXEC PGM=DSNUTILB,PARM='$dbSys,$j6$jm.U$jx'
//SYSPRINT   DD SYSOUT=*
//UTPRINT    DD SYSOUT=*
//SYSTEMPL   DD DSN=$dbSys.DBAA.LISTDEF(TEMPL),DISP=SHR
//INDUMMY    DD DUMMY
//SYSIN      DD *
   OPTIONS PREVIEW
----- load dummy BUA.$TABLE part $PART
  LOAD DATA LOG NO
    WORKDDN(TSYUTS, TSOUTS) MAPDDN TMAPD
    STATISTICS INDEX(ALL) REPORT NO UPDATE ALL
    KEEPDICTIONARY
  INTO TABLE BUA.$TABLE PART $PART
    RESUME NO REPLACE COPYDDN(TCOPYS) INDDN INDUMMY
//       ENDIF
//       IF LD$jy.RUN AND (LD$jy.RC = 0 OR LD$jy.RC = 4) THEN
//ME$jy    EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSIN    DD *
    DSN SYSTEM($dbSys)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT   DD SYSOUT=*
//SYSPRINT   DD SYSOUT=*
//SYSUDUMP   DD SYSOUT=*
//SYSTERM    DD DUMMY
//SYSIN      DD *
  INSERT INTO BUA.TXBI003
     (STORAGEAREA     ,
      STORAGEAREA_N   ,
      SEGMENT         ,
      PARTNUMBER      ,
      OBJECTFAMILY    ,
      OBJECTFAMILY_N  ,
      BU              ,
      ENTERPRISEID    ,
      LOGPRODFROM     ,
      LOGPRODTO       ,
      TRNFROM         ,
      TRNTO           ,
      HASHEDTS        ,
      SIGNATURETS     ,
      STATUS          ,
      STAGE           ,
      NUMBOFLOAD      ,
      LASTUPDUSER     ,
      LASTUPDTS       ,
      LASTHKTS        ,
      LASTIMPORT      ,
      LASTDELETE      ,
      LASTCHECK       ,
      TOTALROWS       ,
      TOTALDOCS)
  SELECT
      STORAGEAREA     ,
      STORAGEAREA_N   ,
      SEGMENT         ,
      $PART           ,
      OBJECTFAMILY    ,
      OBJECTFAMILY_N  ,
      '    '          ,
      0               ,
      '0001-01-01-00.00.00.000000',
      '0001-01-01-00.00.00.000000',
      ' '             ,
      ' '             ,
      CAST(NULL AS TIMESTAMP)     ,
      CAST(NULL AS TIMESTAMP)     ,
      1               ,
      'DL'            ,
      0               ,
      'DEL OVL PART'  ,
      CURRENT TIMESTAMP,
      CURRENT TIMESTAMP + 1 SECONDS,
      CAST(NULL AS TIMESTAMP),
      CAST(NULL AS TIMESTAMP),
      CAST(NULL AS TIMESTAMP),
      0               ,
      0
  FROM BUA.TXBI003
  WHERE STORAGEAREA = '$-[substr($TABLE, 3, 3)$]'
     AND SEGMENT    = '$-[substr($TABLE, 6, 3)$]'
  fetch first row only
;
  commit
;
//       ENDIF
$/onePart/
$/mainWork/
$#out                                              20161010 08:10:24