Bei jedem GUARDS-SAVE-Lauf werden Vorgänge und Ereignisse auf SYSOUT/SYSLST ausgegeben. Die Protokolle gliedern sich dabei wie folgt:
Kopfzeilen
Rahmenbedingungen
Liste der bearbeiteten Guards
Querverweisliste
Dieser Protokollteil entfällt, wenn die Suche nach Referenzen ausgeschaltet ist (AngabeSELECT=*BY-ATTRIBUTES(RESOLVE=*NO)
).Fußzeilen
Kopfzeilen
Die Kopfzeilen markieren den Beginn des Protokolls und informieren darüber, welche GU-ARDS-SAVE-Funktion das Protokoll erzeugt hat und welcher Benutzer die Funktion zu welchem Zeitpunkt angefordert hat.
Beispiel
%****************************************************************************** %GUARDS-SAVE BACKUP-GUARDS Started by User MARY 2017-12-07/14:11:58 % ------------------------- & *** Begin of Output *** %******************************************************************************
Liste der allgemeinen Rahmenbedingungen
Abhängig von der gewählten GUARDS-SAVE-Funktion hat dieser Protokollabschnitt folgenden Inhalt:
Sicherungslauf (//BACKUP-GUARDS)
Es werden die Basisdaten des Sicherungslaufs protokolliert, mit denen das Sicherungsergebnis auch zu einem späteren Zeitpunkt noch nachvollzogen werden kann.
Basisdaten sind
Name der Sicherungsdatei
Zeitpunkt der Sicherung
Vorgaben, mit denen der Benutzer die zu sichernden Guards ausgewählt hat (Pubset, Guardname, Guardtyp und Referenz-Suche)
Beispiel
%****************************************************************************** %Backup File : :XXXX:$MARY.BACKUP-FILE %Backup Date : 2017-12-07/14:11:58 %Backup Pubset : XXXX % %Backup Guard : :XXXX:$MARY.* %Backup Type : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC , UNDEF %Backup Resolve : *YES %****************************************************************************** %Saved Guards : 6 %Faulty Guards : 1 %******************************************************************************
Restaurierungslauf (//RESTORE-GUARDS)
Im ersten Teil werden Basisdaten des Sicherungslaufs protokolliert, durch den die Sicherungsdatei erzeugt wurde. Diese Angaben werden aus der Sicherungsdatei ermittelt. Sie entsprechen im Wesentlichen dem Protokoll des Sicherungslaufs.
Der zweite Teil enthält die Angaben, mit denen der Benutzer die zu restaurierenden Guards ausgewählt hat und die Art der Restaurierung.
Im dritten Teil werden die Vorgaben für die bei der Restaurierung durchgeführten Umbenennungen protokolliert.
Beispiel
%****************************************************************************** %Backup File : :XXXX:$MARY.BACKUP-FILE %Backup Date : 2017-12-07/14:11:58 %Backup Pubset : XXXX %Backup Guards : 6 % %Restore Guard : :XXXX:$MARY.* %Restore Type : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC , UNDEF %Restore Resolve : *YES %Restore Replace : *YES %Restore Target : *SYSTEM % %New Pubset-Id : *SAME %New User-Id : *SAME %New Name : *SAME %New Prog Pvs-Id : *SAME %****************************************************************************** %Restored Guards : 6 %Faulty Guards : 1 %******************************************************************************
Anzeigelauf
(//SHOW-BACKUP-FILE)
Im ersten Teil werden Basisdaten des Sicherungslaufs protokolliert, durch den die Sicherungsdatei erzeugt wurde. Diese Angaben werden aus der Sicherungsdatei ermittelt. Sie entsprechen im Wesentlichen dem Protokoll des Sicherungslaufs.
Der zweite Teil enthält die Angaben, mit denen der Benutzer die anzuzeigenden Guards ausgewählt hat.
Beispiel
%****************************************************************************** %Backup File : :XXXX:$MARY.BACKUP-FILE %Backup Date : 2017-12-07/14:11:58 %Backup Pubset : XXXX %Backup Guards : 6 % %Show Guard : :XXXX:$MARY.* %Show Type : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC , UNDEF %Show Resolve : *YES %****************************************************************************** %Selected Guards : 6 %Faulty Guards : 1 %******************************************************************************
Liste der bearbeiteten Guards
Für jedes selektierte Guard wird protokolliert, ob und in welcher Form es bearbeitet wurde bzw. warum es nicht bearbeitet werden konnte.
Zunächst werden in alphabetischer Reihenfolge die Namen der fehlerfrei bearbeiteten Guards aufgelistet.
Gegebenenfalls schließt sich getrennt durch eine gestrichelte Linie eine alphabetische Auflistung der fehlerhaft oder nicht bearbeiteten Guards an.
Die Einträge haben folgenden Aufbau:
Guardname (Guard Name)
In jedem GUARDS-SAVE-Protokoll werden die bearbeiteten Guards immer mit dem Namen und dem Pfad aufgelistet, der zum Zeitpunkt der Sicherung in die Sicherungsdatei eingetragen wurde.
Dies gilt auch für Restaurierungsläufe, bei denen Umbenennungen durchgeführt werden! Angaben über vorgenommene Umbenennungen gehen nur aus den dokumentierten Rahmenbedingungen hervor (siehe „Liste der allgemeinen Rahmenbedingungen").
Guardtyp (Guard Type)
Fehlerursache (Error)
Tritt bei der Bearbeitung eines Guards ein Fehler auf, wird ein entsprechender Fehlercode in Form einer Meldungsnummer mit Präfix protokolliert. Mit dem Kommando /HELP kann sich der Anwender den zugehörigen Fehlertext anzeigen lassen.
Status
Abhängig von der gewählten GUARDS-SAVE-Funktion wird der Status eines Guards folgendermaßen angezeigt:
Sicherung (//BACKUP-GUARDS):
Status:
Erläuterung:
saved
Das Guard wurde gesichert.
only selected
Das Guard wurde nur ausgewählt aber nicht gesichert.
only referenced
Das Guard wurde nur referenziert aber nicht gesichert.
undefined?????
Beim Auftreten diesen beiden Statusmeldungen sollte der Systemverwalter benachrichtigt werden, denn der Status konnte von GUARDS-SAVE nicht vorschriftsmäßig gesetzt werden.
Restaurierung (//RESTORE-GUARDS)
Status:
Erläuterung:
restored
Das Guard wurde programmgesteuert restauriert.
restored and path changed
Das Guard wurde programmgesteuert mit geändertem Pfadnamen restauriert.
generated
Die Kommandos zur Restaurierung des Guards wurden generiert.
generated and path changed
Die Kommandos zur Restaurierung des Guards wurden mit geändertem Pfadnamen generiert.
only selected
Das Guard wurde nur ausgewählt aber nicht restauriert.
only referenced
Das Guard wurde nur referenziert aber nicht restauriert.
not deleted
Das Guard konnte nicht gelöscht und darum auch nicht restauriert werden.
(bei: REPLACE-GUARD=*YES).deleted and not restored
Das Guard wurde für die Restaurierung gelöscht, danach aber nicht restauriert.
(bei: REPLACE-GUARD=*YES).not restored or overwritten
Das zu restaurierende Guards ist vorhanden und darf darum nicht restauriert werden.
(bei: REPLACE-GUARD=*NO).
Das Guard kann aus anderen Gründen nicht restauriert werden.incompletely restored
Das Guard wurde nicht vollständig restauriert.
undefined?????
Beim Auftreten diesen beiden Statusmeldungen sollte der Systemverwalter benachrichtigt werden, denn der Status konnte von GUARDS-SAVE nicht vorschriftsmäßig gesetzt werden.
Anzeige (//SHOW-BACKUP-FILE)
Status:
Erläuterung:
only selected
Das Guard wurde nur ausgewählt aber die Attribute nicht angezeigt.
only referenced
Das Guard wurde nur referenziert aber die Attribute nicht angezeigt.
undefined?????
Beim Auftreten diesen beiden Statusmeldungen sollte der Systemverwalter benachrichtigt werden, denn der Status konnte von GUARDS-SAVE nicht vorschriftsmäßig gesetzt werden.
Beispiel
% % Alphabetical List of Saved and Faulty Guards % %============================================================================== %Guard Name Guard Type Error Status %---------- ---------- ----- ------ %:XXXX:$MARY.COOWNERP COOWNERP saved %:XXXX:$MARY.DEFAULTP DEFAULTP saved %:XXXX:$MARY.DEFPATTR DEFPATTR saved %:XXXX:$MARY.DEFPUID DEFPUID saved %:XXXX:$MARY.STDAC STDAC saved %:XXXX:$MARY.UNDEF UNDEF saved %-----------------------------------------------------------------------------%:XXXX:$LUZIFER.DEFPATTR -undefined- PRO1007 only referenced %==============================================================================
Liste mit den Querverweisen
Es wird protokolliert, wie sich die Guards untereinander referenzieren.
Dieser Protokollteil entfällt, wenn die Suche nach Referenzen ausgeschaltet ist (Angabe SELECT=*BY-ATTRIBUTES(RESOLVE=*NO)
).
Im ersten Abschnitt wird in alphabetischer Reihenfolge jedes Guard aufgelistet, das weitere Guards referenziert, zusammen mit den Namen dieser Referenzguards.
Im zweiten Abschnitt wird in alphabetischer Reihenfolge jedes einzelne Referenzguard aufgeführt, zusammen mit den Namen der Guards, die es referenzieren.
Falls keine Referenzen auftreten, zum Beispiel weil nur Guards des Typs STDAC bearbeitet wurden, wird ein entsprechender Hinweis ausgegeben
Beispiel
% % Alphabetical List of Cross References % %============================================================================== %:XXXX:$MARY.COOWNERP COOWNERP -> :XXXX:$MARY.STDAC STDAC %:XXXX:$MARY.DEFAULT DEFAULTP -> :XXXX:$LUZIFER.DEFPATTR -undefined% -> :XXXX:$MARY.DEFPUID DEFPUID %:XXXX:$MARY.DEFPATTR DEFPATTR -> :XXXX:$MARY.STDAC STDAC %-----------------------------------------------------------------------------%:XXXX:$LUZIFER.DEFPATTR -undefined- <- :XXXX:$MARY.DEFAULTP DEFAULTP %:XXXX:$MARY.DEFPUID DEFPUID <- :XXXX:$MARY.DEFAULTP DEFAULTP %:XXXX:$MARY.STDAC STDAC <- :XXXX:$MARY.COOWNERP COOWNERP % <- :XXXX:$MARY.DEFPATTR DEFPATTR %==============================================================================
Falls keine Referenzen auftreten, sieht die Liste folgendermaßen aus:
% % Alphabetical List of Cross References % %============================================================================== %All guards without references %==============================================================================
Fußzeilen
Die Kopfzeilen markieren das Ende des Protokolls und informieren darüber, welche GUARDS-SAVE-Funktion das Protokoll erzeugt hat und welcher Benutzer die Funktion zu welchem Zeitpunkt angefordert hat.
Beispiel
%****************************************************************************** %GUARDS-SAVE BACKUP-GUARDS Started by User MARY 2017-12-07/14:11:58 % ------------------------- & *** End of Output *** %******************************************************************************