Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Austausch von Nachrichten

Jedes berechtigte Benutzerprogramm tauscht seine Nachrichten über die DCAM-Anwendungen aus. DCAM bietet Schnittstellen für die Programmiersprachen COBOL und Assembler an:

  • Wenn das zu lösende Problem keine besonderen Anforderungen an die Übermittlung von Nachrichten stellt, so lässt sich COBOL einsetzen.

  • Ist aber eine asynchrone Verarbeitung eintreffender Meldungen erforderlich, so ist in Assembler (mit Makroaufrufen zur ereignisgesteuerten Verarbeitung) zu programmieren. Einzelheiten sind den Handbüchern „DCAM-Programmschnittstellen“ [13], „DCAM-Cobol-Aufrufe“ [11], „DCAM-Makroaufrufe“ [12] und „Makroaufrufe an den Ablaufteil“ [30] zu entnehmen.

Grobstruktur eines berechtigten Benutzerprogramms

Das folgende Bild gibt zunächst eine Übersicht, wie ein berechtigtes Benutzerprogramm Nachrichten mit dem System austauscht.

Bild 26: Nachrichtenaustausch zwischen BS2000 und berechtigtem Benutzerprogramm

Da jedes berechtigte Benutzerprogramm seine Nachrichten über DCAM-Anwendungen mit dem System austauscht, ergeben sich zwei Grobstrukturen für solche Programme: synchrone und asynchrone Verarbeitung.

  • Synchrone Verarbeitung

    Die Grobstruktur für ein Programm, das eintreffende Meldungen synchron verarbeitet, zeigt das folgende Bild. Dabei kann der Inhalt der Schleife je nach gegebener Aufgabenstellung anders angeordnet sein.

    In Klammern ist jeweils der zu verwendende COBOL- bzw. Makroaufruf angegeben.

    Bild 27: Grobstruktur für ein berechtigtes Benutzerprogramm (Meldungen synchron verarbeiten)

  • Asynchrone Verarbeitung

    Die Grobstruktur für ein Programm, das eintreffende Meldungen asynchron verarbeitet, unterscheidet sich von der vorstehenden im Wesentlichen durch den Inhalt der Schleife und eine geringe Änderung im Schritt „Vorbereiten der Verarbeitung“: Ereigniskennungen sind einzurichten und Contingency-Definitionen dem System bekanntzugeben; siehe Makroaufrufe ENAEI und ENACO im Handbuch „Makroaufrufe an den Ablaufteil“ [30]).

    Die Schleife enthält hier nur die Anforderung einer Nachricht; wenn die Nachricht eintrifft, lässt sie sich in einem Contingency-Prozess verarbeiten, das Senden einer Antwort eingeschlossen.
    In die Schleife lassen sich weitere Tätigkeiten einbeziehen, die nicht zum Verarbeiten von Nachrichten gehören. Das asynchrone Verarbeiten von Nachrichten ist deshalb bei Aufgabenstellungen sinnvoll, die zusätzliche Koordinierungstätigkeiten erfordern oder bei denen mehrere Kommunikationspartner zu bedienen sind.

    Bild 28: Grobstruktur für ein berechtigtes Benutzerprogramm (Meldungen asynchron verarbeiten)

Überwachung der Abnahme von Nachrichten

Von der UCON-Task wird zyklisch (jede Minute) überprüft, ob berechtigte Benutzerprogramme die an sie verschickten Nachrichten entgegennehmen. Wird festgestellt, dass die nächste zur Ausgabe anstehende Meldung schon länger als eine Minute auf den Empfang durch das berechtigte Benutzerprogramm wartet, wird das mit der Meldung NBR0600 an der Konsole gemeldet.

Wird ferner festgestellt, dass die nächste Meldung länger als die durch den Systemparameter NBRCSCK bzw. NBRCSCKN festgelegte maximale Wartezeit zur Ausgabe ansteht, reagiert das System entsprechend der DISCON-Angabe in der Verbindungsnachricht (siehe "Anschlüsse mit dynamischen Berechtigungsnamen"):

DISCON=YES:

Die Verbindung des betreffenden berechtigten Benutzerprogrammes zur UCON-Task ($CONSOLE) wird abgebrochen.

DISCON=NO:

Alle Meldungen, die zur Ausgabe an das berechtigte Benutzerprogramm anstehen, werden gelöscht und durch eine einzelne Meldung NBR0601 ersetzt.