Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Parallele und serielle Verarbeitung

&pagelevel(3)&pagelevel

Standardmäßig bearbeitet ARCHIVE Dateien und Jobvariablen bei der Sicherung oder Rekonstruktion seriell: mehrere FILES- bzw. JOBVAR-Anweisungen werden grundsätzlich nacheinander bearbeitet.

Innerhalb einer FILES- bzw. JOBVAR-Anweisung kann allerdings, vor allem bei der Systemsicherung, gleichzeitig auf mehrere Sicherungsdatenträger geschrieben bzw. gleichzeitig von mehreren Sicherungsdatenträgern gelesen werden (parallele Verarbeitung).

Parallele Verarbeitung

Die parallele Verarbeitung ist bei ARCHIVE eigentlich nur für die Systembetreuung von Bedeutung, da normalerweise nur bei der Systemsicherung so große Dateimengen anfallen, dass sich parallele Verarbeitung lohnt. Aber auch jeder andere Benutzer kann parallele Verarbeitung durchführen.

Die parallele Verarbeitung steuern Sie bei ARCHIVE über den DRIVES-Operanden und bei Sicherungsläufen auch über die FILES-Anweisung.

Es werden so viele Parallelläufe gestartet, wie im DRIVES-Operanden angegeben sind. Jeder Parallellauf wird von einer Subtask bearbeitet. Diese Subtasks bedienen parallel je ein Gerät, d.h. Sie sollten nicht mehr Parallelläufe angeben, als Geräte zur Verfügung stehen. Jeder Parallellauf wird durch eine Subsave-Nummer (0, 1, ...) bezeichnet. Die Subsave-Nummer des ersten Parallellaufes ist 0.

Die einzelnen Subtasks bekommen die Information, welche Dateien sie bearbeiten sollen, in so genannten Paketen (packets) vom Benutzerauftrag des Anwenders (Maintask) mitgeteilt.
Jede Subtask arbeitet ihr Paket ab und fordert dann ein neues Paket an. Welche Dateien zu einem Paket zusammengefasst werden, können Sie bei Sicherungsläufen durch die NAME-Operanden jeder FILES-Anweisung steuern. Dies geschieht folgendermaßen:

  • Bei Sicherungsläufen bildet ARCHIVE pro Benutzer- und Katalogkennung für die zu sichernden Dateien maximal vier Pakete, abhängig von der Verteilung der Dateien auf den Volumes des Pubsets; darüber hinaus können die Dateien über mehrere NAME-Operanden innerhalb einer FILES-Anweisung auf mehrere Pakete verteilt werden. Die Pakete innerhalb einer FILES-Anweisung werden dann von mehreren Subtasks parallel abgearbeitet.

  • Bei Rekonstruktions- und Importläufen sowie beim Kopieren von Sicherungen wird die Aufteilung automatisch vorgenommen. Sie richtet sich danach, wie bei der Sicherung auf die Datenträger geschrieben wurde. Es können nur so viele Subtasks aktiv sein, wie bei der Sicherung verwendet wurden.

Es kann vorkommen, dass ein Lauf abgebrochen wird, nachdem ein Teil der FILES-Anweisungen bearbeitet wurde (z.B. wenn das Operating die Bandzuweisung mit tsn.NO ablehnt). In diesem Fall werden die Dateien, die noch nicht übertragen und explizit im NAME-Operanden angegeben wurden, im ARCHIVE-Report mit NOT PROCESSED gekennzeichnet.

Alle Aussagen über die FILES-Anweisung gelten auch für die JOBVAR-Anweisung.


Beispiel 1

/SET-LOGON-PARAMETERS TSOS
/START-ARCHIVE
 . . .
*FILES
*SAVE ...,DRIVES=3

Für jede Benutzerkennung des Systems werden bis zu vier Pakete gebildet. Die gesamten Benutzerkennungen des Systems werden parallel auf drei Magnetbandgeräten durch drei Subtasks gesichert.

Beispiel 2

/SET-LOGON-PARAMETERS TSOS
/START-ARCHIVE
 . . .
*FILES NAME=$ABC.
*SAVE DIRECTORY=...,DRIVES=2

Bei diesem Lauf werden die Dateien der Kennung $ABC auf bis zu 4 Pakete verteilt und auf zwei Magnetbandgeräten durch zwei Subtasks gesichert. Wenn das Pubset jedoch nur aus einem Volume besteht, dann wird nur ein Paket erzeugt. Dies führt dazu, dass wegen des Operanden DRIVES=2 zwei Subtasks gestartet werden, aber einer davon nichts zu tun hat. Es findet also keine parallele Verarbeitung statt.

Serielle Verarbeitung

