Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiele zu GUARDS-SAVE

Der Anwender PAUL hat auf seiner Kennung PAUL folgende Guards eingerichtet:

/show-guard-attributes

     Guard name         Scope   Type      Creation Date       LastMod Date 
------------------------------------------------------------------------------
:XXXX:$PAUL.STDAC        SYS  STDAC    2017-12-07/10:08:09 2017-12-07/10:09:25
                         Pauls Coowner Access Condition Guard 
:XXXX:$PAUL.SYS.UCF      SYS  COOWNERP 2017-12-07/10:08:54 2017-12-07/10:10:36
                         Pauls Coowner Rule Container Guard 
------------------------------------------------------------------------------
Guards selected: 2                                              End of display

/show-access-conditions

:XXXX:$PAUL.STDAC 
   User   SUSI     has ADMISSION 
------------------------------------------------------------------------------
Guards selected: 1                                              End of display

/show-coowner-protection-rule

------------------------------------------------------------------------------
RULE CONTAINER :XXXX:$PAUL.SYS.UCF                  ACTIVE  COOWNER PROTECTION
------------------------------------------------------------------------------
RULE1         OBJECT      = * 
              CONDITIONS  = $PAUL.STDAC
              TSOS-ACCESS = SYSTEM-STD 
------------------------------------------------------------------------------
RULE CONTAINER SELECTED: 1                                      END OF DISPLAY

Der Anwender PAUL startet eine GUARDS-SAVE-Sitzung:

/start-guards-save


Der Anwender PAUL möchte seinen gesamten Guardbestand in eine Sicherungsdatei übertragen:

//backup-guards guard-name=*,backup-file-name=g-save

%  PRO7014 '2' GUARDS SAVED IN BACKUP FILE ':XXXX:$PAUL.G-SAVE' 
%******************************************************************************
%GUARDS-SAVE  BACKUP-GUARDS     Started by User  PAUL       2017-12-07/14:11:58
%                               ------------------------- 
%                               ***  Begin of Output  *** 
%******************************************************************************
%Backup File     : :XXXX:$PAUL.G-SAVE 
%Backup Date     : 2017-12-07/14:11:58 
%Backup Pubset   : XXXX 
% 
%Backup Guard    : :XXXX:$PAUL.* 
%Backup Type     : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC   , UNDEF 
%Backup Resolve  : *YES 
%******************************************************************************
%Saved  Guards   : 2 
%Faulty Guards   : 0 
%******************************************************************************
% 
%                  Alphabetical List of Saved and Faulty Guards 
% 
%==============================================================================
%Guard Name                Guard Type      Error    Status 
%----------                ----------      -----    ------ 
%:XXXX:$PAUL.STDAC         STDAC                    saved 
%:XXXX:$PAUL.SYS.UCF       COOWNERP                 saved 
%==============================================================================
% 
%                  Alphabetical List of Cross References 
% 
%==============================================================================
%:XXXX:$PAUL.SYS.UCF       COOWNERP    ->  :XXXX:$PAUL.STDAC         STDAC 
%-----------------------------------------------------------------------------%:XXXX:$PAUL.STDAC
         STDAC       <-  :XXXX:$PAUL.SYS.UCF       COOWNERP 
%==============================================================================
% 
%******************************************************************************
%GUARDS-SAVE  BACKUP-GUARDS     Started by User  PAUL       2017-12-07/14:11:58
%                               ------------------------- 
%                               ***   End of Output   *** 
%******************************************************************************

Anhand des Protokolls hat sich der Anwender PAUL überzeugt, dass die Sicherung fehlerfrei durchgeführt wurde. Die XREF-Liste zeigt ihm, das in seinem Guardbestand keine Referenzen zu fremden Guards auftreten, die den Sicherungsstand damit unter Umständen unvollständig gemacht hätten.

Anmerkung

Um das Protokoll zu verkürzen, wird in den folgenden Beispielen auf ein RESOLVE verzichtet. In der Praxis sollte ein RESOLVE nur nur dann ausgeschaltet werden, wenn zum Beispiel nur Regelbehälter ohne die von ihnen referenzierten Guards bearbeitet werden sollen.

Der Anwender PAUL startet nun einen programmgesteuerten Restaurierungslauf, mit dem er alle seine gesicherten Guards wieder ins System übertragen will:

//restore-guards guard-name=*,select=(resolve=*no),backup-file-name=g-save

