Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel: verteilter Dialog über LU6.1

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).

1. Auftraggeber-Programm, erster Teil
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)
2. Auftragnehmer-Programm
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
3. Folge-Teilprogramm des Auftraggeber-Programms (zweiter Teil)
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