Die einzelnen FILES-Anweisungen werden nacheinander abgearbeitet: alle in einer FILES-Anweisung angegebenen Dateien werden übertragen, bevor die nächste FILES-Anweisung bearbeitet wird.

Die erzeugten Subtasks warten, wenn für sie aus der ersten FILES-Anweisung kein weiteres Paket mehr gebildet werden kann.


Beispiel 1

/SET-LOGON-PARAMETERS TSOS
/START-ARCHIVE
 . . .
*FILES NAME=$A.
*FILES NAME=$B.
*FILES NAME=$C.
*SAVE DIRECTORY=...,DRIVES=3

Bei diesem Lauf werden die drei Kennungen zeitlich seriell abgearbeitet. Wenn die Dateien der einzelnen Kennungen gleichmäßig über die einzelnen Volumes des Pubsets verteilt sind, dann werden die drei Subtasks gleichmäßig ausgelastet sein. Besteht das Pubset aber z.B. aus nur einem Volume, dann kann innerhalb der FILES-Anweisung nur ein Paket gebildet werden und zwei Subtasks sind im Wartezustand.

Beispiel 2

/SET-LOGON-PARAMETERS TSOS
/START-ARCHIVE
 . . .
*FILES NAME=$A.
*FILES NAME=$B.,NAME=$C.,NAME=($D.AA,THRU=$D.KK9)
*SAVE ....,DRIVES=3

Erst wenn alle Dateien der Benutzerkennung A verarbeitet sind, arbeiten die drei Subtasks parallel die Dateien der zweiten FILES-Anweisung ab.

Beim Einlesen von Magnetbändern wird für jede FILES-Anweisung das ganze Magnetband nochmals von vorne durchspult. Deshalb müssen Sie beim Abfassen der Anweisungen darauf achten, ob die Aufteilung in mehrere FILES-Anweisungen sinnvoll ist.


Beispiel 3

/SET-LOGON-PARAMETERS TSOS
/START-ARCHIVE
 . . .
*FILES NAME=HUGO1
*FILES NAME=HUGO2
*RESTORE DIRECTORY=NONE,FROM=(RGA001)...

Bei dieser Anweisungsfolge wird das Magnetband RGA001 solange durchsucht, bis die Datei HUGO1 gefunden wird. Anschließend wird das Magnetband ein zweites Mal nach der Datei HUGO2 durchsucht. Um beide Dateien in einem Suchvorgang zu finden, müssen Sie folgende Anweisungsfolge eingeben:

*FILES NAME=(HUGO1,HUGO2)
*RESTORE DIRECTORY=NONE,FROM=(RGA001)...

Da die FILES-Anweisungen streng seriell abgearbeitet werden, findet auch keine Kopplung zwischen den NAME-Operanden der einzelnen FILES-Anweisungen statt. Dateien, die in mehreren FILES-Anweisungen (auch implizit!) aufgeführt sind, werden auch mehrfach verarbeitet.


Beispiel 4

Die Systembetreuung will den gesamten gemeinschaftlichen Speicherbereich mit Ausnahme der Benutzerkennungen $TSOS und $SYSDUMP sichern. Die FILES-Anweisung lautet dann:

*FILES EXCEPT=($TSOS.,$SYSDUMP.),FROM=PUBLIC

Der fehlende NAME-Operand bewirkt unter $TSOS, dass implizit sämtliche Dateien des gemeinschaftlichen Speicherbereichs angesprochen werden. Im vorliegenden Fall sind die Dateien $TSOS und $SYSDUMP über den EXCEPT-Operanden ausgeschlossen.
Im Gegensatz dazu werden bei der nachstehenden Anweisungsfolge alle Dateien des gemeinschaftlichen Speicherbereichs doppelt gesichert, ausgenommen die Dateien der Benutzerkennungen $TSOS und $SYSDUMP. Diese beiden Benutzerkennungen werden nur einmal gesichert. 

. . .
*FILES EXCEPT=$TSOS.,FROM=PUBLIC
*FILES EXCEPT=$SYSDUMP.,FROM=PUBLIC
*SAVE ...
. . .

Zusammenfassung

  • Parallele Verarbeitung findet nur innerhalb einer FILES-Anweisung statt, und zwar bei SAVE-Läufen zwischen den einzelnen Benutzerkennungen bzw. den NAME-Operanden der FILES-Anweisung.

  • Mehrere FILES-Anweisungen werden streng seriell abgearbeitet. Bei RESTORE- und IMPORT-Läufen sowie beim Kopieren von Sicherungsbeständen bedeutet dies, dass die Eingabedatenträger pro FILES-Anweisung jeweils ganz von vorne durchsucht werden. Informationen über NAME- oder EXCEPT-Operanden werden für jede FILES-Anweisung völlig getrennt verarbeitet.