%  PRO7021 '0' GUARDS RESTORED OUT OF BACKUP FILE ':XXXX:$PAUL.G-SAVE 
%******************************************************************************
%GUARDS-SAVE  RESTORE-GUARDS    Started by User  PAUL       2017-12-07/17:31:15
%                               ------------------------- 
%                                ***  Begin of Output  *** 
%******************************************************************************
%Backup File     : :XXXX:$PAUL.G-SAVE 
%Backup Date     : 2017-12-07/14:11:58 
%Backup Pubset   : XXXX 
%Backup Guards   : 2 
% 
%Restore Guard   : :XXXX:$PAUL.* 
%Restore Type    : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC   , UNDEF 
%Restore Resolve : *NO 
%Restore Replace : *NO
%Restore Target  : *SYSTEM 
% 
%New Pubset-Id   : *SAME 
%New User-Id     : *SAME 
%New Name        : *SAME 
%New Prog Pvs-Id : *SAME 
%******************************************************************************
%Restored Guards : 0 
%Faulty Guards   : 2 
%******************************************************************************
%
%                  Alphabetical List of Restored and Faulty Guards 
% 
%==============================================================================
%Guard Name                Guard Type      Error    Status 
%----------                ----------      -----    ------ 
%:XXXX:$PAUL.STDAC         STDAC           PRO1006  not restored or overwritten
%:XXXX:$PAUL.SYS.UCF       COOWNERP        PRO1006  not restored or overwritten
%==============================================================================
% 
%******************************************************************************
%GUARDS-SAVE  RESTORE-GUARDS    Started by User  PAUL       2017-12-07/17:31:15
%                               ------------------------- 
%                               ***   End of Output   *** 
%******************************************************************************

Der programmgesteuerte Restaurierungslauf ist fehlgeschlagen. Um zu erfahren, warum keine Guards restauriert wurden, gibt der Anwender PAUL ein /HELP-Kommando auf die Meldungsnummer PRO1006:

//execute help pro1006

% PRO1006 GUARD '(&00)' ALREADY EXISTS. FUNCTION NOT PROCESSED

Nun startet der Anwender PAUL den Lauf noch einmal und gibt an, dass die im System vorhandenen Guards bei der Restaurierung überschrieben werden sollen:

//restore-guards guard-name=*, -
//               select=(resolve=*no), -
//               backup-file-name=g-save, -
//               replace-guard=*yes

%  PRO7021 '2' GUARDS RESTORED OUT OF BACKUP FILE ':XXXX:$PAUL.G-SAVE 
%******************************************************************************
%GUARDS-SAVE  RESTORE-GUARDS    Started by User  PAUL       2017-12-07/17:35:06
%                               ------------------------- 
%                               ***  Begin of Output  *** 
%******************************************************************************
%Backup File     : :XXXX:$PAUL.G-SAVE 
%Backup Date     : 2017-12-07/14:11:58 
%Backup Pubset   : XXXX 
%Backup Guards   : 2 
% 
%Restore Guard   : :XXXX:$PAUL.* 
%Restore Type    : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC   , UNDEF 
%Restore Resolve : *NO 
%Restore Replace : *YES
%Restore Target  : *SYSTEM 
% 
%New Pubset-Id   : *SAME 
%New User-Id     : *SAME 
%New Name        : *SAME 
%New Prog Pvs-Id : *SAME 
%******************************************************************************
%Restored Guards : 2 
%Faulty Guards   : 0 
%******************************************************************************
% 
%                  Alphabetical List of Restored and Faulty Guards 
% 
%==============================================================================
%Guard Name                Guard Type      Error    Status 
%----------                ----------      -----    ------ 
%:XXXX:$PAUL.STDAC         STDAC                    restored 
%:XXXX:$PAUL.SYS.UCF       COOWNERP                 restored 
%==============================================================================
% 
%******************************************************************************
%GUARDS-SAVE  RESTORE-GUARDS    Started by User  PAUL       2017-12-07/17:35:06
%                               ------------------------- 
%                               ***   End of Output   *** 
%******************************************************************************

Der Anwender PAUL möchte seinen Guardbestand auch seiner nichtprivilegierten Kollegin MARY zur Verfügung stellen, die auf dem Pubset ZZZZ arbeitet. Der Anwender PAUL erstellt für sie eine Kommandoprozedur und lässt dabei das Pubset XXXX in ZZZZ umbenennen und die Benutzerkennung PAUL in MARY. Die Prozedurkommandos sollen so generiert werden, dass bei der Anwenderin MARY keine vorhandenen Guards überschrieben werden.

//restore-guards guard-name=*, -
//               select=(resolve=*no), -
//               backup-file-name=g-save, -
//               new-path=(pubset-id=zzzz,user-id=mary), -
//               target=(proc-file-name=prc.mary,replace-proc-file=*yes)

