Bestätigung und Ablehnung von eingehenden Daten
Für jede SNA-Kette aus gesendeten oder empfangenen Daten, für die Antworten ausstehen, z. B. Request Exception (RQE) oder Definite Response Required (RQD), fügt der lokale Knoten einen Eintrag in eine Korrelationstabelle ein. Wenn die Tabelleneinträge erschöpft sind, beendet der lokale Knoten die Sitzung mit den meisten Tabelleneinträgen. An die Anwendung werden eine Status-Error-Nachricht (Code 0x46) und eine Close(PLU) Request-Nachricht gesendet, und an den Host wird eine TERM-SELF-Nachricht gesendet. Engpässe bei Tabelleneinträgen (eingehend) lassen sich vermeiden, indem CD-Daten (Change Direction, Richtungswechsel) (für Halbduplexdaten) oder ACKRQD für Daten oder Status-Control(CHASE) oder Status-Control(LUSTAT) mit ACKRQD gesendet werden. Engpässe bei Einträgen für ausgehende Daten lassen sich vermeiden, indem Empfangsbestätigungen gesendet werden, wie unter Öffnen der PLU-Verbindung beschrieben.
Der lokale Knoten sendet Datenketten an den Host, wobei sein Kettenantwortmodus wie folgt angegeben ist:
Eindeutig
Wenn die Anwendung eine Data-Nachricht mit festgelegtem ACKRQD-Feld an den lokalen Knoten sendet und durch die BIND-Parameter angegeben ist, dass der sekundäre Knoten den Modus mit eindeutiger Antwort oder mit eindeutiger Antwort/Ausnahmeantwort verwendet.
Ausnahme
Wenn die Anwendung eine Data-Nachricht ohne festgelegtes ACKRQD-Feld an den lokalen Knoten sendet und durch die BIND-Parameter angegeben ist, dass der sekundäre Knoten den Modus mit Ausnahmeantwort oder mit eindeutiger Antwort/Ausnahmeantwort verwendet.
Keine Antwort
Wenn die Anwendung eine Data-Nachricht ohne festgelegtes ACKRQD-Feld an den lokalen Knoten sendet und durch die BIND-Parameter angegeben ist, dass der sekundäre Knoten den Antwortmodus „No Response“ verwendet.
Wenn die Einstellung von ACKRQD für eine Data-Nachricht von der Anwendung nicht dem in den BIND-Parametern angegebenen Kettenantwortmodus entspricht, gibt der lokale Knoten eine Status-Acknowledge(Nack-2)-Antwort mit einem nicht kritischen Fehlercode zurück. Wenn die Anwendung beispielsweise ACKRQD angibt, die BIND-Parameter jedoch nicht zulassen, dass der lokale Knoten Ketten mit eindeutigen Antworten sendet.
In Fall 1 empfängt die Anwendung eine Bestätigung für alle FMD-Ketten (Function Management Data), die sie an den lokalen Knoten sendet:
Positive Antworten vom Host werden als Status-Acknowledge(Ack)-Nachrichten zurückgegeben.
Negative Antworten vom Host werden als Status-Acknowledge(Nack-1)-Nachrichten zurückgegeben, die die SNA-Erkennungscodes enthalten.
Fehler, die vom lokalen Knoten beim Senden der Nachricht erkannt werden, werden als Status-Acknowledge(Nack-2)-Nachrichten zurückgegeben, die den entsprechenden Fehlercode enthalten.
In Fall 2 empfängt die Anwendung nur eine Bestätigung einer FMD-Kette, die sie für Folgendes an den lokalen Knoten sendet:
Negative Antworten vom Host, die als Status-Acknowledge(Nack-1) -Nachrichten mit den SNA-Erkennungscodes zurückgegeben werden.
Vom lokalen Knoten beim Senden der Nachricht erkannte Fehler, die als Status-Acknowledge(Nack-2) -Nachrichten mit dem entsprechenden Fehlercode zurückgegeben werden.
In Fall 3 empfängt die Anwendung nur dann eine Bestätigung einer FMD-Kette, die sie an den lokalen Knoten sendet, wenn der Knoten einen Fehler in der Nachricht erkennt und der Anwendung eine Status-Acknowledge(Nack-2) -Nachricht sendet. Die einzige zulässige Abweichung durch den Host ist das Senden eines nachfolgenden LUSTAT-0x400A-Codes (keine Antwort wird nicht unterstützt) mit der Sequenznummer der Anforderung im Feld für den Erkennungsqualifizierer. Dies wird der Anwendung wie üblich als Status-Control(LUSTAT) angezeigt.
Wenn eine Anwendung eine Status-Acknowledge(Ack) - oder Status-Acknowledge(Nack-1) -Nachricht empfängt, bestätigt sie implizit den Empfang durch die Sitzungshälfte des Partners im Host aller zuvor gesendeten Ketten.
In Fall 2 empfängt die Anwendung in der Regel keine solchen Antworten vom Host auf gesendete Ketten, und in Fall 3 empfängt die Anwendung solche Antworten nie. Damit der Host den Empfang aller zuvor gesendeten Ketten bestätigen kann, sollte die Anwendung daher eine Status-Control(CHASE) Request-Nachricht mit festgelegtem ACKRQD-Feld senden. Dies bewirkt, dass der lokale Knoten eine SNA-CHASE-Anforderung an den Host generiert. Der Empfang der Antwort auf diese CHASE-Anforderung bestätigt, dass der Host diese CHASE-Anforderung und alle vorherigen von der Anwendung gesendeten Ketten empfangen hat. Der lokale Knoten gibt eine Status-Control(CHASE) Acknowledge-Nachricht aus, um die Anwendung darüber zu informieren, dass dies der Fall ist.
Die folgenden drei Abbildungen veranschaulichen die Bestätigungs- und Ablehnungsprotokolle für eingehende Daten zwischen dem lokalen Knoten und der Anwendung sowie die Beziehung dieser Protokolle zu den zugrunde liegenden SNA-Protokollen.
In der ersten Abbildung legt eine Anwendung das ACKRQD-Feld in einer Kette eingehender Daten fest, um den Host zum Bestätigen des Empfangs der Kette und aller zuvor gesendeten Ketten aufzufordern.
Anwendung legt ACKRQD-Feld festIn der folgenden Abbildung lehnt Status-Acknowledge(Nack-1) die letzte Kette ab, bestätigt jedoch den Empfang aller zuvor gesendeten Datenketten durch den Host.
„Status-Acknowledge(Nack-1)“ lehnt die letzte Kette ab, bestätigt jedoch den EmpfangIn der folgenden Abbildung verwendet die Anwendung Status-Control(CHASE) , um den Host aufzufordern, den Empfang der entsprechenden CHASE-Anforderung und aller zuvor gesendeten Ketten zu bestätigen.
Verwendung von „Status-Control(CHASE)“, um den Host zum Bestätigen des Empfangs der entsprechenden CHASE-Anforderung aufzufordern
Weitere Informationen
Öffnen der PLU-Verbindung
PLU-Sitzung
Ausgehende Verkettung
Eingehende Verkettung
Segmentübermittlung
Brackets
Richtung
Geschwindigkeit und Segmentierung
Bestätigung und Ablehnung von Daten]
Herunterfahren und Stilllegen
Wiederherstellung
Von der Anwendung initiierte Beendigung
LUSTATs]
Daten des Monitors für Antwortzeiten