Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CTRL Steuern eines OSI TP-Dialogs

Der Funktionsaufruf CTRL (control) findet Verwendung bei verteilter Verarbeitung über das OSI TP-Protokoll. Er dient dazu, einen Dialog mit einem OSI TP-Partner explizit zu steuern. Die Aufrufe CTRL PR und CTRL PE dürfen nur an Auftragnehmer-Vorgänge gerichtet werden, für die die Functional Unit "Commit" ausgewählt wurde.

Es gibt mehrere Ausprägungen des Aufrufs CTRL:

  • CTRL PR (Prepare to Commit)
    Mit CTRL PR wird der Auftragnehmer-Vorgang aufgefordert, das Transaktionsende einzuleiten. Wenn der lokale Vorgang zusätzlich mit einem MPUT-Aufruf Daten an den Partner sendet, kann er im CTRL-Aufruf steuern, ob der ferne Vorgang noch Daten senden darf.

  • CTRL PE (Prepare End Dialogue)
    Mit CTRL PE wird der Auftragnehmer-Vorgang aufgefordert, das Dialogende einzuleiten. Wenn der lokale Vorgang zusätzlich mit einem MPUT-Aufruf Daten an den Partner sendet, kann er im CTRL-Aufruf steuern, ob der ferne Vorgang noch Daten senden darf.

  • CTRL AB (Abort Dialogue)
    Mit CTRL AB wird für den Dialog mit einem Auftragnehmer-Vorgang eine abnormale Beendigung eingeleitet. Ein MPUT-Aufruf an diesen Auftragnehmer wird nicht gesendet sondern gelöscht. Ist für den Dialog die Commit Funktionalität ausgewählt, dann sorgt openUTM dafür, dass die verteilte Transaktion auf den letzten Sicherungspunkt zurückgesetzt wird; erst dann wird der Dialog beendet. Für jeden abnormal zu beendenden Dialog ist ein eigener CTRL Aufruf erforderlich.

Versorgen des 1. Parameters

Die folgende Tabelle zeigt die verschiedenen Möglichkeiten und die dazu notwendigen Angaben im KDCS-Parameterbereich.

Funktion des Aufrufs

Einträge im KDCS-Parameterbereich

KCOM

KCLA

KCLM

KCRN

KCMF/kcfn

KCNORPLY

Prepare to Commit

"PR"

0

0

Vorgangs-Id

Leerzeichen

"Y"/0

Prepare End Dialogue

"PE"

0

0

Vorgangs-Id

Leerzeichen

"Y"/0

Abort Dialogue

"AB"

0

0

Vorgangs-Id

Leerzeichen

0

Versorgen des 2. Parameters

Hier müssen Sie die Adresse des Nachrichtenbereichs angeben. Der Nachrichtenbereich wird in dieser Version von openUTM nicht verwendet, er ist für spätere Erweiterungen vorgesehen.

Versorgen der Parameter

Feldname im KDCS-Parameterbereich

Inhalt

KCOP

"CTRL"

KCOM

"PR"/"PE"/"AB"

KCLA

0

KCLM

0

KCRN

Vorgangs-Id

KCMF/kcfn

Leerzeichen

KCNORPLY

"Y"/0

KDCS-Aufruf

1. Parameter

2. Parameter

KDCS-Parameterbereich

Nachrichtenbereich

C/C++-Makroaufrufe

Makronamen

Parameter

KDCS_CTRLPR/KDCS_CTRLPE/KDCS_CTRLAB

(kcrn)

Rückgaben von openUTM

Feldname im KB-Rückgabebereich

Inhalt

KCRCCC

Returncode

KCRCDC

interner Returncode

Im KDCS-Parameterbereich sind für den CTRL-Aufruf folgende Eintragungen notwendig:

KCOP

In das Feld KCOP muss der Operationscode CTRL eingetragen werden.

KCOM

Das Feld KCOM muss eine der folgenden Operationsmodifikationen enthalten:

  • PR (PRepare to commit)
    Mit dieser Ausprägung wird ein Auftragnehmer-Vorgang aufgefordert, das Transaktionsende einzuleiten. Außerdem gilt:

    • Wenn der lokale Vorgang zusätzlich mit einem MPUT-Aufruf Daten an den Auftragnehmer-Vorgang sendet, kann er mit dem Feld KCNORPLY steuern, ob der Auftragnehmer-Vorgang in der laufenden Transaktion noch Daten senden darf. Der lokale Vorgang wird nach Ende des Verarbeitungsschritts erst dann fortgesetzt, wenn der ferne Vorgang das Transaktionsende eingeleitet hat.

    • Wenn der lokale Vorgang keine Daten an den Auftragnehmer-Vorgang sendet, dann darf der Auftragnehmer-Vorgang in dieser Transaktion ebenfalls keine Daten mehr senden. Der lokale Vorgang wartet dann nach Ende des
      Verarbeitungsschritts nicht darauf, dass der Auftragnehmer-Vorgang das Transaktionsende einleitet.

      • PE (Prepare End dialogue)
        Mit dieser Ausprägung wird ein AN-Vorgang aufgefordert, das Dialogende einzuleiten. Außerdem gilt:

        • Wenn der lokale Vorgang zusätzlich mit einem MPUT-Aufruf Daten an den Auftragnehmer-Vorgang sendet, kann er mit dem Feld KCNORPLY steuern, ob der Auftragnehmer-Vorgang im laufenden Dialog noch Daten senden darf. Der lokale Vorgang wird nach Ende des Verarbeitungsschritts erst dann fortgesetzt, wenn der ferne Vorgang das Dialogende eingeleitet hat.

        • Wenn der lokale Vorgang keine Daten an den Auftragnehmer-Vorgang sendet, dann darf der Auftragnehmer-Vorgang in diesem Dialog ebenfalls keine Daten mehr senden. Der lokale Vorgang wartet dann nach Ende des
          Verarbeitungsschritts nicht darauf, dass der Auftragnehmer-Vorgang das Dialogende einleitet.

      • AB (ABort dialogue)
        Mit dieser Ausprägung wird für einen Dialog mit einem AN-Vorgang eine abnormale Beendigung eingeleitet. Ist für den Dialog die Commit Funktionalität ausgewählt, dann erzwingt openUTM, dass die verteilte Transaktion auf den letzten
        Sicherungspunkt durch einen geeigneten PEND-Aufruf zurückgesetzt wird; erst dann wird der Dialog beendet. Für jeden abnormal zu beendenden Dialog ist ein eigener CTRL Aufruf erforderlich. Eine mit MPUT ausgegebene Nachricht für den Partner wird beim CTRL AB gelöscht.

