Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgende Abbildung zeigt die Methode zum Empfangen von Nachrichten aus dem Dynamic Access Module (DMOD).
Empfangen von Nachrichten mithilfe einer Routingprozedur
Nach der DMOD-Initialisierung registriert der 3270-Emulator die Routingprozedur durch Aufrufen von Sepdrout. Wenn der DMOD eine Nachricht empfängt, wird die 3270-Emulatorroutingprozedur aufgerufen, die dann die Nachricht verarbeiten kann.
Bei diesem Ansatz gibt es keinen Kontextwechsel zwischen dem DMOD-Thread und dem 3270-Emulatorthread. Die Routingprozedur muss jedoch schnell die Steuerung an den DMOD zurückgeben. Beispielsweise kann es nicht warten, bis eine Tastatureingabe erfolgt.
Die Anwendung muss bestimmen, ob die empfangene Nachricht für diese Anwendung oder für eine andere Anwendung gilt. Wenn die Nachricht nicht für diese Anwendung gilt, muss die Routingprozedur zurückgegeben werden, die angibt, dass die Nachricht nicht verarbeitet wurde. Wenn die Anwendung die Nachricht verarbeitet, ist sie dafür verantwortlich, den Puffer freizugeben, wenn die Verarbeitung abgeschlossen ist.
In einigen Fällen kann die Routingprozedur die Nachricht bis zum Abschluss verarbeiten. Eine Alternative ist das Routingverfahren, um die Nachricht in eine Anwendungswarteschlange einzufügen und dann ein Anwendungs-Semaphor zu löschen. Anschließend kann die Anwendung die Nachricht verarbeiten.
Die Leistung kann weiter verbessert werden, indem eine Status-Resource-Nachricht aus der Routingprozedur gesendet wird, wenn eine Nachricht empfangen wird, um die Gutschrift an den lokalen Knoten zurückzugeben und diesem zu ermöglichen, weitere Daten zu senden, anstatt zu warten, bis die Nachricht vollständig verarbeitet wurde. Diese Verwendung wird im Beispielcode veranschaulicht: Initialisierung und Routingprozedur. Weitere Informationen zur Kredit- und Flusssteuerung finden Sie unter Pacing und Chunking.
Nachdem die Anwendung eine Nachricht empfangen hat, ist die Anwendung für den Puffer verantwortlich, in dem die Nachricht empfangen wurde. Die Anwendung muss den Puffer entweder wiederverwenden, um eine Nachricht (mithilfe von sbpusend) zu senden oder freizugeben (mit Sepdburl). Wenn der zu verwendende Puffer nicht die richtige Anzahl von Elementen für die zu sendende Nachricht enthält, kann die Anwendung zusätzliche Elemente (mithilfe von sbpibegt) abrufen oder vorhandene freigeben (mit sbpiberl). In diesem Fall muss die Anwendung auch sicherstellen, dass das Numelts-Feld im Pufferheader die richtige Anzahl von Elementen angibt.