Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Wiederherstellen von DMS-Dateien (Recovery)

&pagelevel(4)&pagelevel

Das Wiederherstellen wird für alle DMS-Dateien angeboten, die sich auf einem SM-Pubset befinden. Es basiert auf der Rekonfigurations-Fähigkeit von SM-Pubsets und auf der erweiterten HSMS-Auftragsverwaltung innerhalb eines SM-Pubsets.

Manuelles Wiederherstellen

Wenn ein Host des Rechnerverbundes nicht mehr verfügbar ist, muss der HSMS-Verwalter sicherstellen, dass das DMS auf den SM-Pubset zugreifen kann:

  • Wenn der SM-Pubset als exklusives Pubset importiert war, muss der HSMS-Verwalter den SM-Pubset auf dem Ersatz-Host importieren. Die Steuerdatei, die auf dem SM-Pubset liegt, wird gelesen. Alle Metadaten (Archive, Deklarationen für das SM-Pubset, ...) werden den lokalen Metadaten hinzugefügt. Anschließend ist der SM-Pubset wieder für neue HSMS-Tätigkeiten verfügbar.

  • Wenn es sich um einen Shared-SM-Pubset handelt, sind für die verbleibenden Sharer immer noch HSMS-Tätigkeiten möglich, solange auf den SM-Pubset tatsächlich zugegriffen werden kann. Bei einem Ausfall des Masters müssen die Sharer unbedingt rekonfiguriert werden. Das Subsystem MSCF stellt für eine automatische Rekonfiguration durch einen Backup-Master einen Kontrolltask bereit.

Nachdem auf den SM-Pubset wieder zugegriffen werden kann, sollte der HSMS-Verwalter entscheiden, ob die Aufträge, die von dem ausgefallenen Host gerade bearbeitet worden sind, für den Restart wieder verfügbar sein müssen. Die Aufträge des SM-Pubsets können mit der HSMS-Anweisung SHOW-REQUESTS ausgegeben werden. Für jeden Auftrag wird der sperrende Host angezeigt. Nähere Informationen über Auftragssperren in SM-Pubsets finden Sie im Abschnitt „Auftragsverwaltung“.

Anschließend muss der HSMS-Verwalter die HSMS-Anweisung RECOVER-REQUESTS geben, um den Status all jener Aufträge zu normalisieren, die an einen Host gekoppelt sind und zum Wiederherstellen ausgewählt wurden. Bei der Anweisung RECOVER-RE-
QUESTS ist beschrieben, welches Ergebnis durch das Wiederherstellen erreicht wird.
Bei Shared-Pubsets kann das Wiederherstellen nur am Master-Sharer erteilt werden.

Hinweis für MSCF-Rekonfiguration

Wenn in der MSCF-Rekonfiguration ein Fehler auftritt, wird der Pubset voraussichtlich in den QUIET-Modus umgeschaltet. Aus HSMS-Sicht ist der Pubset aber immer noch in Betrieb (da er nicht exportiert wurde). Auf den Pubset kann aber nicht mehr zugegriffen werden. Der Systemadministrator sollte diese Situation unbedingt bereinigen, indem er entweder einen neuen Master für den SM-Pubset aufruft oder den Pubset auf jedem Slave exportiert.

Automatisiertes Wiederherstellen

Ein automatisiertes Wiederherstellen von HSMS-Aufträgen ist nur für Konfigurationen mit Shared-SM-Pubsets möglich. Backup-Sharer müssen in Betrieb sein, um den Ausfall eines anderen Sharers feststellen zu können. HSMS-Aufträge können nur nach einem erfolgreichem MSCF-Recovery wiederhergestellt werden.

