Mit dem Aufruf MCOM (message complex) können Sie:
den Anfang eines Auftrags-Komplexes definieren und dabei die Ziele des Basisauftrags und seiner Quittungsaufträge festlegen, oder
das Ende eines Auftrags-Komplexes definieren.
Versorgen des KDCS-Parameterbereichs (1. Parameter)
Die folgende Tabelle zeigt die verschiedenen Möglichkeiten und ihre Angaben im KDCS-Parameterbereich.
Funktion des Aufrufs | Einträge im KDCS-Parameterbereich | |||||
---|---|---|---|---|---|---|
KCOP | KCOM | KCRN | KCPOS | KCNEG | KCCOMID | |
Beginn des Auftrags-Komplexes | "MCOM" | "BC" | LTERM/TAC/Vorgangs-Id/TAC-Queue | TAC/Leerzeichen/TAC-Queue | TAC/Leerzeichen/TAC-Queue | Komplex-Id |
Ende des Auftrags-Komplexes | "MCOM" | "EC" | binär null | binär null | binär null | Komplex-Id |
Alle nicht verwendeten Felder des KDCS-Parameterbereichs müssen mit binär null versorgt werden.
Versorgen der Parameter | |
Feldname im KDCS-Parameterbereich | Inhalt |
"MCOM" | |
"BC"/"EC" | |
LTERM-Name/TAC/Vorgangs-Id/TAC-Queue/binär null | |
TAC/Leerzeichen/TAC-Queue/binär null | |
TAC/Leerzeichen/TAC-Queue/binär null | |
Komplex-Id |
KDCS-Aufruf | |
2. Parameter | |
KDCS-Parameterbereich | - |
C/C++-Makroaufrufe | |
Parameter | |
KDCS_MCOMBC | (kcrn,kcpos,kcneg,kccomid) |
KDCS_MCOMEC | (kccomid) |
In den KDCS-Parameterbereich tragen Sie für den MCOM-Aufruf ein:
KCOP
im Feld KCOP den Operationscode MCOM.
KCOM
im Feld KCOM entweder "BC" für Beginn oder "EC" für Ende eines Auftrags-Komplexes.
KCRN
im Feld KCRN bei KCOM = BC
den LTERM-Namen eines Kommunikationspartners, wenn der Basisauftrag ein Ausgabeauftrag ist,
den TAC eines Asynchron-Programms, wenn der Basisauftrag ein Hintergrund-Auftrag (ohne verteilte Verarbeitung) ist oder
den Namen der TAC-Queue, wenn der Basisauftrag ein Ausgabeauftrag in eine TAC-Queue (ohne verteilte Verarbeitung) ist.
die Vorgangs-Id eines Auftragnehmer-Vorgangs, wenn der Basisauftrag an einen Auftragnehmer-Vorgang gerichtet ist.
Bei KCOM = EC muss binär null eingetragen werden.
KCPOS
im Feld KCPOS bei KCOM = BC als Ziel des positiven Quittungsauftrages den TAC eines Asynchron-Programms bzw. einer TAC-Queue oder Leerzeichen, falls kein positiver Quittungsauftrag erzeugt werden soll.
Bei KCOM = EC wird binär null eingetragen.
KCNEG
im Feld KCNEG bei KCOM = BC als Ziel des negativen Quittungsauftrages den TAC eines Asynchron-Programms bzw. einer TAC-Queue oder Leerzeichen, falls kein negativer Quittungsauftrag erzeugt werden soll.
Bei KCOM = EC wird binär null eingetragen.
KCCOMID
im Feld KCCOMID die Komplex-Identifikation (Komplex-Id) des Auftrags-Komplexes. Sie wird bei MCOM BC definiert, darf 2 bis 8 Zeichen lang sein und muss mit dem Zeichen "*" beginnen. Sie wird bei allen zum Komplex gehörenden DPUT-Aufrufen sowie bei MCOM EC angegeben.
Beim KDCS-Aufruf geben Sie an:
1. Parameter
als 1. Parameter: Die Adresse des KDCS-Parameterbereichs.
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, siehe nächste Seite.
KCRCDC
im Feld KCRCDC den internen Returncode von openUTM (siehe openUTM-Handbuch „Meldungen, Test und Diagnose“).
KDCS-Returncodes im Feld KCRCCC beim MCOM-Aufruf
Im Programm sind auswertbar:
000 | Die Funktion wurde ausgeführt. |
40Z | openUTM kann die Funktion nicht durchführen: Generierungs- oder Systemfehler oder es sollte ein Auftrags-Komplex begonnen werden, ohne dass der vorhergehende Auftrags-Komplex abgeschlossen wurde. |
42Z | Der Eintrag in KCOM ist ungültig. |
44Z | Der Wert in KCRN ist ungültig:
|
49Z | Der Inhalt nicht verwendeter Felder des KDCS-Parameterbereichs ist ungleich binär null. |
51Z | Bei KCOM=EC fehlt zu einer Benutzerinformation der zugehörige (Quittungs-)Auftrag. |
55Z | Der Eintrag in KCCOMID ist ungültig: der Name beginnt nicht mit "*" oder er wurde im Teilprogramm schon einmal vergeben oder er ist nicht bekannt (bei MCOM EC). |
57Z | Der Wert in KCPOS ist ungültig:
|
58Z | Der Wert in KCNEG ist ungültig:
|
Weitere Returncodes sind dem DUMP zu entnehmen:
71Z | Im Teilprogramm wurde noch kein INIT gegeben. |
Eigenschaften des MCOM-Aufrufs
Ein Auftrags-Komplex muss vor dem PEND-Aufruf mit MCOM EC abgeschlossen werden, sonst bricht openUTM den Vorgang mit PEND ER und 86Z ab.
Die Komplex-Identifikation muss innerhalb eines Teilprogramms eindeutig sein.
MCOM BC ist erst dann erlaubt, nachdem alle Auftrags-Komplexe vorher abgeschlossen wurden.
Wurde eine Vorgangs-Identifikation durch einen Auftrags-Komplex belegt, dann kann sie nur durch MCOM EC freigegeben werden (nicht wie sonst durch DPUT NE).
Die Ziele von Quittungsaufträgen müssen Asynchron-Teilprogramme bzw. TAC-Queues der lokalen Anwendung sein.
Ein Hauptauftrag eines Nachrichten-Komplexes mit negativem Quittungsauftrag wird im Fehlerfall (gegebenenfalls nach erfolgter Redelivery) nicht in der Dead Letter Queue gesichert, sondern gelöscht. Dafür wird der negative Quittungsauftrag aktiviert.