%  PRO7021 '2' GUARDS RESTORED OUT OF BACKUP FILE ':XXXX:$PAUL.G-SAVE 
%******************************************************************************
%GUARDS-SAVE  RESTORE-GUARDS    Started by User  PAUL       2017-12-07/17:40:45
%                               ------------------------- 
%                               ***  Begin of Output  *** 
%******************************************************************************
%Backup File     : :XXXX:$PAUL.G-SAVE 
%Backup Date     : 2017-12-07/14:11:58 
%Backup Pubset   : XXXX 
%Backup Guards   : 2 
% 
%Restore Guard   : :XXXX:$PAUL.* 
%Restore Type    : COOWNERP, DEFAULTP, DEFPATTR, DEFPUID , STDAC   , UNDEF 
%Restore Resolve : *NO 
%Restore Replace : *NO 
%Restore Target  : $PAUL.PRC.MARY 
% 
%New Pubset-Id   : ZZZZ
%New User-Id     : MARY
%New Name        : *SAME 
%New Prog Pvs-Id : *SAME 
%******************************************************************************
%Generated Guards: 2 
%Faulty Guards   : 0 
%******************************************************************************
% 
%                  Alphabetical List of Restored and Faulty Guards 
% 
%==============================================================================
%Guard Name                Guard Type      Error    Status 
%----------                ----------      -----    ------ 
%:XXXX:$PAUL.STDAC         STDAC                    generated and path changed 
%:XXXX:$PAUL.SYS.UCF       COOWNERP                 generated and path changed 
%==============================================================================
% 
%******************************************************************************
%GUARDS-SAVE  RESTORE-GUARDS    Started by User  PAUL       2017-12-07/17:40:45
%                               ------------------------- 
%                               ***   End of Output   *** 
%******************************************************************************

Der Anwender PAUL ist fertig und kann die GUARDS-SAVE-Sitzung beenden. Danach lässt er sich die erzeugte Prozedur anzeigen:

//end

/show-file PRC.MARY

/ BEGIN-PROCEDURE LOGGING=*NO 
/ 
/ REMARK MOD-JOB-OPT LOGGING=(LISTING=*YES) 
/ STEP 
/ ASSIGN-SYSLST TO=#RESTORE.LST.2017-12-07.174045 
/ STEP 
/ 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT 'GUARDS-SAVE                                RESTORE-GUARDS' 
/ WRI-TEXT 'Proc Generated by User  PAUL      at  2017-12-07/17:40:45' 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT '                  ***  Begin  ***                        ' 
/          "*********************************************************" 
/          "Backup File     : :XXXX:$PAUL.G-SAVE                     " 
/          "Backup Date     : 2017-12-07/14:11:58                    " 
/          "Backup Pubset   : XXXX                                   " 
/          "                                                         " 
/          "Restore Guard   : :XXXX:$PAUL.*                          " 
/          "Restore Type    : COOWNERP, DEFAULTP, DEFPATTR,          " 
/          "                  DEFPUID , STDAC   , UNDEF              " 
/          "Restore Resolve : *NO                                    " 
/          "Restore Replace : *NO                                    " 
/          "                                                         " 
/          "New Pubset-Id   : ZZZZ                                   "
/          "New User-Id     : MARY                                   "
/          "New Name        : *SAME                                  " 
/          "New Prog Pvs-Id : *SAME                                  " 
/          "*********************************************************" 
/          "** =================================================== **" 
/          "**                                                     **" 
/          "** Guard    :XXXX:$PAUL.STDAC         STDAC    0000001 **" 
/          "** -->      :ZZZZ:$MARY.STDAC                          **" 
/          "**                                                     **" 
/          "** =================================================== **" 
/           CRE-GUARD :ZZZZ:$MARY.STDAC                                - 
/              ,SCOPE=*HOST-SYSTEM                                     - 
/              ,USER-INFO='Pauls Coowner Access Condition Guard       ' 
/ WRI-TEXT '** :ZZZZ:$MARY.STDAC         STDAC     created         **' 
/           SKIP .R0000001 
/           STEP 
/ WRI-TEXT '** :ZZZZ:$MARY.STDAC         STDAC     create  *error* **' 
/           SKIP .E0000001 
/ 
/           .R0000001 
/           ADD-ACCESS-CONDITIONS :ZZZZ:$MARY.STDAC                    - 
/              ,SUBJECTS=*USER(USER-IDENTIFICATION=SUSI    )           - 
/              ,ADMISSION=*YES                                         - 
/              ,DIALOG-CONTROL=*NO 
/ WRI-TEXT '** :ZZZZ:$MARY.STDAC         STDAC     restored        **' 
/           SKIP .E0000001 
/           STEP 
/ WRI-TEXT '** :ZZZZ:$MARY.STDAC         STDAC     restore *error* **' 
/           SKIP .E0000001 
/           .E0000001 
/ 
/          "** =================================================== **" 
/          "**                                                     **" 
/          "** Guard    :XXXX:$PAUL.SYS.UCF       COOWNERP 0000002 **" 
/          "** -->      :ZZZZ:$MARY.SYS.UCF                        **" 
/          "**                                                     **" 
/          "** =================================================== **" 
/           CRE-GUARD :ZZZZ:$MARY.SYS.UCF                              - 
/              ,SCOPE=*HOST-SYSTEM                                     - 
/              ,USER-INFO='Pauls Coowner Rule Container Guard         ' 
/ WRI-TEXT '** :ZZZZ:$MARY.SYS.UCF       COOWNERP  created         **' 
/           SKIP .R0000002 
/           STEP 
/ WRI-TEXT '** :ZZZZ:$MARY.SYS.UCF       COOWNERP  create  *error* **' 
/           SKIP .E0000002 
/ 
/           .R0000002 
/           ADD-COOWNER-PROTECTION-RULE :ZZZZ:$MARY.SYS.UCF            - 
/              ,PROTECTION-RULE=RULE1                                  - 
/              ,RULE-POSITION=*LAST                                    - 
/              ,PROTECT-OBJECT=*PARAMETERS                             - 
/                (NAME=*                                               - 
/                ,CONDITION-GUARD=$MARY.STDAC                          
/                ,TSOS-ACCESS=*SYSTEM-STD)                             - 
/              ,GUARD-CHECK=*NO                                        - 
/              ,DIALOG-CONTROL=*NO 
/ WRI-TEXT '** :ZZZZ:$MARY.SYS.UCF       COOWNERP  restored        **' 
/           SKIP .E0000002 
/           STEP 
/ WRI-TEXT '** :ZZZZ:$MARY.SYS.UCF       COOWNERP  restore *error* **' 
/           SKIP .E0000002 
/ 
/           .E0000002 
/          "*********************************************************" 
/          "Guard Name                Guard Type Error   Status      " 
/          "----------                ---------- -----   ------      " 
/          ":XXXX:$PAUL.STDAC         STDAC              generated   " 
/          ":XXXX:$PAUL.SYS.UCF       COOWNERP           generated   " 
/          "---------------------------------------------------------" 
/          "Generated Guards: 2                                      " 
/          "Faulty Guards   : 0                                      " 
/          "*********************************************************" 
/ 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT '                   ***  End  ***                         ' 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT 'GUARDS-SAVE                                RESTORE-GUARDS' 
/ WRI-TEXT 'Proc Generated by User  PAUL      at  2017-12-07/17:40:45' 
/ WRI-TEXT '*********************************************************' 
/ STEP 
/ ASSIGN-SYSLST TO=*PRIMARY 
/ STEP 
/ END-PROCEDURE 


