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