Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

MCOM Definieren eines Auftrags-Komplexes

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

KCOP

"MCOM"

KCOM

"BC"/"EC"

KCRN

LTERM-Name/TAC/Vorgangs-Id/TAC-Queue/binär null

KCPOS

TAC/Leerzeichen/TAC-Queue/binär null

KCNEG

TAC/Leerzeichen/TAC-Queue/binär null

KCCOMID

Komplex-Id

KDCS-Aufruf

1. Parameter

2. Parameter

KDCS-Parameterbereich

-

C/C++-Makroaufrufe

Makronamen

Parameter

KDCS_MCOMBC

(kcrn,kcpos,kcneg,kccomid)

KDCS_MCOMEC

(kccomid)

Rückgaben von openUTM

Feldname im KB-Rückgabebereich

Inhalt

KCRCCC

Returncode

KCRCDC

interner Returncode

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:

  • kein TAC eines Asynchron-Programms bzw. einer TAC-Queue angegeben oder TAC bzw. TAC-Queue gesperrt/verboten

  • kein LTERM-Name oder LTERM-Name eines UPIC- oder HTTP-Clients angegeben

  • keine gültige Vorgangs-Id angegeben oder die Vorgangs-Id wurde schon durch eine andere Nachricht belegt.

  • die Dead Letter Queue (KDCDLETQ) darf nicht angegeben werden.

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:

  • kein TAC eines Asynchron-Programms bzw. einer TAC-Queue angegeben oder TAC bzw. TAC-Queue gesperrt/verboten

  • Angabe nicht gleich Leerzeichen.

  • die Dead Letter Queue (KDCDLETQ) darf nicht angegeben werden.

58Z

Der Wert in KCNEG ist ungültig:

  • kein TAC eines Asynchron-Programms bzw. einer TAC-Queue angegeben oder TAC bzw. TAC-Queue gesperrt/verboten oder

  • Angabe nicht gleich Leerzeichen.

  • die Dead Letter Queue (KDCDLETQ) darf nicht angegeben werden.

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.