In diesem Abschnitt finden Sie Beispiele zu folgenden Themen:
Verdrängung mit Komprimierung
Verdrängung nach Selektionskriterien
Verdrängung nach Menge
Behebung von Speicherengpässen auf S0
Pubset-weise Verdrängung mit Ausgabe der Pubset-Belegung
Automatisches Starten von Migrationsaufträgen durch ENTER-Jobs
Automatisches Starten von Migrationsaufträgen durch ein Programm
Die Beispiele beziehen sich auf die Beispielkonfiguration, die ab "Einrichten einer HSMS-Konfiguration (Beispiel)" beschrieben ist.
Verdrängung mit Komprimierung
Dateien werden auf die Speicherebene S1 verdrängt und dabei komprimiert. Die Sicherungsdateien werden mit den verdrängten Dateien verglichen.
//MIGRATE-FILES - ———————————————————————————————————————————————————— (1) // FROM-STORAGE=*S0-STORAGE-LEVEL(FILE-NAMES=$MANUAL.FILE.0*, - // COMPRESS-FILES=*YES, - // TO-STORAGE=*S1-STORAGE-LEVEL), - // OPERATION-CONTROL=*PAR(REPORT=*FULL, - // OUTPUT=HSMS.MAN.R.MGF.1, - // WAIT-FOR-COMPLETION=*YES) % HSM0003 HSMS STATEMENT COMPLETED //END % HSM0014 HSMS PROGRAM TERMINATED Report HSMS.MAN.R.MGF.1 (Ausschnitt): ———————————————————————————————— (2) *** MIGRATE - FILES HSMS V11.0 FULL REPORT *** 2016-08-12 14:48:31 PAGE 2 REQUEST-NAME=MGF#0AAK REQUEST-DATE=2016-08-12 14:48:09 USER-ID=SYSHSMS REQUEST-STATE=COMPLETED WITHOUT ERROR % ARC0002 STATEMENT ACCEPTED. ARCHIVE SEQUENCE NUMBER ’A.160812.144811’, VERSION ’11.0’ % ARC0033 ARCHIVE SUBTASK TSN 0AAO GENERATED SAVE FILE IDENTIFIER - S.160812.144813 SUBSAVE NUMBER VSNS 0 0:2BC SAVE FILE IDENTIFIER - S.160812.144813 *** CATALOG - 2BY USER - MANUAL *** ** OUTPUT SAVE VERSION: SAVE-VERSION-DATE=16-08-12 SAVE-VERSION-TIME=14:48:13 * FILE/JOB VARIABLE NAME LASTPG/ SAVE INPUT DEV SUB OUTPUT VERS SIZE TYPE VSN TYP SAVE VSN(S) FILE.01 1 3 FULL 2BY.01 D 0 0:2BC FILE.02 1 8 FULL 2BY.01 D 0 0:2BC FILE.03 1 13 FULL 2BY.01 D 0 0:2BC FILE.04 1 18 FULL 2BY.01 D 0 0:2BC FILE.05 1 16 FULL 2BY.00 D 0 0:2BC FILE.06 1 11 FULL 2BY.00 D 0 0:2BC FILE.07 1 6 FULL 2BY.00 D 0 0:2BC *** E N D O F HSMS V11.0 FULL REPORT *** 2016-08-12 12:19:05 *** /SHOW-FILE-ATT FILE-NAME=$MANUAL.FILE.0*, - —————————————————————————— (3) / INFORMATION=SPACE-SUMMARY %:2BY: PUB/S1: 7 FILES RES= 90 FRE= 15 REL= 9 PAGES /SHOW-FILE-ATT FILE=:2BC:$*.ARCHIVE.SAVE.FILE.160812.144813., - / INFORMATION=SPACE-SUMMARY %:2BC: PUBLIC: 1 FILE RES= 12 FRE= 2 REL= 0 PAGES
(1) | Die Dateien der Benutzerkennung MANUAL mit dem Namen FILE.0.. werden in das System-Migrationsarchiv verdrängt. |
(2) | Ausschnitt aus dem von HSMS erzeugten Report des Migrationslaufs mit Ausgabe der SFID. |
(3) | Ein Vergleich der verdrängten Dateien mit den Sicherungsdateien, in die sie geschrieben wurden, zeigt den geringeren Platzbedarf der komprimierten Sicherungsdatei. Da ja die verdrängten Dateien den Speicherplatz nicht mehr belegen, wurde die Differenz eingespart. |
Verdrängung nach Selektionskriterien
Die Dateien werden über das Selektionskriterium Schutzfrist ausgewählt und verdrängt.
/SHOW-FILE-ATTRIBUTES FILE-NAME=$MANUAL.FILE.1*, - ——————————————————— (1) / SELECT=*BY-ATTRIBUTES(STORAGE-LEVEL=*S0, - / EXPIRATION-DATE=*INTERVAL(TO=+365)), - / OUTPUT=#SELECT-LIST(FORM-NAME=*FILE-NAME) %:2BY: PUBLIC: 7 FILES RES= 90 FREE= 15 REL= 9 PAGES /START-HSMS //MIGRATE-FILES - ———————————————————————————————————————————————————— (2) // FROM-STORAGE=*S0-STORAGE-LEVEL(FILE-NAMES=*FROM-FILE - // (#SELECT-LIST),COMPRESS-FILES=*YES, - // TO-STORAGE=*S1-STORAGE-LEVEL), - // OPERATION-CONTROL=*PAR(REPORT=*FULL, - // OUTPUT=HSMS.MAN.R.MGF.2, - // WAIT-FOR-COMPLETION=*YES) % HSM0003 HSMS STATEMENT COMPLETED //END % HSM0014 HSMS PROGRAM TERMINATED
(1) | Mit dem Kommando SHOW-FILE-ATTRIBUTES wird eine Liste aller Dateien der Benutzerkennung MANUAL mit Namen FILE.1.., deren Schutzfrist innerhalb der nächsten 365 Tage ausläuft, in eine temporäre Datei geschrieben. Damit werden die Dateien ausgewählt, deren Schutzfrist innerhalb der Schutzfrist der Sicherungsdatei des Migrationsarchivs liegt. |
(2) | Die Dateien, die in der per Kommando erzeugten Liste stehen, werden in das System-Migrationsarchiv verdrängt. |
Verdrängung nach Menge
Es werden so viele Dateien verdrängt, bis eine bestimmte Anzahl PAM-Seiten frei geworden ist.
//MIGRATE-FILES - ———————————————————————————————————————————————————— (1) // FROM-STORAGE=*S0-STORAGE-LEVEL(FILE-NAMES=$MANUAL.FILE.2*, - // RELEASE-PAGES=100,- ———————————————————————————————————————————— (2) // COMPRESS-FILES=*YES,TO-STORAGE=*S1-STORAGE-LEVEL), - // OPERATION-CONTROL=*PAR(REPORT=*FULL, - // OUTPUT=HSMS.MAN.R.MGF.3, - // WAIT-FOR-COMPLETION=*YES) % HSM0003 HSMS STATEMENT COMPLETED //END % HSM0014 HSMS PROGRAM TERMINATED
(1) | Die Dateien der Benutzerkennung MANUAL mit dem Namen FILE.2... werden in das System-Migrationsarchiv verdrängt. |
(2) | HSMS verdrängt allerdings aus der Menge der angegebenen Dateien nur so viele, bis durch die Verdrängung mindestens 100 PAM-Seiten frei geworden sind. |
Behebung von Speicherengpässen auf S0
Um Speicherplatz auf gemeinschaftlichen Datenträgern zu schaffen, werden Dateien auf S1 migriert, auf die seit mindestens 28 Tagen nicht mehr zugegriffen wurde. Vorher könnte man sich mit SHOW-PUBSET-USAGE INFORMATION=*UNUSED-DAYS darüber informieren, ob der so frei gewordene Speicherplatz ausreicht.
//MIGRATE-FILES FROM-STORAGE=*S0-STORAGE-LEVEL - ————————————————————— (1) // (FILE-NAMES=:2BY:$*.,TO-STORAGE=*S1-STORAGE-LEVEL, - // UNUSED-DAYS=28), - // OPERATION-CONTROL=*PAR(REPORT=*FULL, - // OUTPUT=HSMS.MAN.R.MGF.1, - // WAIT-FOR-COMPLETION=*YES) % HSM0003 HSMS STATEMENT COMPLETED //END % HSM0014 HSMS PROGRAM TERMINATED
(1) | Alle Dateien auf dem Pubset 2BY, die mindestens seit mehr als 28 Tagen nicht mehr benutzt wurden, werden auf die Speicherebene S1 migriert. |
Pubset-weise Verdrängung mit Ausgabe der Pubset-Belegung
Einige große Dateien werden verdrängt, um die Auswirkung der Verdrängung auf die Belegung von Pubsets zu zeigen.
//SHOW-PUBSET-USAGE ——————————————————————————————————————————————————— (1)
SHOW-PUBSET-USAGE INFORMATION = SUMMARY CATALOG-ID = ALL ------------------------------------------------------------------------------- PUBSET ST CAPACITY %USED %AVAIL %MIG S1-MIG S1-USED S1-AVAIL BVWC S0 225657 87.0 13.0 .0 0 593178 70167 2BC S1 663345 89.4 10.6 .0 2BY S0 663345 77.5 22.5 .0 135 593178 70167 ... ... ... NEXT-PAGE: + (+, -, ++, --, E) % HSM0012 END OF OUTPUT LIST REACHED
% HSM0003 HSMS STATEMENT COMPLETED //MIGRATE-FILES - ———————————————————————————————————————————————————— (2) // FROM-STOR=*S0-STOR(F-NAMES=:2BY:$MANUAL.MAX-SIZE.*, - // MIN-SIZE=150,MAX-SIZE=2500,TO-STOR=*S1-STOR), - // OPER-CONTROL=*PAR(REPORT=*NONE) % HSM0003 HSMS STATEMENT COMPLETED //MIGRATE-FILES - // FROM-STOR=*S0-STOR(F-NAMES=:BVWC:$MANUAL.MAX-SIZE.*, - // MIN-SIZE=150,MAX-SIZE=2500,TO-STOR=*S1-STOR), - // OPER-CONTROL=*PAR(REPORT=*NONE) % HSM0003 HSMS STATEMENT COMPLETED //MIGRATE-FILES - ———————————————————————————————————————————————————— (3) // FROM-STOR=*S0-STOR(F-NAMES=:2BY:$MANUAL.MAX-SIZE.*, - // MIN-SIZE=2500,TO-STOR=*S2-STOR), - // OPER-CONTROL=*PAR(REPORT=*NONE) % HSM0003 HSMS STATEMENT COMPLETED //MIGRATE-FILES - // FROM-STOR=*S0-STOR(F-NAMES=:BVWC:$MANUAL.MAX-SIZE.*, - // MIN-SIZE=2500,TO-STOR=*S2-STOR), - // OPER-CONTROL=*PAR(REPORT=*NONE) % HSM0003 HSMS STATEMENT COMPLETED //END % HSM0014 HSMS PROGRAM TERMINATED /SHOW-FILE-ATTR :*:$MANUAL.MAX-SIZE.* ———————————————————————————————— (4) %0000001302#:BVWC:$MANUAL.MAX-SIZE.2 %0000095004#:BVWC:$MANUAL.MAX-SIZE.4 %0000080004 :BVWC:$MANUAL.MAX-SIZE.6 %0000001302#:2BY:$MANUAL.MAX-SIZE.1 %0000095004#:2BY:$MANUAL.MAX-SIZE.3 %0000080004 :2BY:$MANUAL.MAX-SIZE.5 %SUM PUBLIC: 2 FILES RES= 160008 FRE= 160008 REL= 160008 PAGES %SUM PUB/S1: 2 FILES RES= 2604 FRE= 2050 REL= 2046 PAGES %SUM PUB/S2: 2 FILES RES= 190008 FRE= 160012 REL= 160008 PAGES //SHOW-PUBSET-USAGE --------------------------------------------------- (05)
SHOW-PUBSET-USAGE INFORMATION = SUMMARY CATALOG-ID = ALL ------------------------------------------------------------------------------- PUBSET ST CAPACITY %USED %AVAIL %MIG S1-MIG S1-USED S1-AVAIL BVWC S0 225657 44.3 55.7 42.6 1302 593772 69573 2BC S1 663345 89.5 10.5 .0 2BY S0 663345 63.0 37.0 14.5 1437 593772 69573 ... ... ... NEXT-PAGE: + (+, -, ++, --, E) % HSM0012 END OF OUTPUT LIST REACHED
% HSM0003 HSMS STATEMENT COMPLETED //END % HSM0014 HSMS PROGRAM TERMINATED
(1) | Ausgabe der Pubset-Belegung. Es sind keine Dateien migriert. Die S0-Pubsets sind mit über 70% ausgelastet. |
(2) | Alle Dateien der Benutzerkennung MANUAL, die mit „MAX-SIZE.“ beginnen und zwischen 150 und 2500 Seiten groß sind, werden auf S1 migriert. Diese Dateien werden also auf Platte geschrieben. Es wird kein Report erzeugt. Eine Information über die Dateien ist weiterhin über den Katalog möglich. |
(3) | Alle Dateien der Benutzerkennung MANUAL die mit „MAX-SIZE.“ beginnen und über 2500 Seiten groß sind, werden auf S2 migriert. Diese Dateien werden also auf Magnetbandkassette geschrieben. |
(4) | Ein SHOW-FILE-ATTRIBUTES-Kommando zeigt die migrierten Dateien und die Speicherebene, auf die sie geschrieben wurden. |
(5) | Die Belegung der Pubsets wird erneut ausgegeben: Der Prozentsatz der freien Seiten auf den S0-Pubsets ist gestiegen. (%USED und %AVAIL ergeben weiterhin 100%, obwohl auch %MIG > 0 ist. Die beiden Werte beziehen sich lediglich auf die Daten, die aktuell auf dem Pubset stehen, nicht auf die migrierten Daten.) |
Automatisches Starten von Migrationsaufträgen durch einen ENTER-Job
Auf dem S0-Pubset 2BY sollen Dateien automatisch verdrängt werden, wenn die Sättigungsstufe 4 oder 5 erreicht wird. Erreicht wird dies durch Starten dieses ENTER-Jobs nach dem Laden von HSMS. Die Erläuterungen zum Ablauf sind im ENTER-Job dokumentiert.
/.AUTOMIG SET-LOGON-PARAMETERS / REMARK ==================================================== / REMARK === CATID und STORAGE-LEVEL des zu ueberwachen= === / REMARK === den Pubsets sowie, evtl. daraus generiert, === / REMARK === der Name der MIGRATIONS-JV kann als QUASI= === / REMARK === PARAMETER in temp. JV uebergeben!! === / REMARK ==================================================== / SET-JV-LINK JV-NAME=#CATID / MODIFY-JV JV-NAME(#CATID),VALUE='2BY' / REMARK >>>>>> CATID anpassen >>>>>>^<<<<<< CATID anpassen << / REMARK / SET-JV-LINK JV-NAME=#ST-LEVEL / MODIFY-JV JV-NAME(#ST-LEVEL),VALUE='S0' / REMARK >>>>>> STORAGE-LEVEL anpassen >^<<<<<< ST-LEVEL <<<< / REMARK / SET-JV-LINK JV-NAME=#MIGJV / MODIFY-JV JV-NAME(#MIGJV), - / VALUE='$SYSHSMS.SYS.HSM.MIGRATE.&(#CATID)' / REMARK / REMARK / REMARK ==================================================== / REMARK === Synchron warten, bis Subsystem HSMS aktiv ist == / REMARK === Spin-Off, wenn nach Wartezeit nicht geladen! == / REMARK ==================================================== / REMARK / WAIT-EVENT UNTIL= - / JV((&(#MIGJV),1,4) NE X'FFFFFFFF') / REMARK ==================================================== / REMARK Wenn Saturation-Level 4 oder 5 erreicht wurde, kann / REMARK durch MIGRATION Platz geschaffen werden. / REMARK / REMARK Freigabe von soviel Seiten, wie in der MIGRATIONS-JV / REMARK eingetragen sind, genuegt, um das naechst-niedrigere / REMARK Saturation-Level zu erreichen / REMARK ==================================================== /.WAIT WAIT-EVENT UNTIL= - / JV((&(#MIGJV),3,1) GE C'4'), - / TIMEOUT-LABEL=TIMEOUT / REMARK ==================================================== / REMARK == Wenn HSMS beendet ist, wird dieser Job auch / REMARK == beendet / REMARK ==================================================== / SKIP-COMMANDS TO-LABEL=LOGOFF, - / IF=JV((&(#MIGJV),3,1) EQ X'FF') / REMARK ==================================================== / REMARK ==== Anzahl freizugebender Seiten extrahieren ==== / REMARK ==== und Migrations-Auftrag absetzen ==== / REMARK ==================================================== / SET-JV-LINK JV-NAME=#PAGES / MODIFY-JV JV-NAME(#PAGES), - / VALUE=JV(JV-NAME=&(#MIGJV), - / POSITION=36, LENGTH=10) / REMARK / REMARK / SKIP-COMMANDS TO-LABEL=MIGS1, - / IF=JV(#ST-LEVEL EQ 'S1') /.MIGS0 REMARK ==================================================== / REMARK ==== Fuer S0-Pubset: Normale Migration .... ==== / REMARK ==================================================== / ASSIGN-SYSDTA TO-FILE=*SYSCMD / START-HSMS //MIGRATE-FILES FROM-STORAGE=*S0-STORAGE-LEVEL - // (FILE-NAMES=:&(#CATID):$*., - // TO-STORAGE=*S1-STORAGE-LEVEL), - // RELEASE-PAGES=&(#PAGES), - // OPERATION-CONTROL=*PARAMETERS(EXPRESS-REQUEST=*YES) //END / SKIP-COMMANDS TO-LABEL=CONT /.MIGS1 REMARK ==================================================== / REMARK ==== Fuer S1-Pubset: ... Reorganisation ==== / REMARK ==================================================== / ASSIGN-SYSDTA TO-FILE=*SYSCMD / START-HSMS //MIGRATE-FILES FROM-STORAGE=*S1-STORAGE-LEVEL - // (S1-PUBSET-ID=&(#CATID), - // TO-STORAGE=*S1-STORAGE-LEVEL), - // RELEASE-PAGES=&(#PAGES), - // OPERATION-CONTROL=*PARAMETERS(EXPRESS-REQUEST=*YES) //END /.CONT REMARK ==================================================== / REMARK ==== Warten, bis JV von HSMS modifiziert wurde ===== / REMARK ==================================================== / SET-JV-LINK JV-NAME=#LAST-TIME / MODIFY-JV JV-NAME(#LAST-TIME), - / VALUE=JV(JV-NAME=&(#MIGJV), - / POSITION=50, LENGTH=25) / WAIT-EVENT UNTIL=JV - / ((&(#MIGJV),50,25) NE (#LAST-TIME,1,25)) / REMARK / REMARK ==================================================== / REMARK ==== Solange HSMS noch aktiv ist, wird der === / REMARK ==== Pubset weiter ueberwacht === / REMARK ==================================================== / SKIP-COMMANDS TO-LABEL=WAIT, - / IF=JV((&(#MIGJV),3,1) NE X'FF') / SKIP-COMMANDS TO-LABEL=LOGOFF / REMARK /.TIMEOUT REMARK ==================================================== / REMARK ==== Wartezeit abgelaufen, doch Ereignis nicht === / REMARK ==== eingetreten; Toleranz max 10 Wartefristen! === / REMARK ==================================================== / SKIP-COMANDS TO-LABEL=WAIT, - / IF=JV($SYSJV.COUNTER LE '0010') / SET-JOB-STEP / REMARK ==================================================== / REMARK ==== SPIN-OFF wegen /WAIT-EVENT Time-out oder === / REMARK ==== echtem Fehler; Protokoll wird gedruckt === / REMARK ==================================================== / LOGOFF SYSTEM-OUTPUT=*PRINT /.LOGOFF REMARK ==================================================== / REMARK ==== Normale Terminierung nach Entladen von HSMS === / REMARK ==================================================== / LOGOFF SYSTEM-OUTPUT=*DELETE
Automatisches Starten von Migrationsaufträgen durch ein Programm
Im Programm werden zwei Ereignisse definiert, einmal das Erreichen der Sättigungsstufe 1 und zum anderen die Beendigung der HSMS-Session. Beim Erreichen der Sättigungsstufe werden über den HSMS-Makro Dateien verdrängt. (Zur Verwendung des HSMS-Makros siehe den Abschnitt „Aufruf von HSMS aus Programmen“.)
Die Erläuterungen zum Ablauf sind im Programm dokumentiert.
JVTEST START PRINT NOGEN AMODE ANY RMODE ANY GPARMOD 31 BASR R10,0 USING *,R10 * * Definition der Ereigniskennungen fuer zwei Faelle: * 1. Die Pubsetbelegung ueberschreitet das vorgesehene * Saturationlevel 1 und es sollen Dateien migriert werden. * 2. Die HSMS-Session wird beendet und damit soll auch dieses * Programm beendet werden. * ENAEI EINAME=MIGRATE,EIIDRET=IDMIGR ENAEI EINAME=TERMINAT,EIIDRET=IDTERM * * * Das Ereignis, dass das Saturationlevel 1 ueberschritten wird, * soll asynchron behandelt werden. Dafuer wird eine Contingency * definiert. * ENACO CONAME=COMIGR,COADAD=CONTADD,COIDRET=IDCONT * * * Die Bedingungen fuer die oben definierten Ereignisse werden * festgelegt: * 1. Im Pubset mit der Katalogkennung '2BC' wird das Saturation- * level 1 ueberschritten, d.h., die zugehoerige Jobvariable * erhaelt an der Stelle 4 den Wert '1'. * 2. HSMS wird entladen und das Pubset nicht laenger von HSMS * unterstuetzt, d.h., die Jobvariable fuer das Pubset * bekommt in den ersten 40 Stellen den Wert x'ff...ff'. * ONEVT '($SYSHSMS.SYS.HSM.MIGRATE.2BC ,4,1)=C''1''', - EIID=IDMIGR,POST='MIGR' * ONEVT '($SYSHSMS.SYS.HSM.MIGRATE.2BC ,4,1)=X''FF''', - EIID=IDTERM,POST='TERM' * XC RESPONSE,RESPONSE * * * Fuer die definierten Ereignisse werden die Signale angefordert. * * Asynchrones Warten auf die Ueberschreitung des Saturation- * levels 1 (Wartezeit 10 Minuten): * SOLSIG EIID=IDMIGR, - COID=IDCONT,LIFETIM=600 * * synchrones Warten auf die Beendigung von HSMS * (Wartezeit 12 Minuten): * SOLSIG EIID=IDTERM,COND=UNCOND, - LIFETIM=720,RPOSTAD=RESPONSE * DISEI DS 0H * * Deaktivieren der angemeldeten Ereigniskennungen: * DISEI EIID=IDMIGR DISEI EIID=IDTERM * TERM DS 0H * * Beendigung des Programms * TERM * EJECT , CONTA DS 0H ********************************************************************** * * * Ablaufcode fuer die Contingency zur Behandlung der * * Saturationlevel-Ueberschreitung * * * ********************************************************************** BALR 10,0 USING *,10 * * * Startmeldung: 'MIGRATIONS-CONTINGENCY GESTARTET' * * WROUT TEXT1,RETCO * * Aufruf der vorgesehenen Migrationsanweisung ueber den * HSMS-Makro * PRINT GEN HSMS MF=S,ADDR=HSMSSTRG,LENGTH=255 PRINT NOGEN * * * BEENDIGUNG DER CONTINGENCY * * RETCO DS 0H RETCO * ********************************************************************** * * * Definition der auszufuehrenden Migrationsanweisung: * * Dateien im Umfang von mindestens 5000 PAM-Seiten sollen * * nach S1 migriert werden. * * * ********************************************************************** HSMSSTRG DC CL255'MIGRATE-FILES FROM-STORAGE=*S0-STORAGE-LEVEL/ (FILE-NAMES=:2BC:$*.,RELEASE-PAGES=5000,TO-STORAGE-LEVEL=/ *S1-STORAGE-LEVEL)' * * * Definition des Meldungstextes * TEXT1 DC Y(TEXT1E-TEXT1) DS XL3 DC C'MIGRATIONS-CONTINGENCY GESTARTET' TEXT1E EQU * * IDMIGR DS F IDTERM DS F IDCONT DS F RESPONSE DS 2F * CONTADD DC A(CONTA) R10 EQU 10 END