MainframeSupports
tip uge 13/2019:

Der er rigtig mange måder at frigøre ubrugt plads i almindelige datasets. Man kan benytte RLSE-parameteren i option SPACE i JCL. Der findes en kommando i ISPF 3.4 kaldet F til det samme og der er garanteret masser af hjemmelavede programmer derude, der gør det samme. Men hvad hvis nu High Used RBA er meget langt fra High Allocated RBA på et VSAM dataset, hvad gør du så?

Der findes en kommando til ADRDSSU, der kan klare ærterne for dig. Den hedder RELEASE og er utrolig simpel at bruge. Jeg har skruet et eksempel sammen, hvor jeg vil fjerne en masse friplads i et DB2 tablespace, der er blevet allokeret alt for stort, hvilket ofte sker i test-miljøer:

//STOPDB   EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
  DSN SYSTEM(DB2T)
  -STOP DB(D2900DB1) SPACE(S2900K74)
  END
/*
//RELEASE  EXEC PGM=ADRDSSU
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
    RELEASE INCLUDE(DB2T.DSNDBC.D2900DB1.S2900K74.J0001.A001)
/*
//STARTDB  EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
  DSN SYSTEM(DB2T)
  -START DB(D2900DB1) SPACE(S2900K74)
  END
/*

For at RELEASE kan virke, så skal ADRDSSU have datasettet helt for sig selv, så derfor skal DB2 tablespacet stoppes før RELEASE udføres og startes igen bagefter. Hvis VSAM datasettet bruges af en CICS, så skal man gå ind i CICS og lukke den tilhørende fil først og bagefter åbne den igen.

Der er selvfølgelig forskellige ulemper ved ovenstående metode, især når det gælder VSAM datasets tilknyttet et DB2 tablespace. Hvis DB2 tablespacet er meget benyttet, så kan det være svært at finde et tidspunkt, hvor det kan stoppes og startes. Man skal selvfølgelig også kende VSAM dataset navnet bag DB2 tablespacet. Det er der heldigvis mange værktøjer, der kan hjælpe med at finde. Den største udfordring kan dog være RACF autorisationer. Den user, der kører jobbet, skal have ALTER adgang til VSAM datasettet og STOP/START autorisation i DB2 til databasen. Derudover er der mange installationer, der beskytter ADRDSSU, så du skal også sikre dig, at user'en har adgang til at køre ADRDSSU og bruge RELEASE kommandoen.

Forrige danske tip        Last tip in english        Tip oversigten