openUTM stellt den Teilprogrammen eine Reihe von Informationen zur Verfügung, die ausgewertet und für die Steuerung der Kommunikation verwendet werden können:
nach dem INIT-Aufruf
nach dem Lesen der Dialog-Nachricht mit MGET
Nach dem INIT-Aufruf kann man u.a. aus dem Kommunikationsbereich entnehmen,
unter welcher Benutzerkennung bzw. unter welchem Session-Namen das Teilprogramm gestartet wurde (Feld KCBENID/kcuserid)
welches Kommunikationsprotokoll der Partner verwendet (Feld KCCP, bei LU6.1 ist hier 1 eingetragen)
ob es sich um einen Vorgangs-Wiederanlauf handelt (KCKNZVG/kccv_status enthält dann den Wert "R").
Nach dem MGET-Aufruf gibt openUTM im Feld KCVGST/kcpcv_state den Status des Partner-Vorgangs und im Feld KCTAST/kcpta_state den Status der Partner-Transaktion zurück.
Für COBOL ist ein übergeordnetes Statusfeld KCRST definiert, das die Felder KCVGST und KCTAST enthält.
Mit Hilfe dieser Stati lässt sich z.B. feststellen, ob der Partner-Vorgang bereits Transaktionsende angefordert hat und auf die Beendigung der verteilten Verarbeitung wartet. Dadurch kann einerseits der Programmlauf so gesteuert werden, dass die Einhaltung der Programmierregeln auch ohne genaue Kenntnis des Sicherungsverhaltens des Partners garantiert werden kann, andererseits besteht auch die Möglichkeit, im Auftraggeber-Vorgang auf Fehler im Auftragnehmer-Vorgang zu reagieren. Die möglichen Stati entnehmen Sie den beiden folgenden Tabellen.
Vorgangs-Status des Partners
KCVGST/kcpcv_state | Bedeutung |
---|---|
I | (inactive): |
O | (open): |
C | (closed): |
R | (reset): |
E | (error): |
Z | der Vorgang wurde von openUTM wegen eines Fehlers beendet. |
T | (timeout): |
Transaktionsstatus des Partners
KCTAST/kcpta_state | Bedeutung |
---|---|
I | (inactive): |
O | (open): |
P | (prepare to commit): |
C | (closed): |
R | (reset): |
M | (mismatch): |