RECEIVE_AND_WAIT
Das RECEIVE_AND_WAIT Verb empfängt alle Daten, die derzeit aus dem Partnertransaktionsprogramm (TP) verfügbar sind. Wenn derzeit keine Daten verfügbar sind, wartet der lokale TP auf das Eintreffen von Daten.
Damit die asynchrone Unterstützung vollständig genutzt werden kann, wurden asynchron ausgegebene RECEIVE_AND_WAIT Verben so geändert, dass sie sich wie RECEIVE_AND_POST Verben verhalten. Während eine asynchrone RECEIVE_AND_WAIT aussteht, können die folgenden Verben für dieselbe Unterhaltung ausgegeben werden:
DEALLOCATE(AP_ABEND_PROG, AP_ABEND_SVC oder AP_ABEND_TIMER)
-
Dies ermöglicht es einer Anwendung und insbesondere einem 5250-Emulator, eine asynchrone RECEIVE_AND_WAIT zum Empfangen von Daten zu verwenden. Obwohl die RECEIVE_AND_WAIT ausstehend ist, kann sie weiterhin SEND_ERROR und REQUEST_TO_SEND verwenden. Es wird empfohlen, dieses Feature für vollständige asynchrone Unterstützung zu verwenden.
Die folgende Struktur beschreibt den verb control block (VCB), der vom RECEIVE_AND_WAIT Verb verwendet wird.
Syntax
struct receive_and_wait {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned short what_rcvd;
unsigned char rtn_status;
unsigned char fill;
unsigned char rts_rcvd;
unsigned char reserv4;
unsigned short max_len;
unsigned short dlen;
unsigned char FAR * dptr;
unsigned char reserv5[5];
};
Member
opcode
Angegebener Parameter. Gibt den Verbvorgangscode AP_B_RECEIVE_AND_WAIT an.
opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_BASIC_CONVERSATION.
reserv2
Ein reserviertes Feld.
primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.
secondary_rc
Zurückgegebener Parameter. Gibt den sekundären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.
tp_id
Angegebener Parameter. Identifiziert den lokalen TP.
Der Wert dieses Parameters wird von TP_STARTED beim Aufrufen von TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
conv_id
Angegebener Parameter. Gibt den Unterhaltungsbezeichner an.
Der Wert dieses Parameters wird von ALLOCATE im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
what_rcvd
Zurückgegebener Parameter. Gibt an, ob Daten oder Konversationen status empfangen wurden. Mögliche Werte sind in der Tabelle nach dem Abschnitt Member aufgeführt.
rtn_status
Angegebener Parameter. Gibt an, ob sowohl Daten als auch Unterhaltungsindikatoren status innerhalb eines API-Aufrufs zurückgegeben werden sollen.
AP_NO gibt an, dass Indikatoren einzeln bei separaten Aufrufen des Verbs zurückgegeben werden sollen.
AP_YES gibt an, dass Indikatoren zusammen zurückgegeben werden sollen, sofern beide verfügbar sind. Beide können zurückgegeben werden, wenn:
Der Empfangspuffer ist groß genug, um alle Daten zu enthalten, die dem status-Indikator vorangestellt sind.
Der Fill-Parameter gibt BUFFER oder LL an, und die Daten sind der letzte logische Datensatz vor dem status-Indikator.
Füllen
Angegebener Parameter. Wird in einer einfachen Unterhaltung verwendet, um anzugeben, wie das lokale TP Daten empfängt. Die folgenden Werte sind zulässig:AP_BUFFER gibt an, dass der lokale TP Daten empfängt, bis die durch max_len angegebene Anzahl von Bytes oder das Ende der Daten erreicht ist. Daten werden ohne Berücksichtigung des Logischen Datensatzformats empfangen.
AP_LL gibt an, dass Daten im Format logischer Datensätze empfangen werden. Die empfangenen Daten können ein vollständiger logischer Datensatz, ein max_len Byteteil eines logischen Datensatzes oder das Ende eines logischen Datensatzes sein.
rts_rcvd
Zurückgegebener Parameter. Enthält den Anforderungs-zu-Sende-Indikator. Mögliche Werte:AP_YES gibt an, dass der Partner-TP REQUEST_TO_SEND ausgestellt hat, der anfordert, dass der lokale TP die Unterhaltung in den EMPFANGSzustand ändert.
AP_NO gibt an, dass der Partner-TP keine REQUEST_TO_SEND ausgestellt hat.
max_len
Angegebener Parameter. Gibt die maximale Anzahl von Bytes an Daten an, die der lokale TP empfangen kann. Der Bereich reicht von 0 bis 65535.Für das Microsoft Windows-Betriebssystem darf dieser Wert die Länge des Puffers, der die empfangenen Daten enthält, nicht überschreiten.
Durch die Ausgabe RECEIVE_AND_WAIT mit max_len , die auf 0 (null) festgelegt sind, kann das lokale TP bestimmen, ob das Partner-TP über zu sendende Daten verfügt, eine Bestätigung angibt oder den Konversationszustand geändert hat.
dlen
Zurückgegebener Parameter. Gibt die Anzahl der empfangenen Daten in Bytes an. Die Daten werden in dem von dptr angegebenen Puffer gespeichert. Die Länge 0 (null) gibt an, dass keine Daten empfangen wurden.dptr
Angegebener Parameter. Gibt die Adresse des Puffers an, der die vom lokalen TP empfangenen Daten enthält.Für das Windows-Betriebssystem kann sich der Datenpuffer in einem statischen Datenbereich oder in einem global zugeordneten Bereich befinden. Der Datenpuffer muss vollständig in diesen Bereich passen.
Vom what_rcvd-Parameter zurückgegebene Werte
AP_CONFIRM_DEALLOCATE gibt an, dass das Partner-TP DEALLOCATE mit dealloc_type ausgestellt hat, die auf AP_SYNC_LEVEL festgelegt ist, und dass die von ALLOCATE festgelegte Synchronisierungsebene der Konversation AP_CONFIRM_SYNC_LEVEL ist. Wenn dieser Wert empfangen wird, gibt das lokale TP in der Regel "CONFIRMED" aus.
AP_CONFIRM_SEND gibt an, dass der Partner-TP PREPARE_TO_RECEIVE mit ptr_type ausgestellt hat, die auf AP_SYNC_LEVEL festgelegt ist, und dass die von ALLOCATE festgelegte Synchronisierungsebene der Konversation AP_CONFIRM_SYNC_LEVEL ist. Wenn dieser Wert empfangen wird, gibt das lokale TP in der Regel BESTÄTIGT aus und beginnt mit dem Senden von Daten.
AP_CONFIRM_WHAT_RECEIVED gibt an, dass die Partner-TP CONFIRM ausgestellt hat. Wenn dieser Wert empfangen wird, gibt das lokale TP in der Regel "CONFIRMED" aus.
AP_DATA können in einer einfachen Unterhaltung zurückgegeben werden , indem RECEIVE_AND_WAIT , wenn Füllung auf AP_BUFFER festgelegt ist. Der lokale TP hat Daten empfangen , bis max_len oder Ende der Daten erreicht wurde. Weitere Informationen finden Sie unter "RECEIVE_AND_WAIT Ende der Daten" am Ende dieses Themas.
AP_DATA_COMPLETE gibt für RECEIVE_AND_WAIT an, dass das lokale TP einen vollständigen Datensatz oder den letzten Teil eines Datensatzes erhalten hat.
Bei RECEIVE_AND_WAIT , deren Füllung auf AP_LL festgelegt ist, gibt dieser Wert an, dass der lokale TP einen vollständigen logischen Datensatz oder das Ende eines logischen Datensatzes erhalten hat.
Beim Empfang dieses Werts gibt das lokale TP normalerweise RECEIVE_AND_WAIT erneut aus oder gibt ein anderes Empfangsverb aus. Wenn der Partner-TP mehr Daten gesendet hat, empfängt das lokale TP eine neue Dateneinheit.
Andernfalls überprüft das lokale TP status Informationen, wenn primary_rc AP_OK und what_rcvd AP_SEND, AP_CONFIRM_SEND, AP_CONFIRM_DEALLOCATE oder AP_CONFIRM_WHAT_RECEIVED enthält.
Die nächste Aktion, die der lokale TP normalerweise ausführt, finden Sie unter Zurückgeben von Codes in diesem Thema.
Wenn primary_rc AP_DEALLOC_NORMAL enthält, wurde die Zuordnung der Unterhaltung als Reaktion auf DEALLOCATE aufgehoben, die vom Partner tp ausgestellt wurde.
AP_DATA_INCOMPLETE gibt für RECEIVE_AND_WAIT an, dass das lokale TP einen unvollständigen Datensatz erhalten hat. Der parameter max_len hat einen Wert angegeben, der kleiner als die Länge des Datensatzes ist (oder kleiner als der Rest des Datensatzes, wenn dies nicht das erste Empfangsverb ist, das den Datensatz liest).
Bei RECEIVE_AND_WAIT , deren Füllung auf AP_LL festgelegt ist, gibt dieser Wert an, dass der lokale TP einen unvollständigen logischen Datensatz empfangen hat.
Nach Dem Empfang dieses Werts gibt das lokale TP normalerweise RECEIVE_AND_WAIT neu aus (oder gibt ein anderes Empfangsverb aus), um den nächsten Teil des Datensatzes zu erhalten.
AP_NONE gibt an, dass das TP keine Daten oder Konversations-status-Indikatoren empfangen hat.
AP_SEND gibt für den Partner-TP an, dass die Unterhaltung in den EMPFANGSzustand versetzt wurde. Für das lokale TP befindet sich die Unterhaltung jetzt im SEND-Zustand. Beim Empfang dieses Werts verwendet das lokale TP normalerweise SEND_DATA , um mit dem Senden von Daten zu beginnen.
Rückgabecodes
AP_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt.
Wenn rtn_status AP_YES ist, kann der vorherige Rückgabecode oder einer der folgenden Rückgabecodes zurückgegeben werden.
AP_DATA_COMPLETE_SEND
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA_COMPLETE und AP_SEND.
AP_DATA_COMPLETE_CONFIRM_SEND
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA_COMPLETE und AP_CONFIRM_SEND.
AP_DATA_COMPLETE_CONFIRM
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA_COMPLETE und AP_CONFIRM_WHAT_RECEIVED.
AP_DATA_COMPLETE_CONFIRM_DEALL
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA_COMPLETE und AP_CONFIRM_DEALLOCATE.
AP_DATA_SEND
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA und AP_SEND.
AP_DATA_CONFIRM_SEND
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA und AP_CONFIRM_SEND.
AP_DATA_CONFIRM
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA und AP_CONFIRM_WHAT_RECEIVED.
AP_DATA_CONFIRM_DEALLOCATE
Primärer Rückgabecode; dies ist eine Kombination aus AP_DATA und AP_CONFIRM_DEALLOCATE.
AP_DEALLOC_NORMAL
Primärer Rückgabecode; Der Partner-TP hat die Zuordnung der Konversation aufgehoben, ohne eine Bestätigung anzufordern, und deallocate mit dealloc_type ausgestellt, die auf eine der folgenden Punkte festgelegt ist:
AP_CONFIRM_SYNC_LEVEL
AP_FLUSH
AP_SYNC_LEVEL mit der Synchronisierungsebene der Unterhaltung, die als AP_NONE
Wenn rtn_status AP_YES ist, überprüfen Sie auch what_rcvd .
AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.
AP_BAD_CONV_ID
Sekundärer Rückgabecode; Der Wert von conv_id stimmte nicht mit einem von APPC zugewiesenen Konversationsbezeichner überein.
AP_BAD_TP_ID
Sekundärer Rückgabecode; Der Wert von tp_id stimmte nicht mit einem TP-Bezeichner überein, der von APPC zugewiesen wurde.
AP_BAD_RETURN_STATUS_WITH_DATA
Sekundärer Rückgabecode; der angegebene rtn_status Wert wurde von APPC nicht erkannt.
AP_INVALID_DATA_SEGMENT
Sekundärer Rückgabecode; Die für den Datenpuffer angegebene Länge war länger als das Segment, das dem Puffer zugeordnet wurde.
AP_RCV_AND_WAIT_BAD_FILL
Sekundärer Rückgabecode; Für einfache Unterhaltungen wurde fill auf einen ungültigen Wert festgelegt.
AP_STATE_CHECK
Primärer Rückgabecode; das Verb wurde nicht ausgeführt, da es in einem ungültigen Zustand ausgegeben wurde.
AP_RCV_AND_WAIT_BAD_STATE
Sekundärer Rückgabecode; Die Unterhaltung befand sich nicht im Status "RECEIVE" oder "SEND", als das TP dieses Verb ausgestellt hat.
AP_RCV_AND_WAIT_NOT_LL_BDY
Sekundärer Rückgabecode; für einfache Unterhaltungen befand sich die Unterhaltung im SEND-Zustand. der TP begann, aber nicht beendete das Senden eines logischen Datensatzes.
AP_ALLOCATION_ERROR
Primärer Rückgabecode; APPC konnte eine Unterhaltung nicht zuordnen. Der Unterhaltungszustand ist auf ZURÜCKSETZEN festgelegt.
Dieser Code kann über ein Verb zurückgegeben werden, das nach ALLOCATE ausgegeben wurde.
AP_ALLOCATION_FAILURE_NO_RETRY
Sekundärer Rückgabecode; Die Konversation kann aufgrund einer permanenten Bedingung nicht zugeordnet werden, z. B. aufgrund eines Konfigurations- oder Sitzungsprotokollfehlers. Um den Fehler zu ermitteln, sollte der Systemadministrator sollte das Fehlerprotokoll untersuchen. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.
AP_ALLOCATION_FAILURE_RETRY
Sekundärer Rückgabecode; Die Konversation konnte aufgrund einer temporären Bedingung, z. B. eines Linkfehlers, nicht zugeordnet werden. Der Grund für den Fehler wird im Systemfehlerprotokoll protokolliert. Wiederholen Sie die Zuordnung.
AP_CONVERSATION_TYPE_MISMATCH
Sekundärer Rückgabecode; Die partner logical unit (LU) oder TP unterstützt den in der Zuordnungsanforderung angegebenen Konversationstyp (basic oder mapped) nicht.
AP_PIP_NOT_ALLOWED
Sekundärer Rückgabecode; In der Zuordnungsanforderung wurden PIP-Daten angegeben, aber entweder erfordert das Partner-TP diese Daten nicht, oder die Partner-LU unterstützt sie nicht.
AP_PIP_NOT_SPECIFIED_CORRECTLY
Sekundärer Rückgabecode; Der Partner-TP erfordert PIP-Daten, aber die Zuordnungsanforderung hat entweder keine PIP-Daten oder eine falsche Anzahl von Parametern angegeben.
AP_SECURITY_NOT_VALID
Sekundärer Rückgabecode; Die in der Zuordnungsanforderung angegebene Benutzer-ID oder das Kennwort wurde von der Partner-LU nicht akzeptiert.
AP_SYNC_LEVEL_NOT_SUPPORTED
Sekundärer Rückgabecode; der Partner-TP unterstützt die in der Zuordnungsanforderung angegebene sync_level (AP_NONE oder AP_CONFIRM_SYNC_LEVEL) nicht, oder die sync_level wurde nicht erkannt.
AP_TP_NAME_NOT_RECOGNIZED
Sekundärer Rückgabecode; Die Partner-LU erkennt den in der Zuordnungsanforderung angegebenen TP-Namen nicht.
AP_TRANS_PGM_NOT_AVAIL_NO_RETRY
Sekundärer Rückgabecode; Die Remote-LU hat die Zuordnungsanforderung abgelehnt, da sie den angeforderten Partner-TP nicht starten konnte. Die Bedingung ist permanent. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.
AP_TRANS_PGM_NOT_AVAIL_RETRY
Sekundärer Rückgabecode; Die Remote-LU hat die Zuordnungsanforderung abgelehnt, da sie den angeforderten Partner-TP nicht starten konnte. Die Bedingung kann temporär sein, z. B. ein Timeout. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung.
AP_COMM_SUBSYSTEM_ABENDED
Primärer Rückgabecode; weist darauf hin, dass eine der folgenden Bedingungen aufgetreten ist:
Der von dieser Konversation verwendete Knoten hat einen ABEND gefunden.
Die Verbindung zwischen dem TP und dem PU 2.1-Knoten wurde unterbrochen (LAN-Fehler).
SnaBase auf dem Computer des TP hat einen ABEND gefunden.
Der Systemadministrator sollte das Fehlerprotokoll untersuchen, um den Grund für den ABEND zu ermitteln.
AP_COMM_SUBSYSTEM_NOT_LOADED
Primärer Rückgabecode; Eine erforderliche Komponente konnte nicht geladen werden oder wurde während der Verarbeitung des Verbs beendet. Folglich konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.Wenn dieser Rückgabecode mit ALLOCATE verwendet wird, kann dies darauf hindeuten, dass kein Kommunikationssystem gefunden wurde, das die lokale LU unterstützt. (Beispielsweise ist der mit TP_STARTED angegebene lokale LU-Alias falsch oder wurde nicht konfiguriert.) Wenn lu_alias oder mode_name weniger als acht Zeichen umfasst, müssen Sie sicherstellen, dass diese Felder rechts mit Leerzeichen gefüllt sind. Dieser Fehler wird zurückgegeben, wenn diese Parameter nicht mit Leerzeichen gefüllt sind, da kein Knoten verfügbar ist, der die ALLOCATE-Anforderung erfüllen kann.
Wenn ALLOCATE diesen Rückgabecode für ein Host Integration Server-Clientsystem erzeugt, das mit mehreren Knoten konfiguriert ist, gibt es zwei sekundäre Rückgabecodes wie folgt:
0xF0000001
Sekundärer Rückgabecode; Es wurden keine Knoten gestartet.
0xF0000002
Sekundärer Rückgabecode; Mindestens ein Knoten wurde gestartet, aber die lokale LU (wenn TP_STARTED ausgestellt wird) ist auf keinem aktiven Knoten konfiguriert. Das Problem kann eines der folgenden Sein:
Der Knoten mit der lokalen LU wird nicht gestartet.
Die lokale LU ist nicht konfiguriert.
AP_CONV_FAILURE_NO_RETRY
Primärer Rückgabecode; Die Konversation wurde aufgrund einer permanenten Bedingung beendet, z. B. aufgrund eines Sitzungsprotokollfehlers. Der Systemadministrator sollte das Systemfehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln. Wiederholen Sie die Konversation erst, wenn der Fehler behoben wurde.AP_CONV_FAILURE_RETRY
Primärer Rückgabecode; Die Unterhaltung wurde aufgrund eines temporären Fehlers beendet. Starten Sie den TP neu, um festzustellen, ob das Problem erneut auftritt. Wenn dies der Fall ist, sollte der Systemadministrator das Fehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln.AP_CONVERSATION_TYPE_MIXED
Primärer Rückgabecode; der TP hat sowohl grundlegende als auch zugeordnete Konversationsverben ausgegeben. In einer einzelnen Unterhaltung kann nur ein Typ ausgegeben werden.AP_INVALID_VERB_SEGMENT
Primärer Rückgabecode; der VCB wurde über das Ende des Datensegments hinaus erweitert.AP_PROG_ERROR_NO_TRUNC
Primärer Rückgabecode; Der Partner tp hat SEND_ERROR ausgestellt, wobei err_type auf AP_PROG festgelegt ist, während sich die Unterhaltung im SEND-Zustand befand. Daten wurden nicht gekürzt.AP_PROG_ERROR_PURGING
Primärer Rückgabecode; Im Status RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE hat der Partner tp SEND_ERROR ausgestellt, wobei err_type auf AP_PROG festgelegt ist. Gesendete, aber noch nicht empfangene Daten werden gelöscht.AP_PROG_ERROR_TRUNC
Primärer Rückgabecode; Im SEND-Zustand hat der Partner-TP nach dem Senden eines unvollständigen logischen Datensatzes SEND_ERROR ausgestellt, wobei err_type auf AP_PROG festgelegt ist. Der lokale TP hat möglicherweise den ersten Teil des logischen Datensatzes über ein Empfangsverb empfangen.AP_STACK_TOO_SMALL
Primärer Rückgabecode; die Stapelgröße der Anwendung ist zu klein, um das Verb auszuführen. Vergrößern Sie die Stapelgröße Ihrer Anwendung.AP_CONV_BUSY
Primärer Rückgabecode; es kann jeweils nur ein ausstehendes Konversationsverb gleichzeitig geben. Dies kann auftreten, wenn das lokale TP über mehrere Threads verfügt und mehr als ein Thread APPC-Aufrufe mit demselben conv_id ausgibt.AP_THREAD_BLOCKING
Primärer Rückgabecode; der aufrufende Thread befindet sich bereits in einem blockierenden Aufruf.AP_UNEXPECTED_DOS_ERROR
Primärer Rückgabecode; das Betriebssystem hat bei der Verarbeitung eines APPC-Aufrufs vom lokalen TP einen Fehler an APPC zurückgegeben. Der Rückgabecode des Betriebssystems wurde über secondary_rc zurückgegeben. Er wird in Intel-Bytetauschreihenfolge angezeigt. Wenn das Problem weiterhin besteht, wenden Sie sich an Ihren Systemadministrator.AP_DEALLOC_ABEND_PROG
Primärer Rückgabecode; Die Zuordnung der Unterhaltung wurde aus einem der folgenden Gründe aufgehoben:Der Partner tp hat DEALLOCATE mit dealloc_type ausgestellt, der auf AP_ABEND_PROG festgelegt ist.
Der Partner-TP ist auf ein ABEND-Ereignis gestoßen, sodass die Partner-LU eine DEALLOCATE-Anforderung sendet.
AP_DEALLOC_ABEND_SVC
Primärer Rückgabecode; Die Zuordnung der Unterhaltung wurde aufgehoben, weil der Partner tp DEALLOCATE ausgestellt hat, wobei dealloc_type auf AP_ABEND_SVC festgelegt ist.AP_DEALLOC_ABEND_TIMER
Primärer Rückgabecode; Die Zuordnung der Unterhaltung wurde aufgehoben, weil der Partner-TP DEALLOCATE ausgestellt hat, wobei dealloc_type auf AP_ABEND_TIMER festgelegt ist.AP_SVC_ERROR_NO_TRUNC
Primärer Rückgabecode; Im SEND-Zustand wird das partner TP (oder die Partner-LU) SEND_ERROR ausgestellt, wobei err_type auf AP_SVC festgelegt ist. Daten wurden nicht gekürzt.AP_SVC_ERROR_PURGING
Primärer Rückgabecode; die Partner-TP (oder Partner-LU), die SEND_ERROR ausgestellt hat, wobei err_type im Status RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE auf AP_SVC festgelegt ist. Daten, die an die Partner-TP gesendet wurden, wurden möglicherweise gelöscht.AP_SVC_ERROR_NO_TRUNC
Primärer Rückgabecode; im SEND-Zustand, nach dem Senden eines unvollständigen logischen Datensatzes, hat die Partner-TP (oder Partner-LU) SEND_ERROR ausgestellt. Der lokale TP hat möglicherweise den ersten Teil des logischen Datensatzes empfangen.
Hinweise
Das lokale TP empfängt Daten über den folgenden Prozess:
Das lokale TP gibt ein Empfangsverb aus, bis es abgeschlossen ist, eine vollständige Dateneinheit zu erhalten. Die empfangenen Daten können wie folgt sein:
Ein logischer Datensatz.
Ein Datenpuffer, der unabhängig vom Format des logischen Datensatzes empfangen wird.
Das lokale TP muss das Empfangsverb möglicherweise mehrmals ausgeben, um eine vollständige Dateneinheit zu erhalten. Nachdem eine vollständige Dateneinheit empfangen wurde, kann sie vom lokalen TP bearbeitet werden.
Die Empfangsverben sind RECEIVE_AND_POST, RECEIVE_AND_WAIT und RECEIVE_IMMEDIATE.
Das lokale TP gibt das Empfangsverb erneut aus. Dies hat eine der folgenden Auswirkungen:
Wenn der Partner-TP mehr Daten gesendet hat, empfängt das lokale TP eine neue Dateneinheit.
Wenn der Partner-TP das Senden von Daten abgeschlossen hat oder auf eine Bestätigung wartet, gibt status Informationen (verfügbar über den parameter what_rcvd) die nächste Aktion an, die der lokale TP normalerweise ausführt.
Die Unterhaltung muss sich im Status RECEIVE oder SEND befinden, wenn das TP dieses Verb ausgibt.
Ausstellen des Verbs im SEND-Status
Das Ausgeben von RECEIVE_AND_WAIT , während sich die Konversation im SEND-Zustand befindet, hat die folgenden Auswirkungen:
Die lokale LU sendet die Informationen in ihrem Sendepuffer und einen SEND-Indikator an das Partner-TP.
Die Unterhaltung wechselt in den Empfangszustand; das lokale TP wartet, bis der Partner-TP Daten sendet.
Zustandsänderung
Der neue Konversationszustand wird durch die folgenden Faktoren bestimmt:
Der Zustand, in dem sich die Konversation befindet, wenn der TP das Verb ausgibt.
Der parameter primary_rc .
Der parameter what_rcvd , wenn primary_rc AP_OK enthält.
Verb ausgestellt im SEND-Status
In der folgenden Tabelle werden die Statusänderungen aufgeführt, wenn RECEIVE_AND_WAIT im SEND-Zustand ausgegeben wird und primary_rc AP_OK ist.
what_rcvd | Neuer Zustand |
---|---|
AP_CONFIRM_DEALLOCATE | CONFIRM_DEALLOCATE |
AP_DATA_COMPLETE_CONFIRM_DEALL | CONFIRM_DEALLOCATE |
AP_DATA_CONFIRM_DEALLOCATE | CONFIRM_DEALLOCATE |
AP_CONFIRM_SEND | CONFIRM_SEND |
AP_DATA_COMPLETE_CONFIRM_SEND | CONFIRM_SEND |
AP_DATA_CONFIRM_SEND | CONFIRM_SEND |
AP_CONFIRM_WHAT_RECEIVED | BESTÄTIGEN |
AP_DATA_COMPLETE_CONFIRM | BESTÄTIGEN |
AP_DATA_CONFIRM | BESTÄTIGEN |
AP_DATA | RECEIVE |
AP_DATA_COMPLETE | RECEIVE |
AP_DATA_INCOMPLETE | RECEIVE |
AP_SEND | Keine Änderung |
AP_DATA_COMPLETE_SEND | SEND_PENDING |
In der folgenden Tabelle wird beschrieben, wie sich der Zustand ändert, wenn RECEIVE_AND_WAIT im SEND-Zustand ausgestellt wird und primary_rc nicht AP_OK wird.
primary_rc | Neuer Zustand |
---|---|
AP_ALLOCATION_ERROR | RESET |
AP_CONV_FAILURE_RETRY | RESET |
AP_CONV_FAILURE_NO_RETRY | RESET |
AP_DEALLOC_ABEND | RESET |
AP_DEALLOC_ABEND_PROG | RESET |
AP_DEALLOC_ABEND_SVC | RESET |
AP_DEALLOC_ABEND_TIMER | RESET |
AP_DEALLOC_NORMAL | RESET |
AP_PROG_ERROR_PURGING | RECEIVE |
AP_PROG_ERROR_NO_TRUNC | RECEIVE |
AP_SVC_ERROR_PURGING | RECEIVE |
AP_SVC_ERROR_NO_TRUNC | RECEIVE |
Verb ausgestellt im RECEIVE-Status
In der folgenden Tabelle wird beschrieben, wie sich der Zustand ändert, wenn RECEIVE_AND_WAIT im RECEIVE-Status ausgestellt wird und primary_rc AP_OK ist.
what_rcvd | Neuer Zustand |
---|---|
AP_CONFIRM_DEALLOCATE | CONFIRM_DEALLOCATE |
AP_DATA_COMPLETE_CONFIRM_DEALL | CONFIRM_DEALLOCATE |
AP_DATA_CONFIRM_DEALLOCATE | CONFIRM_DEALLOCATE |
AP_CONFIRM_SEND | CONFIRM_SEND |
AP_DATA_COMPLETE_CONFIRM_SEND | CONFIRM_SEND |
AP_DATA_CONFIRM_SEND | CONFIRM_SEND |
AP_CONFIRM_WHAT_RECEIVED | BESTÄTIGEN |
AP_DATA_COMPLETE_CONFIRM | BESTÄTIGEN |
AP_DATA_CONFIRM | BESTÄTIGEN |
AP_DATA | Keine Änderung |
AP_DATA_COMPLETE | Keine Änderung |
AP_DATA_INCOMPLETE | Keine Änderung |
AP_SEND | SEND |
AP_DATA_COMPLETE_SEND | SEND_PENDING |
In der folgenden Tabelle wird beschrieben, wie sich der Zustand ändert, wenn RECEIVE_AND_WAIT im RECEIVE-Status ausgestellt wird und primary_rc nicht AP_OK ist.
primary_rc | Neuer Zustand |
---|---|
AP_ALLOCATION_ERROR | RESET |
AP_CONV_FAILURE_RETRY | RESET |
AP_CONV_FAILURE_NO_RETRY | RESET |
AP_DEALLOC_ABEND | RESET |
AP_DEALLOC_ABEND_PROG | RESET |
AP_DEALLOC_ABEND_SVC | RESET |
AP_DEALLOC_ABEND_TIMER | RESET |
AP_DEALLOC_NORMAL | RESET |
AP_PROG_ERROR_PURGING | Keine Änderung |
AP_PROG_ERROR_NO_TRUNC | Keine Änderung |
AP_SVC_ERROR_PURGING | Keine Änderung |
AP_SVC_ERROR_NO_TRUNC | Keine Änderung |
AP_PROG_ERROR_TRUNC | Keine Änderung |
AP_SVC_ERROR_TRUNC | Keine Änderung |
RECEIVE_AND_WAIT Ende der Daten
Wenn in einfachen Unterhaltungen die lokalen TP-Probleme RECEIVE_AND_WAIT und die Füllung auf AP_BUFFER festgelegt werden, endet der Empfang der Daten, wenn max_len oder das Ende der Daten erreicht ist. Das Ende der Daten wird durch folgendes angegeben:
Ein primary_rc-Parameter mit einem anderen Wert als AP_OK (z. B. AP_DEALLOC_NORMAL).
Ein what_rcvd-Parameter mit einem der folgenden Werte:
AP_SEND
AP_CONFIRM_SEND
AP_CONFIRM_DEALLOCATE
AP_CONFIRM_WHAT_RECEIVED
AP_DATA_CONFIRM_SEND
AP_DATA_CONFIRM_DEALLOCATE
AP_DATA_CONFIRM
Um festzustellen, ob das Ende der Daten erreicht wurde, wird das lokale TP erneut RECEIVE_AND_WAIT. Wenn die neue primary_rc AP_OK und what_rcvd AP_DATA enthält, ist das Ende der Daten nicht erreicht. Wenn jedoch das Ende der Daten erreicht ist, gibt primary_rc oder what_rcvd die Ursache für das Ende der Daten an.
RECEIVE_AND_WAIT wartet darauf, dass Daten oder ein Indikator vom Partner-TP gesendet werden. Wenn das lokale TP kontinuierlich ausgeführt werden soll, verwenden Sie stattdessen RECEIVE_IMMEDIATE .