KCLA

Das Feld KCLA muss mit null versorgt werden.

KCLM

Das Feld KCLM muss mit null versorgt werden.

KCRN

Im Feld KCRN ist die Vorgangs-Id (VGID) des Partner-Vorgangs anzugeben, auf den sich der CTRL Aufruf bezieht.

KCMF/kcfn

Im Feld KCMF/kcfn sind Leerzeichen anzugeben.

KCNORPLY

Im Feld KCNORPLY kann bei KCOM=PR/PE der Wert Y eingetragen werden. Mit diesem Wert wird dem Auftragnehmer-Vorgang angezeigt, dass er in dieser Transaktion bzw. diesem Dialog keine Daten mehr senden darf, auch wenn der lokale Vorgang noch Daten mit MPUT an den Auftragnehmer-Vorgang sendet.

Alle nicht verwendeten Felder müssen mit binär null versorgt werden.

Beim KDCS-Aufruf geben Sie an:

1. Parameter

die Adresse des KDCS-Parameterbereichs.

2. Parameter

die Adresse des Nachrichtenbereichs. Diese Adresse muss bei allen CTRL-Aufrufen angegeben werden, obwohl CTRL-Aufrufe derzeit den Nachrichtenbereich nicht verwenden.

Makronamen

Wie Sie Makroaufrufe für C/C++ nutzen, ist in Abschnitt „C/C++-Makroschnittstelle" ausführlich beschrieben.

openUTM gibt zurück:

KCRCCC

im Feld KCRCCC den KDCS-Returncode.

KCRCDC

im Feld KCRCDC den internen Returncode von openUTM siehe openUTM-Handbuch „Meldungen, Test und Diagnose“.

KDCS-Returncodes im Feld KCRCCC beim CTRL-Aufruf

Im Programm sind auswertbar:

000

Die Funktion wurde ordnungsgemäß durchgeführt.

40Z

Die Anwendung wurde ohne verteilte Verarbeitung generiert.

41Z

Der Aufruf CTRL ist an dieser Stelle unzulässig.
Mögliche Gründe:

  • Der Aufruf wurde für einen Asynchron-Vorgang gegeben; d.h. die angegebene Vorgangs-Id wurde mit einem APRO AM-Aufruf definiert.
  • Der Aufruf ist an einen Partner gerichtet, an den zuvor ein MPUT HM abgesetzt wurde.
  • Ein CTRL PE oder PR ist an einen Partner gerichtet, für den die Commit FU nicht ausgewählt wurde.
  • Ein CTRL PE oder PR ist an einen Partner gerichtet, an den noch kein MPUT nach dem APRO gegeben wurde.

42Z

Die Funktionsausprägung in KCOM ist ungültig.

43Z

Der in KCLA oder KCLM angegebene Wert ist ungültig.

44Z

Die in KCRN angegebene Vorgangs-Id ist ungültig oder es wurde keine Vorgangs-Id angegeben.

45Z

Das Feld KCMF/kcfn wurde nicht mit Leerzeichen versorgt.

49Z

Der Inhalt nicht verwendeter Felder des KDCS-Parameterbereichs ist ungleich binär null.

54Z

Das Feld KCNORPLY hat bei CTRL PR oder PE einen Wert ungleich Y oder binär null.

Weitere Returncodes sind dem DUMP zu entnehmen:

71Z

In dem Teilprogrammlauf wurde noch kein INIT-Aufruf gegeben.

77Z

Ungültige Bereichsadresse.

Eigenschaften des CTRL-Aufrufs

  • Zum Ende eines Verarbeitungsschritts, in dem ein CTRL PR oder PE Aufruf und ein MPUT Aufruf an ein und denselben Partner gegeben wurde, darf kein Transaktionsende angefordert werden.

  • Der Aufruf CTRL PR / PE / AB darf nur an solche AN-Vorgänge gerichtet werden, mit denen ein verteilter Dialog geführt wird, d.h. die mit einem APRO DM adressiert wurden.

  • Die Aufrufe CTRL PR und CTLR PE dürfen nur an solche AN-Vorgänge gerichtet werden, für welche die Commit Functional Unit ausgewählt wurde und für die nach dem APRO bereits ein MPUT gegeben wurde.

  • In einem Verarbeitungsschritt bzw. Teilprogrammlauf dürfen CTRL-Aufrufe für mehrere Partner gegeben werden.

  • Nach einem CTRL AB Aufruf für einen Dialog mit einem AN-Vorgang, bei dem die Commit Funktionalität ausgewählt ist, sind nur die PEND-Aufrufe mit den Operationsmodifikationen RS, FR und ER erlaubt.