Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Message Queues administrieren (DADM)

Mit DADM können Sie zwei unterschiedliche Arten von Message Queues administrieren. Das sind:

  • UTM-gesteuerte Queues

    Die von einem Teilprogramm erzeugten Asynchron-Aufträge werden dem Empfänger zum vorgegebenen Zeitpunkt zugestellt. Für Nachrichten an TACs wird dazu das zugehörige Teilprogramm durch openUTM gestartet.

  • Service-gesteuerte Queues

    Bei diesen Queues wird die Verarbeitung nicht durch UTM, sondern durch das Teilprogramm selbst gesteuert.

    Für Service-gesteuerte Queues stehen drei Typen zur Verfügung:

    1. USER-Queues

      Jedem Benutzer einer UTM-Anwendung steht automatisch unter seiner Benutzerkennung eine permanente Queue zur Verfügung. Eine solche Queue ist über die Benutzerkennung erreichbar. USER-Queues bieten die Möglichkeit, beispielsweise asynchrone Nachrichten an einen UPIC-Benutzer zu senden.

    2. TAC-Queues

      Durch die Generierung von TACs vom Typ 'Q' werden permanente Queues mit festem Namen erzeugt. Über eine solche Queue lassen sich beispielsweise Queues in fernen UTM-Anwendungen realisieren, die von der lokalen UTM-Anwendung über einen LTAC-Namen angesprochen werden.

      Die Dead Letter Queue KDCDLETQ ist eine TAC-Queue, die immer zur Verfügung steht, um Nachrichten zu sichern, die nicht verarbeitet werden konnten.

    3. Temporäre Queues

      Temporäre Queues können dynamisch erzeugt und gelöscht werden. Der Name einer solchen Queue kann von dem Teilprogramm oder implizit durch openUTM erzeugt werden. Mit Hilfe temporärer Queues ist z.B. die Kommunikation zwischen zwei Vorgängen möglich: Ein Vorgang richtet die Queue ein und sendet eine Nachricht an die Queue; ein anderer Vorgang liest die Nachricht und löscht anschließend die Queue.

      Die maximal möglich Anzahl temporärer Queues wird mit der Generierungsanweisung QUEUE festgelegt.

      Zum Erzeugen und Löschen von temporären Queues stehen Ihnen die KDCS-Aufrufe QCRE und QREL zur Verfügung. Diese Aufrufe sind im openUTM-Handbuch „Anwendungen programmieren mit KDCS“ beschrieben.

Die Administration von Nachrichten in einer Queue erfolgt über die Programmschnittstelle KDCS mit DADM. Mit FPUT und DPUT können Sie Hintergrund-Aufträge, Ausgabe-Aufträge und Nachrichten für Service-gesteuerte Queues erzeugen. Welche Funktion DADM im einzelnen durchführt, ist abhängig von der Operationsmodifikation, die Sie im Feld kcom des Parameterbereichs an openUTM übergeben. Folgende Operationsmodifikationen stehen zur Verfügung:

  • DADM RQ (Read Queue) zum Lesen von Informationen über die Nachrichten in einer Message Queue.

  • DADM UI (User Information) zum Lesen von Benutzerinformationen zu einer Nachricht. Benutzerinformationen werden beim Erzeugen einer Nachricht vom Auftraggeber geschrieben und im angegebenen Empfangsbereich übergeben.

  • DADM CS (Change Sequence) ändert die Reihenfolge der Nachrichten in einer Queue. Sie können damit eine Nachricht von einer beliebigen Stelle in der Queue an die erste Stelle vorziehen. Diese Nachricht wird dann vor allen anderen Nachrichten der Queue bearbeitet.

  • DADM DL (Delete) und DADM DA (Delete All) zum Löschen einer einzelnen Nachricht oder aller Nachrichten einer Queue.

    Beim Löschen von Auftrags-Komplexen mit DADM DL können Sie negative Quittungsaufträge aktivieren. Ein Auftrags-Komplex ist ein Asynchron-Auftrag mit positivem und/oder negativem Quittungs-Auftrag (siehe openUTM-Handbuch „Anwendungen programmieren mit KDCS“, MCOM-Aufruf).

    Beim Löschen von Nachrichten mit DADM DA werden die Nachrichten einschließlich der Folgenachrichten gelöscht. Ein solcher Löschaufruf wird nur ausgeführt

    • bei UTM-gesteuerten Queues, wenn für das angegebene Ziel kein Auftrag in Bearbeitung ist,

    • bei Service-gesteuerten Queues, wenn gerade keine Nachricht gelesen wird.

  • DADM MV (Move) und DADM MA (Move all) zum Verschieben einer oder aller Nachrichten, die in der Dead Letter Queue gespeichert wurden. Die Nachrichten können der jeweiligen ursprünglichen Message Queue oder einem beliebigen Ziel vom gleichen Typ (Asynchron-TAC/TAC-Queue, LPAP-Partner, OSI-LPAP-Partner) zugeordnet werden.

Damit openUTM DADM-Nachrichten bearbeiten kann, müssen Sie die Message Queue und die Nachricht in der Queue eindeutig identifizieren.

Identifikation der Message Queue

Die Message Queues in openUTM sind Empfänger-spezifisch, d.h. für jeden Empfänger von Aufträgen bzw. Nachrichten verwaltet entweder openUTM oder das Teilprogramm selbst eine eigene Message Queue. Eine zu administrierende UTM-gesteuerte Message Queue ist eindeutig identifiziert, wenn Sie beim Aufruf von DADM den Namen des Empfängers angeben. Bei UTM-gesteuerten Queues geben Sie beispielsweise an:

  • bei Ausgabe-Aufträgen den Namen des LTERM-Partners, dem das Terminal, der Drucker oder die TS-Anwendung zugeordnet ist,

  • bei Hintergrund-Aufträgen den Namen des Asynchron-TACs, an den der Auftrag gerichtet ist.

Bei Service-gesteuerten Queues ist zur Identifikation der Name und der Typ der Queue erforderlich.

Den Namen des Empfängers übergeben Sie bei DADM RQ/DL/DA im Feld kclt, den Typ im Feld kcqtyp des KB-Parameterbereichs.

Identifikation von Nachrichten in einer Message Queue

openUTM baut für jede Nachricht intern eine eigene Identifikation auf, auch Auftrags-Id oder DPUTID genannt. Dadurch können Sie jede einzelne Nachricht gezielt administrieren.

Nach der Bearbeitung einer Nachricht durch den Empfänger oder Löschen der Nachricht durch die Administration wird die Auftrags-Id freigegeben und kann von openUTM direkt wieder für eine andere Nachricht vergeben werden. Deshalb müssen Sie bei DADM UI/CS/DL-Aufrufen zur eindeutigen Identifikation der zu administrierenden Nachricht zusätzlich den Zeitpunkt der Nachrichtenerzeugung angeben. Nur so kann z.B. verhindert werden, dass eine falsche Nachricht mit DADM DL storniert wird.

Auftrags-Id und Zeitpunkt der Nachrichtenerzeugung müssen Sie bei den DADM-Aufrufen im KB-Parameterbereich übergeben. Beides können Sie mit DADM RQ ermitteln und in folgenden DADM-Aufrufen verwenden.

Werden die in der KDCFILE zwischengespeicherten Nachrichten (FPUT- und DPUT-Nachrichten) mit dem UTM-Tool KDCUPD in eine neue KDCFILE übertragen, dann erhalten sie neue Auftrags-Ids.