Ein automatisiertes Wiederherstellen von HSMS-Aufträgen wird durch den Einsatz des Produkts PROP-XT erreicht. Mit PROP-XT lassen sich Ereignisse definieren, die auf Konsolmeldungen basieren. Diese Ereignisse werden in einer S-Prozedur definiert, die auf jedem Host läuft. Wenn spezifische MSCF-Meldungen festgestellt werden, die sich auf ein erfolgreiches MSCF-Recovery beziehen, wird das Wiederherstellen von HSMS-Aufträgen eingeleitet.

Nähere Informationen zu PROP-XT finden Sie im Handbuch „PROP-XT“ [19].

Beispiel für eine S-Prozedur zum automatisierten Wiederherstellen

Die folgende S-Prozedur beschreibt einen HSMS-Watch-Dog-Task, der automatisiert HSMS-Aufträge wiederherstellt, nachdem ein Slave-Ausfall festgestellt wurde. Nähere Informationen zu Watch-Dogs finden Sie im Handbuch „HIPLEX MSCF“ [20].

Struktur der S-Prozedur

PROP-XT-Bearbeitung beginnen;

Operator-Rolle ROLEALL anfordern, die vorher mit SYSPRIV definiert werden muss;

PROP-XT-Ereignis mit dem Namen DMS03B0 erstellen, das auf der Konsolmeldung DMS03B0 basiert;

Beobachtungsschleife, deren Beendigung von einer Jobvariablen gesteuert wird;

      

Auf Ereignis DMS03B0 warten;

Kommando /SHOW-SHARED-PUBSET <pubset-Id> in die Variable PUBSET-LIST ausgeben;

Jeden Sharer durchsuchen, der von /SHOW-SHARED-PUBSET gemeldet wird, um feszustellen, ob der lokale Host Master-Zugriff auf den Pubset hat und um den Namen des ausgefallenen Partners zu ermitteln;

   

Falls Master-Zugriff und gleichzeitig Ausfall des Slave:


  

HSMS-Anweisung RECOVER-REQUESTS ausgeben;

Variable PUBSET-LIST loeschen;


PROP-XT ausschalten;

Exit

S-Prozedur

Die Erläuterungen zum Ablauf sind in der Prozedur dokumentiert.

