Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Programmiertes Rücksetzen

Bei weniger schweren Fehlern behält das Teilprogramm die Steuerung und kann mit PEND RS oder PEND ER/FR die verteilte Transaktion oder mit RSET die lokale Transaktion zurücksetzen. Bei der Kommunikation über OSI TP kann eine Transaktion auch mit PGWT RB zurückgesetzt werden, siehe "Besonderheiten bei Rollback und Wiederanlauf".

Die folgenden Aussagen gelten für verteilte Verarbeitung mit globaler Transaktionssicherung, d.h. für LU6.1 und für OSI TP mit Functional Unit Commit. Wie diese Aufrufe bei OSI TP ohne Functional Unit Commit wirken, erfahren Sie auf "Besonderheiten bei Rollback und Wiederanlauf".

PEND RS

PEND RS kann in einem Auftraggeber- oder in einem Auftragnehmer-Vorgang aufgerufen werden.

Ein PEND RS wirkt in einer verteilten Transaktion wie folgt:

Mit PEND RS werden alle an einer verteilten Transaktion beteiligten Vorgänge auf den letzten Sicherungspunkt zurückgesetzt. Im Gegensatz zum PEND ER/FR-Aufruf bleibt beim PEND RS ein Vorgang offen, wenn er schon einen Sicherungspunkt erreicht hat. Vorgänge, die noch keinen Sicherungspunkt erreicht haben, werden beendet.

Es sind folgende Situationen möglich:

  • PEND RS in der ersten Transaktion des obersten Auftraggeber-Vorgangs

    Alle beteiligten Vorgänge werden beendet, ohne dass ein Vorgangs-Wiederanlauf stattfindet. Gekettete Vorgänge werden nach dem Rücksetzen erneut gestartet.

  • PEND RS in der ersten Transaktion eines Auftragnehmer-Vorgangs

    Der Auftragnehmer-Vorgang wird beendet. Wenn der oberste Auftraggeber-Vorgang schon einen Sicherungspunkt erreicht hat, dann führt openUTM einen Vorgangs-Wiederanlauf durch (mit der Meldung K034 an das Terminal). Der Auftraggeber-Vorgang erhält eine Statusinformation (Vorgangs-Status "R" / "Z" und Transaktionsstatus "R"), die mit MGET NT gelesen werden muss.

  • PEND RS in einer Folge-Transaktion des Auftraggeber- oder Auftragnehmer-Vorgangs

    In diesem Fall muss vor dem PEND RS mit MPUT RM eine Rücksetznachricht gesendet werden, sonst bricht openUTM den Vorgang mit KCRCCC = 83Z ab. Die Rücksetznachricht geht an das Folge-Teilprogramm, das am letzten Sicherungspunkt des (lokalen) Vorgangs angegeben wurde. Nach dem Rücksetzen führt openUTM einen Vorgangs-Wiederanlauf durch. Die Art und Weise des Vorgangs-Wiederanlaufs hängt davon ab, an wen die Ausgabenachricht am letzten Sicherungspunkt ging und wer PEND RS aufgerufen hat:

    • Bei einer Ausgabenachricht an den Client beginnt der Vorgangs-Wiederanlauf im Auftraggeber-Vorgang.

      • Wurde PEND RS im obersten Auftraggeber-Vorgang abgesetzt, dann wird ein Bildschirmwiederanlauf durchgeführt (wie ohne Einsatz der verteilten Verarbeitung).

      • Wurde PEND RS in einem Auftragnehmer-Vorgang abgesetzt, dann wird ein Bildschirmwiederanlauf durchgeführt und die Meldung K034 ausgegeben. Die anschließende Eingabe vom Client wird vom Folge-Teilprogramm des letzten Sicherungspunkts gelesen. Sendet ein Folge-Teilprogramm erneut eine Nachricht an den Auftragnehmer (der PEND RS durchgeführt hat), dann liest dieser Auftragnehmer zuerst die Rücksetznachricht und dann die an ihn gesendete Nachricht. Wenn Auftragnehmer-Vorgänge durch das Rücksetzen beendet wurden (d.h. der Auftragnehmer war seinerseits wieder Auftraggeber), dann müssen zusätzlich die zugehörigen Statusinformationen mit MGET NT gelesen werden.

        Die Folge-Verarbeitung im Auftragnehmer-Vorgang beginnt bei LU6.1 erst dann wieder, wenn eine Nachricht für diesen Vorgang vorliegt. Wenn der
        Auftragnehmer nicht in die nächste Transaktion nach dem Rücksetzen
        einbezogen ist, kann dies auch erst in einer späteren Folge-Transaktion der Fall sein.

        Bei OSI TP läuft das Folge-Teilprogramm vom letzten Sicherungspunkt im Auftragnehmer-Vorgang, der PEND RS aufgerufen hat, in jedem Fall in der nächsten Transaktion: Das Programm wird gestartet, wenn eine Nachricht vom Auftraggeber eingetroffen ist oder wenn der Auftraggeber Transaktionsende angefordert hat.

    • Ging die Ausgabenachricht an einen Vorgang, dann startet openUTM das beim letzten Sicherungspunkt angegebene Folge-Teilprogramm. Dieses Teilprogramm muss die Rücksetznachricht lesen; anschließend kann die Ausgabenachricht gelesen werden; eventuell liegen auch noch Statusinformationen von Auftragnehmer-Vorgängen vor. War der (oberste) Auftraggeber-Vorgang an der zurückgesetzten Transaktion beteiligt, dann gibt openUTM die Meldung K034 aus.