Am nächsten Tag lässt die Anwenderin MARY die vom Anwender PAUL generierte Prozedur unter ihrer Kennung ablaufen:

/call-procedure $paul.prc.mary

*********************************************************
GUARDS-SAVE                                RESTORE-GUARDS
Proc Generated by User  PAUL      at  2017-12-07/17:40:45
*********************************************************
                  ***  Begin  *** 
*********************************************************
** :ZZZZ:$MARY.STDAC         STDAC     created         **
** :ZZZZ:$MARY.STDAC         STDAC     restored        **
** --------------------------------------------------- **
** :ZZZZ:$MARY.SYS.UCF       COOWNERP  created         **
** :ZZZZ:$MARY.SYS.UCF       COOWNERP  restored        **
*********************************************************
                  ***   End   *** 
*********************************************************
GUARDS-SAVE                                RESTORE-GUARDS
Proc Generated by User  PAUL      at  2017-12-07/17:40:45
*********************************************************

Unter der Benutzerkennung der Anwenderin MARY sind nun folgende Guards eingerichtet:

/show-guard-attributes

     Guard name         Scope   Type      Creation Date       LastMod Date 
------------------------------------------------------------------------------
:ZZZZ:$MARY.STDAC        SYS  STDAC    2017-12-08/08:28:09 2017-12-08/08:28:25
                         Pauls Coowner Access Condition Guard 
:ZZZZ:$MARY.SYS.UCF      SYS  COOWNERP 2017-12-08/08:28:54 2017-12-08/08:29:36
                         Pauls Coowner Rule Container Guard 
------------------------------------------------------------------------------
Guards selected: 2                                              End of display
/show-access-conditions
:ZZZZ:$MARY.STDAC 
   User   SUSI     has ADMISSION 
------------------------------------------------------------------------------
Guards selected: 1                                              End of display
/show-coowner-protection-rule
------------------------------------------------------------------------------
RULE CONTAINER :XXXX:$MARY.SYS.UCF                  ACTIVE  COOWNER PROTECTION
------------------------------------------------------------------------------
RULE1         OBJECT      = *
CONDITIONS  = $MARY.STDAC
              TSOS-ACCESS = SYSTEM-STD 
------------------------------------------------------------------------------
RULE CONTAINER SELECTED: 1                                      END OF DISPLAY