Anhand eines einfachen Beispiels wird im Folgenden der Ablauf der Aufrufe bei verteilten Dialogen über LU6.1 dargestellt. Dabei ist jeweils angegeben, welche Felder versorgt oder ausgewertet werden können bzw. müssen. Die Feld-Namen sind in der COBOL-Notation angegeben.
Das Auftraggeber-Programm besteht in diesem Beispiel aus zwei Teilprogrammen: im ersten Teil wird der Unterauftrag an den Auftragnehmer-Vorgang gegeben, im zweiten Teil wird die Antwort des Auftragnehmer-Vorgangs gelesen und ggf. die Antwort an das Terminal ausgegeben.
Wie in Abschnitt „Fehlerbehandlung im Teilprogramm" erläutert, wird ein Auftraggeber-Teilprogramm, das auf einen Sicherungspunkt folgt, nicht nur beim normalen Ablauf gestartet, sondern auch nach Rücksetzen einer verteilten Transaktion beim Vorgangs-Wiederanlauf. Aus diesem Grund wird im ersten Teil des Auftraggeber-Programms geprüft, ob eine Statusinformation vorliegt. Ein solcher Vorgangs-Wiederanlauf findet aber nur statt, wenn der Auftraggeber-Vorgang vor dem Start dieses Teilprogramms einen Sicherungspunkt gesetzt hat (mit oder ohne Beteiligung eines Auftragnehmer-Vorgangs).
INIT
Auswerten:
KCKNZVG --> R es handelt sich um einen Vorgangs-Wiederanlauf,
eventuell liegt eine Statusinformation vor.
MGET Eingabenachricht vom Terminal. Hat der Auftraggeber-Vorgang bereits einen
Sicherungspunkt erreicht, so kann zusätzlich eine Statusinformation vorliegen.
Auswerten:
KCRPI --> Rückgabeinformation vom Auftragnehmer
Leerzeichen es liegt keine Statusinformation vor
>vgid es liegt eine Statusinformation vom Auftragnehmer-Vorgang mit der
angegebenen Vorgangs-Identifikation vor. In diesem Fall ist die
Statusinformation mit einem 2. MGET zu lesen.
2. MGET
Lesen der Statusinformation, danach Fehlerbehandlung notwendig.
Versorgen:
KCOM <-- mit NT
KCLA <-- mit der Länge 0
KCRN <-- mit der Vorgangs-Identifikation (>vgid)
KCMF <-- mit Leerzeichen
Auswerten:
KCVGST --> Vorgangs-Status:
I Auftragnehmer-Vorgang inaktiv
E Auftragnehmer-Vorgang hat sich mit PEND ER/FR beendet
Z Auftragnehmer-Vorgang wurde von openUTM mit PEND ER beendet
R Auftragnehmer-Vorgang hat sich mit PEND RS beendet
T Zeit ist abgelaufen (Timer)
KCTAST --> Transaktionsstatus:
I Transaktion in Auftragnehmer-Vorgang inaktiv
R Transaktion in Auftragnehmer-Vorgang zurückgesetzt
M Mismatch
Wenn keine Statusinformation vorliegt:
APRO Adressieren des Auftragnehmer-Vorgangs (wenn nicht schon geschehen)
Versorgen:
KCOM <-- mit DM für Dialog-Vorgang
KCRN <-- mit dem LTAC des Auftragnehmer-Vorgangs
KCPA <-- bei zweistufiger Adressierung:
mit dem Namen der Partner-Anwendung
KCPI <-- mit einer selbstgewählten Vorgangs-Identifikation (>vgid)
KCLM <-- 0
MPUT an Auftragnehmer-Vorgang
Versorgen:
KCOM <-- NT oder NE
KCRN <-- mit der Vorgangs-Identifikation (>vgid)
KCMF <-- evtl. Formatkennzeichen für Auftragnehmer
KCDF <-- binär null
KCLM <-- Länge
PEND (Ende erster Teil)
Versorgen:
KCOM <-- Ausprägung des PEND-Aufrufs:
KP im Normalfall im Auftraggeber-Vorgang zu empfehlen
RE Transaktionsende wird angefordert
FI nicht erlaubt, weil noch Auftragnehmer offen
ER/FR bricht auch Auftragnehmer-Vorgang ab!
PA nach MPUT an Auftragnehmer-Vorgang verboten
PR nach MPUT an Auftragnehmer-Vorgang verboten
SP nach MPUT an Auftragnehmer-Vorgang verboten
FC nach MPUT an Auftragnehmer-Vorgang verboten
KCRN <-- Name des Folge-Teilprogramms des Auftraggebers
(zweiter Teil des Auftraggeber-Programms)
INIT
Auswerten:
KCBENID --> Name der Session
KCLOGTER --> Name der Partner-Anwendung
KCTERMN --> Kennzeichen der Partner-Anwendung
KCCP --> Kennzeichen für das verwendete Protokoll, bei LU6.1 wird '1'
eingetragen
KCRMF --> Formatkennzeichen aus erstem MPUT des Auftraggebers
MGET Nachricht von Auftraggeber-Vorgang lesen
Auswerten:
KCRCCC --> KDCS-Fehlercode, 19Z bis 39Z können nicht auftreten
KCRLM --> Länge aus MPUT des Auftraggebers (KCLM)
KCRST 1.Byte --> Vorgangs-Status des Auftraggeber-Vorgangs:
O Auftraggeber-Vorgang ist offen
KCRST 2.Byte --> Transaktions-Status des Auftraggeber-Vorgangs
O Transaktion ist offen (PEND KP bei Auftraggeber)
P Transaktionsende eingeleitet (PEND RE)
C Transaktion bei Auftraggeber beendet
KCRMF wenn noch Folgeteile vorliegen: das Formatkennzeichen des nächsten
Nachrichtenteils,
sonst: das Formatkennzeichen des gelesenen Teils.
MPUT unverändert
Versorgen:
KCOM <-- mit NT oder NE
KCMF <-- Formatkennzeichen oder Leerzeichen
KCLM <-- Länge der Nachricht
KCRN <-- mit Leerzeichen, um die Nachricht an den Auftraggeber zu senden
KCDF <-- beliebiger Wert, den der Auftraggeber beim MGET erhält
PEND Ende Auftragnehmer-Teilprogramm
Versorgen:
KCOM <-- abhängig vom Transaktionsstatus:
KP nur erlaubt bei KCTAST=O oder C
RE beendet die Transaktion bei KCTAST=P bzw. leitet Transaktionsende
ein bei KCTAST=O oder C
FI Ende des Auftragnehmer-Vorgangs, sonst wie PEND RE
ER/FR Ende des Auftragnehmer-Vorgangs, die Transaktion wird
zurückgesetzt, der Auftraggeber wird informiert
PA/PR keine Besonderheiten, kann nicht verwendet werden, um Nachricht an
den Auftraggeber zu senden
KCRN <-- ggf. (bei PEND KP oder PEND RE) Name des Folge-Teilprogramms des
Auftragnehmer-Vorgangs
INIT
Auswerten:
KCRPI --> Vorgangs-Identifikation des Auftragnehmer-Vorgangs
KCRMF --> Formatkennzeichen aus 1. MPUT des Auftragnehmers
MGET Nachricht vom Auftragnehmer lesen
Versorgen:
KCOM <-- NT
KCLA <-- Länge des Nachrichtenbereichs
KCRN <-- Vorgangs-Identifikation aus KCRPI des INIT-Aufrufs
KCMF <-- Formatkennzeichen aus KCRMF des INIT-Aufrufs
Auswerten:
KCRLM --> aktuelle Länge der Eingabenachricht
KCRMF --> wenn noch Folgeteile vorliegen: das Formatkennzeichen des nächsten
Nachrichtenteils,
sonst: das Formatkennzeichen des gelesenen Teils.
KCRDF --> Wert vom zugehörigen MPUT des Auftragnehmer-Vorgangs
KCRPI --> Vorgangs-Iidentifikation, falls weitere Nachrichtenteile vorliegen
KCRST 1.Byte --> Vorgangs-Status des Auftragnehmer-Vorgangs:
O Auftragnehmer-Vorgang ist offen
C Auftragnehmer-Vorgang ist beendet (PEND FI)
KCRST 2.Byte --> Transaktionsstatus des Auftragnehmer-Vorgangs:
O Transaktion ist offen (PEND KP)
P Auftragnehmer hat Transaktionsende angefordert (mit PEND RE oder
FI, PTC-Zustand)
C Transaktion ist abgeschlossen (PEND RE oder FI)
MPUT an das Terminal
Versorgen:
KCRN <-- mit Leerzeichen
KCOM <-- mit NT oder NE
KCLM <-- mit der Länge der Nachricht
KCMF <-- mit dem Formatkennzeichen oder Leerzeichen
KCDF <-- ggf. mit einer Bildschirmfunktion
PEND Ende des Folge-Teilprogramms des Auftragnehmer-Vorgangs
Versorgen:
KCOM <-- abhängig von Status-Anzeigen in KCRST
FI nur bei KCVGST=C erlaubt, beendet Vorgang und Transaktion
RE beendet die Transaktion bei KCTAST=P, nicht erlaubt bei KCTAST=O
(weil Nachricht an das Terminal)
ER/FR setzt Transaktion zurück, auch der Auftragnehmer-Vorgang wird
zurückgesetzt und beendet;
einzige Ausnahme: KCTAST=C und KCVGST=C.
KP nicht zu empfehlen, wenn KCTAST=P
PA/PR verboten, da Nachricht an das Terminal gesendet wurde.
KCRN <-- ggf. (bei PEND KP oder PEND RE) Name des Folge-Teilprogramms des
Auftraggeber-Vorgangs