Programmierter PEND ER/FR

Bezüglich einer verteilten Transaktion wirken PEND FR und PEND ER gleich; beim PEND FR wird jedoch - im Gegensatz zum PEND ER - kein DUMP erzeugt. Mit PEND FR kann man auf Fehler reagieren, die keine Programmfehler sind (z.B. unbrauchbare Daten).

Die Wirkung des Aufrufs PEND ER oder PEND FR ist im Auftraggeber- und im Auftragnehmer-Vorgang unterschiedlich:

  • Erfolgt er im Auftraggeber-Vorgang, so werden dieser und alle Auftragnehmer-Vorgänge mit PEND ER/FR beendet.

  • Erfolgt der Aufruf im Auftragnehmer-Vorgang, so wird nur dieser Vorgang beendet und die verteilte Transaktion auf den letzten Sicherungspunkt zurückgesetzt. An diesem Sicherungspunkt wird nun der Vorgangs-Wiederanlauf gestartet und das als nächstes gestartete Programm erhält die Statusinformation von demjenigen Auftragnehmer-Vorgang, der PEND ER/FR aufgerufen hat. Hat der Auftraggeber-Vorgang noch keinen Sicherungspunkt erreicht, so wird er ebenfalls beendet.

    Wurde die vorherige verteilte Transaktion im Auftragnehmer-Vorgang beendet, so wird das beim letzten Sicherungspunkt spezifizierte Folge-Teilprogramm im Auftraggeber-Vorgang gestartet.

    Will sich der Auftragnehmer-Vorgang mit PEND ER/FR beenden, so muss er vorher einen MPUT durchführen, sonst wird er beim PEND mit KCRCCC = 83Z vom System beendet. Eine Ausnahme bilden Dialoge über OSI TP, bei denen kein MPUT an den Auftraggeber erlaubt ist (KCSEND=N).
    Der Auftraggeber-Vorgang erhält immer eine Statusinformation, die mit MGET NT gelesen werden muss.

RSET

Die Wirkung des RSET-Aufrufs ist in Auftraggeber- und Auftragnehmer-Vorgängen gleich.

Das Verhalten von openUTM nach einem RSET-Aufruf in einem Teilprogrammlauf, der zu einer verteilten Transaktion gehört, ist abhängig vom Generierungsparameter RSET der UTMD-Anweisung.

  • Ist RSET=LOCAL generiert, dann erlaubt openUTM, dass der RSET-Aufruf nur zum Rücksetzen der lokalen Transaktion führt. Beachten Sie bitte, dass die Datenumgebung (GSSBs, LSSBs, TLSs, ULS, ...) mit Ausnahme des SPAB auf den letzten Sicherungspunkt zurückgesetzt wird. Für innerhalb der Transaktion adressierte Auftragnehmer-Vorgänge gilt: Wenn in einem vorhergehenden, mit PEND KP oder PGWT KP beendeten Verarbeitungsschritt eine Nachricht an einen Auftragnehmer-Vorgang gesendet wurde, dann bleibt dieser Vorgang adressiert, andernfalls wird die Vorgangs-Identifikation gelöscht.

  • Ist RSET = GLOBAL generiert, dann muss der Teilprogrammlauf mit PEND FR/ER/RS beendet werden. Dies führt dann auch zum Rücksetzen der verteilten Transaktion.