/SET-PROCEDURE-OPTIONS DATA-ESCAPE-CHAR=*STD
/
/ "-------------------------------------------------------------------------"
/ "-- Beispiel fuer einen HSMS-Watch-Dog-Task                              -"
/ "--                                                                     --"
/ "-- Diese SDF-P-Prozedur richtet einen Watch-Dog-Task ein, der fuer das --"
/ "-- automatisierte Wiederherstellen von HSMS-Auftraegen nach dem Ausfall--"
/ "-- eines Slave-Shareres entworfen wurde.                               --"
/ "--                                                                     --"
/ "-- Folgende Umgebung ist erforderlich:                                 --"
/ "-- * Produkt PROP-XT muss installiert und das Subsystem erzeugt sein;  --"
/ "-- * Operator-Rolle ROLEALL muss mit SYSPRIV definiert worden sein:    --"
/ "--   /CREATE-OPER-ROLE ROLEALL, ROUT=*ALL                              --"
/ "--   /MODIFY-OPER-ATTR USER=TSOS,ADD=ROLEALL                           --"
/ "-- * Die Jobvariablen muessen verfuegbar sein, vor allem $SYSJV.HOST   --"
/ "--                                                                     --"
/ "-- Der Batch-Task benutzt:                                             --"
/ "-- * die Jobvariable HSMS.WATCHDOG.MON zum Ueberwachen der Task        --"
/ "-- * die Datei HSMS.WATCHDOG.LST zum Ausgeben der Task                 --"
/ "--                                                                     --"
/ "-- Starten der Watch-Dog-Task mit dem Priv SYSHSMS:                    --"
/ "-- /ENTER-PROC <filename-containing-this-proc>, JOB-NAME=HSMSWDOG      --"
/ "--                                                                     --"
/ "-- Anhalten der Watch-Dog-Task mit:                                    --"
/ "-- /SETJV HSMS.WATCHDOG.MON,'STOP'                                     --"
/ "--                                                                     --"
/ "-- Der Watch-Dog-Task sollte auf jedem Host erstellt werden, der auf   --"
/ "-- mindestens 1 SM-Pubset Master-Zugriff hat.                          --"
/ "-- Während der Operation wartet der Watch-Dog-Task auf die Konsolmeldung-"
/ "-- DMS03B0 und gibt die HSMS-Anweisung RECOVER-REQUESTS aus, wenn die  --"
/ "-- Bedingungen für den lokalen Master-Zugriff und den Slave-Ausfall    --"
/ "-- eintreten.                                                          --"
/ "--                                                                     --"
/ "-- Hinweis:                                                            --"
/ "-- Dieses Beispiel unterstuetzt nur das Wiederherstellen von Auftraegen--"
/ "-- nach Slave-Ausfaellen bei Master-Sharern. Es unterstuetzt nicht das --"
/ "-- Wiederherstellen von Auftraegen nach dem Ausfall eines Masters.     --"
/ "-------------------------------------------------------------------------"
/
/
/ "-------------------------------------------------------------------------"
/ "-- Deklaration der lokalen Variablen                                   --"
/ "--                                                                     --"
/ "-------------------------------------------------------------------------"
/
/ " Variable SYSPOP fuer den Dialog mit PROP-XT erstellen " 
/DECLARE-VARIABLE NAME=SYSPOP(TYPE=STRUCTURE)
/
/ " Variable PUBSET-LIST, um die Ausgabe von /SHOW-SHARE-PUBSET zu erhalten "
/DECLARE-VARIABLE VARIABLE-NAME=PUBSET-LIST(TYPE=*STRUCTURE(DEFINITION=-
/*DYNAMIC)),MULTIPLE-ELEMENTS=*LIST
/
/ " Variablen PUBSET und SHARER, um auf die Elemente von PUBSET-LIST "
/ " zugreifen zu koennen " 
/DECLARE-VARIABLE VARIABLE-NAME=PUBSET(TYPE=*STRUCTURE(DEFINITION=*DYNAMIC))
/DECLARE-VARIABLE VARIABLE-NAME=SHARER(TYPE=*STRUCTURE(DEFINITION=*DYNAMIC))
/
/ " Variable LOCAL-HOST, initialisiert mit dem lokalen Hostnamen "
/DECLARE-VARIABLE VARIABLE-NAME=LOCAL-HOST(TYPE=*STRING)
/
/ " Variable CRASH-HOST fuer die Namen der ausgefallenen Hosts "
/DECLARE-VARIABLE VARIABLE-NAME=CRASH-HOST(TYPE=*STRING)
/
/ " 2 Boolean-Indikatoren, um Master- und Ausfall-Ereignisse zu ermitteln "
/DECLARE-VARIABLE VARIABLE-NAME=MASTER-IND(TYPE=*BOOLEAN)
/DECLARE-VARIABLE VARIABLE-NAME=CRASH-IND(TYPE=*BOOLEAN)
/
/ "-------------------------------------------------------------------------"
/ "-- SYSOUT auf Datei zuweisen                                           --"
/ "--                                                                     --"
/ "-------------------------------------------------------------------------"
/
/ASSIGN-SYSOUT  TO=HSMS.WATCHDOG.LST
/
/ "-------------------------------------------------------------------------"
/ "-- Lokalen Hostnamen mit der Jobvariable $SYSJV.HOST aufloesen         --"
/ "--                                                                     --"
/ "-------------------------------------------------------------------------"
/
/LOCAL-HOST = (JV('$SYSJV.HOST'))
/INFORM-OPERATOR MSG=-
/    '*** HSMS-Watch-Dog auf Host &(LOCAL-HOST) gestartet ***'
/
/ "-------------------------------------------------------------------------"
/ "-- PROP-XT-Umgebung vorbereiten                                        --"
/ "--                                                                     --"
/ "-------------------------------------------------------------------------"
/
/BEGIN-BLOCK
/
/  " PROP-XT-Bearbeitung beginnen "
/  BEGIN-PROP-PROCESS            -
/       PROCESS-NAME=SMCHECK
/  START-PROP-OBJECT-MONITORING  -
/       OBJECT-NAME=OBJ-MONITOR –
/      ,OBJECT=*OPERATING(OPERATOR-ROLE=ROLEALL)
/  IF-CMD-ERROR
/    GOTO LABEL=PROPERR
/  END-IF
/
/  " Ereignis DMS03B0 zum Warten auf die Konsolmeldung DMS03B0 erstellen "
/  START-PROP-EVENT-MONITORING   -
/        EVENT-NAME=DMS03B0      -
/       ,SELECT-EVENT=FROM-OBJECT(EVENT-DATA=*SYSTEM-MSG(MSG-ID=DMS03B0))
/
/  "------------------------------------------------------------------------"
/  "-- Watch-Dog-Schleife zum Verfolgen der Konsolmeldung DMS03B0         --"
/  "--                                                                    --"
/  "------------------------------------------------------------------------"
/
/  CREATE-JV HSMS.WATCHDOG.MON
/  SET-JOB-STEP
/  MODIFY-JV  JV-CONTENTS=(JV-NAME=HSMS.WATCHDOG.MON),SET-VALUE='CHECK'
/
/  START-PROP-EVENT-MONITORING -
/      EVENT-NAME=STOPMON,- 
/     ,SELECT-EVENT=*JV-MODIFICATION( -
/          JV-NAME=HSMS.WATCHDOG.MON -
/         ,STRING='STOP' -
/         ,CONDITION=*EQUAL -
/      )
/
/ INFORM-OPERATOR MSG=-
/        '*** HSMS-Watch-Dog traegt Beobachtungsschleife ein ***'
/
/  WHILE-LOOP:  WHILE ( TRUE )
/
/    INFORM-OPERATOR MSG=-
/         '*** HSMS-Watch-Dog wartet auf Meldung DMS03B0 ***'
/
/    WAIT-FOR-PROP-EVENTS -
/        EVENT-NAME=(DMS03B0,STOPMON) -
/       ,TIME-LIMIT=*NO -
/       ,JV-CHECK-METHOD=*CJC
/
/    IF CONDITION=(SYSPOP.MAINCODE <> '0000')
/      GOTO LABEL=PROPERR
/    END-IF
/
/    IF ( SYSPOP.EVENT-NAME == 'STOPMON' )
/      EXIT-BLOCK BLOCK=WHILE-LOOP
/    END-IF
/
/    INFORM-OPERATOR MSG=-
/    '*** HSMS-Watch-Dog ueberprueft System &(SYSPOP.I0) auf Pubset ***'//-
/    '*** &(SYSPOP.I1) ***'
/
/    "--------------------------------------------------------------------"
/    "-- Kommando /SHOW-SHARE-PUBSET ausgeben, umgeleitet auf           --"
/    "-- OPS-Variablen                                                  --"
/    "--------------------------------------------------------------------"
/
/    ASSIGN-STREAM STREAM-NAME=SYSINF,TO=*VARIABLE(VARIABLE-NAME=PUBSET-LIST)
/    SHOW-SHARED-PUBSET &(SYSPOP.I1)
/    SET-JOB-STEP
/    ASSIGN-STREAM STREAM-NAME=SYSINF,TO=*DUMMY
/
/    "--------------------------------------------------------------------"
/    "-- Status des Pubsets fuer Partner ueberpruefen                   --"
/    "--                                                                --"
/    "--------------------------------------------------------------------"
/
/    FOR PUBSET=*LIST(PUBSET-LIST)
/
/      " Sharer-Liste durchsuchen, um Master und ausgefallene Hosts zu " 
/      " ermitteln "
/      MASTER-IND = FALSE
/      CRASH-IND  = FALSE
/      FOR SHARER=*LIST(PUBSET.LIST)
/        " Ueberpruefen, ob der lokale Host der Master-Host ist"
/        IF (    (SHARER.PARTNER-NAME=LOCAL-HOST)  -
/            AND (SHARER.SHARER-TYPE='*MASTER') )
/          MASTER-IND = TRUE
/        END-IF
/        " Ueberpruefen, ob Partner ausgefallen ist "
/        IF (SHARER.SYS-ID='&(SYSPOP.I0)') 
/          CRASH-HOST = SHARER.PARTNER-NAME
/          IF ((SHARER.SHARER-STA='*CRASH') OR (SHARER.SHARER-STA='*CHECK'))
/            CRASH-IND = TRUE
/          END-IF
/        END-IF
/      END-FOR
/
/      " Falls nicht Master, Konsolmeldung ausgeben "
/      IF NOT MASTER-IND
/        INFORM-OPERATOR MSG=-
/        '*** HSMS-Watch-Dog - Lokaler Host ist nicht Master-Sharer ***'//-
/        '*** fuer Pubset &(SYSPOP.I1) ***'
/      END-IF
/
/      " Falls kein Ausfall festgestellt wurde, Konsolmeldung senden "
/      IF NOT CRASH-IND
/        INFORM-OPERATOR MSG=-
/        '*** HSMS-Watch-Dog - Kein Ausfall fuer Partner &(CRASH-HOST) ***'//-
/        '*** festgestellt ***'
/      END-IF
/
/      " Falls Host=Master und Ausfall festgestellt wird, wird Recovery "
/      " gewuenscht "
/      IF (MASTER-IND) AND (CRASH-IND)
/        " Ausgefallenen Slave-Sharer wiederherstellen "
/        INFORM-OPERATOR MSG=-
/        '*** HSMS-Watch-Dog - Recovery fuer Partner &(CRASH-HOST) ***'//-
/        '*** auf Pubset &(SYSPOP.I1) aufgerufen***'
/        START-HSMS
//         RECOVER-REQUESTS ENV=*SYS-MAN(&(SYSPOP.I1)) -
//                          ,HOST-NAME=&(CRASH-HOST)
//         STEP
//       END
/      END-IF
/
/    END-FOR
/    SET-JOB-STEP
/
/    FREE-VAR PUBSET-LIST
/    SET-JOB-STEP
/
/  END-WHILE
/
/  INFORM-OPERATOR MSG=-
/       '*** HSMS-Watch-Dog - Beobachtungsschleife wird verlassen ***'
/
/END-BLOCK
/
/IF-BLOCK-ERROR
/  GOTO LABEL=PROPERR
/ELSE
/  GOTO LABEL=PROPEND
/END-IF 
/
/ "-------------------------------------------------------------------------"
/ "-- Behandlung von PROP-XT-Fehlern                                      --"
/ "--                                                                     --"
/ "-------------------------------------------------------------------------"
/
/PROPERR:
/  MAINCODE=MAINCODE(); SUBCODE1=SUBCODE1(); SUBCODE2=SUBCODE2()
/  MELDUNG=MSG(MSG-ID='&MAINCODE')
/  SH-VARIABLE (MAINCODE,SUBCODE1,SUBCODE2,MELDUNG)
/  SH-VARIABLE (SYSPOP)
/
/ "-------------------------------------------------------------------------"
/ "-- Exit                                                                --"
/ "--                                                                     --"
/ "-------------------------------------------------------------------------"
/
/PROPEND:
/  END-PROP-PROCESS
/  INFORM-OPERATOR MSG=-
/       '*** HSMS-Watch-Dog deinitialisiert ***'
/  ASSIGN-SYSOUT  TO=*PRIMARY
/
/EXIT-PROCEDURE