Freigeben über


RECEIVE_IMMEDIATE

Das RECEIVE_IMMEDIATE Verb empfängt alle daten, die derzeit aus dem Partnertransaktionsprogramm (Partner Transaction Program, TP) verfügbar sind. Wenn keine Daten verfügbar sind, wartet der lokale TP nicht. Um das Blockieren der Unterhaltung zu vermeiden, kann das Microsoft Windows-Betriebssystem RECEIVE_AND_WAIT in Verbindung mit WinAsyncAPPC ausgeben.

Die folgende Struktur beschreibt den Verb-Steuerelementblock, der vom RECEIVE_IMMEDIATE Verb verwendet wird.

Syntax

  
struct receive_immediate {  
    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 Code des Verbvorgangs an, AP_B_RECEIVE_IMMEDIATE.

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 im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

conv_id
Angegebener Parameter. Stellt den Unterhaltungsbezeichner bereit. Der Wert dieses Parameters wird von ALLOCATE im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

what_rcvd
Zurückgegebener Parameter. Enthält Informationen, die mit den eingehenden Daten empfangen werden. Mögliche Werte werden im Abschnitt Member aufgeführt.

rtn_status
Angegebener Parameter. Gibt an, ob daten- und konversations- status Indikatoren innerhalb eines API-Aufrufs zurückgegeben werden sollen.

Verwenden Sie AP_NO, um anzugeben, dass Indikatoren einzeln für separate Aufrufe des Verbs zurückgegeben werden sollen.

Verwenden Sie AP_YES, um anzugeben, 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 aufzunehmen, die dem status Indikator vorangestellt sind.

  • Der Fill-Parameter gibt entweder BUFFER oder LL an, und die Daten sind der letzte logische Datensatz vor dem status Indikator.

    Füllen
    Angegebener Parameter. Gibt die Art und Weise an, in der der lokale TP Daten empfängt. Es wird nur für RECEIVE_IMMEDIATE verwendet.

    Verwenden Sie AP_BUFFER, um anzugeben, dass der lokale TP Daten empfängt, bis die durch max_len angegebene Anzahl von Bytes erreicht ist oder bis zum Ende der Daten. Daten werden ohne Berücksichtigung des Logischen Datensatzformats empfangen.

    Verwenden Sie AP_LL, um anzugeben, 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-Senden-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 RECEIVE-Zustand ändert.

  • AP_NO gibt an, dass der Partner-TP keine REQUEST_TO_SEND ausgestellt hat.

    max_len
    Angegebener Parameter. Gibt die maximale Anzahl von Datenbytes an, die der lokale TP empfangen kann. Der Bereich reicht von 0 bis 65535.

    Für das Windows-Betriebssystem darf dieser Wert die Länge des Puffers, der die empfangenen Daten enthält, nicht überschreiten.

    Durch Die Ausgabe RECEIVE_IMMEDIATE mit max_len auf 0 festgelegt ist, kann der lokale TP bestimmen, ob der Partner-TP über zu sendende Daten verfügt, eine Bestätigung sucht oder den Unterhaltungsstatus geändert hat.

    dlen
    Zurückgegebener Parameter. Gibt die Anzahl der empfangenen Datenbytes an. Die Daten werden in einem puffer gespeichert, der von dptr angegeben wird. Eine Länge von 0 gibt an, dass keine Daten empfangen wurden.

    dptr
    Angegebener Parameter. Adresse des Puffers, 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 der 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. Beim Empfang dieses Werts gibt der lokale TP normalerweise "CONFIRMED" aus.

  • AP_CONFIRM_SEND gibt an, dass der Partner-TP PREPARE_TO_RECEIVE mit ptr_type auf AP_SYNC_LEVEL festgelegt hat, und dass die von ALLOCATE festgelegte Synchronisierungsebene der Konversation AP_CONFIRM_SYNC_LEVEL ist. Nach Dem Empfang dieses Werts gibt der lokale TP normalerweise "CONFIRMED" aus und beginnt mit dem Senden von Daten.

  • AP_CONFIRM_WHAT_RECEIVED gibt an, dass der Partner tp CONFIRM ausgestellt hat. Beim Empfang dieses Werts gibt der lokale TP normalerweise "CONFIRMED" aus.

  • AP_DATA wird für einfache Unterhaltungen von RECEIVE_IMMEDIATE zurückgegeben, 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_IMMEDIATE Ende der Daten" am Ende dieses Themas.

  • AP_DATA_COMPLETE gibt für RECEIVE_IMMEDIATE an, bei denen die Füllmenge in einfachen Unterhaltungen auf AP_LL festgelegt ist, dass der lokale TP einen vollständigen logischen Datensatz oder das Ende eines logischen Datensatzes erhalten hat.

    Wenn dieser Wert empfangen wird, wird vom lokalen TP normalerweise RECEIVE_IMMEDIATE neu ausgegeben oder ein anderes Empfangsverb ausgegeben. Wenn der Partner-TP weitere Daten gesendet hat, beginnt der lokale TP, eine neue Dateneinheit zu empfangen.

    Andernfalls prüft der lokale TP status Informationen, ob primary_rc AP_OK und what_rcvd einen der folgenden Werte enthält:

    AP_SEND

    AP_CONFIRM_SEND

    AP_CONFIRM_DEALLOCATE

    AP_CONFIRM_WHAT_RECEIVED

    Die nächste Aktion, die der lokale TP normalerweise ausführt, finden Sie in der Beschreibung des Werts in Rückgabecodes in diesem Thema.

    Wenn primary_rc AP_DEALLOC_NORMAL enthält, wurde die Konversation als Antwort auf DEALLOCATE vom Partner-TP zugeordnet.

  • AP_DATA_INCOMPLETE gibt für RECEIVE_IMMEDIATE in zugeordneten Unterhaltungen an, dass der lokale TP einen unvollständigen Datensatz erhalten hat. Der max_len-Parameter 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 zum Lesen des Datensatzes ist).

    Für RECEIVE_IMMEDIATE , deren Füllmenge in einfachen Unterhaltungen auf AP_LL festgelegt ist, gibt dieser Wert an, dass der lokale TP einen unvollständigen logischen Datensatz erhalten hat.

    Beim Empfang dieses Werts gibt der lokale TP normalerweise RECEIVE_IMMEDIATE neu aus (oder gibt ein anderes Empfangsverb aus), um den nächsten Teil des Datensatzes zu erhalten.

  • AP_NONE gibt an, dass der TP keine Daten oder Konversationsindikatoren status empfangen hat.

  • AP_SEND gibt an, dass die Konversation für das Partner-TP den RECEIVE-Status erreicht hat. Für den lokalen TP befindet sich die Unterhaltung jetzt im SEND-Zustand. Beim Empfang dieses Werts verwendet der 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_UNSUCCESSFUL
Primärer Rückgabecode; vom Partner TP sind keine Daten sofort verfügbar.

AP_DEALLOC_NORMAL
Primärer Rückgabecode; der Partner tp die Konversation zugeordnet hat, ohne eine Bestätigung anzufordern. Der Partner tp hat DEALLOCATE mit dealloc_type auf eine der folgenden festgelegt:

  • 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 nicht mit einem von APPC zugewiesenen Unterhaltungsbezeichner übereinstimmt.

    AP_BAD_TP_ID

    Sekundärer Rückgabecode; der Wert von tp_id nicht mit einem TP-Bezeichner übereinstimmt, 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_IMMD_BAD_FILL

    Sekundärer Rückgabecode für eine einfache Unterhaltung; Der Fill-Parameter wurde 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_IMMD_BAD_STATE

    Sekundärer Rückgabecode; die Unterhaltung befand sich nicht im RECEIVE-Zustand.

    AP_ALLOCATION_ERROR

    Sekundä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 dauerhaften Bedingung nicht zugeordnet werden, z. B. aufgrund eines Konfigurationsfehlers oder eines 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 nicht den in der Zuordnungsanforderung angegebenen Konversationstyp (basic oder mapped).

    AP_PIP_NOT_ALLOWED

    Sekundärer Rückgabecode; In der Zuordnungsanforderung wurden PIP-Daten angegeben, aber entweder benötigt der 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; der in der Zuordnungsanforderung angegebene Benutzerbezeichner 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 der 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 während der Verarbeitung des Verbs nicht geladen werden oder wurde 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 er angeben, 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 enthält, 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 nicht auf aktiven Knoten konfiguriert. Das Problem kann wie folgt aussehen:

  • 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 Unterhaltung wurde aufgrund einer dauerhaften Bedingung beendet, z. B. aufgrund eines Sitzungsprotokollfehlers. Der Systemadministrator sollte das Systemfehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln. Wiederholen Sie die Unterhaltung 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. Nur ein Typ kann in einer einzelnen Unterhaltung 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 Zustand hat der Partner-TP SEND_ERROR mit err_type auf AP_PROG festgelegt. 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 mit err_type auf AP_PROG festgelegt. 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 nur ein herausragendes Konversationsverb gleichzeitig für jede Unterhaltung geben. Dies kann auftreten, wenn der lokale TP über mehrere Threads verfügt und mehr als ein Thread APPC-Aufrufe mit demselben conv_id ausgibt.

    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 Konversation wurde aus einem der folgenden Gründe behandelt:

  • Der Partner-TP hat DEALLOCATE ausgestellt, wobei dealloc_type 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 Konversation wurde zugeordnet, weil der Partner TP DEALLOCATE mit dealloc_type auf AP_ABEND_SVC festgelegt hat.

    AP_DEALLOC_ABEND_TIMER
    Primärer Rückgabecode; die Konversation wurde aufgehoben, da der Partner TP DEALLOCATE mit dealloc_type auf AP_ABEND_TIMER festgelegt hat.

    AP_SVC_ERROR_NO_TRUNC
    Primärer Rückgabecode; im SEND-Zustand hat die Partner-TP (oder 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 und 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_TRUNC
    Primärer Rückgabecode; Im SEND-Zustand hat die Partner-TP (oder Partner-LU) nach dem Senden eines unvollständigen logischen Datensatzes SEND_ERROR ausgegeben. Der lokale TP hat möglicherweise den ersten Teil des logischen Datensatzes erhalten.

Hinweise

Der lokale TP empfängt Daten über den folgenden Prozess:

  1. Das lokale TP gibt ein Empfangsverb aus, bis er eine vollständige Dateneinheit erhält. Die empfangenen Daten können wie folgt sein:

    • Ein logischer Datensatz.

    • Ein Puffer von Daten, die unabhängig vom Format des logischen Datensatzes empfangen werden.

      Das lokale TP muss das Empfangsverb möglicherweise mehrmals ausstellen, 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.

  2. Das lokale TP gibt das Empfangsverb erneut aus. Dies hat eine der folgenden Auswirkungen:

    • Wenn der Partner-TP weitere Daten gesendet hat, beginnt der lokale TP, eine neue Dateneinheit zu empfangen.

    • Wenn der Partner-TP das Senden von Daten abgeschlossen hat oder auf die Bestätigung wartet, gibt status Informationen (über what_rcvd verfügbar) die nächste Aktion an, die der lokale TP normalerweise ausführt.

    Die Konversation muss sich im RECEIVE-Zustand befinden, wenn das TP dieses Verb ausgibt.

    Der neue Zustand wird durch primary_rc bestimmt. Wenn primary_rc AP_OK ist, wird der neue Zustand durch what_rcvd bestimmt.

    In der folgenden Tabelle wird der Status geändert, wenn die primary_rc AP_OK wird.

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 der 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
AP_UNSUCCESSFUL Keine Änderung

SOFORTIGES Ende der Daten erhalten

Wenn der lokale TP in einfachen Unterhaltungen RECEIVE_IMMEDIATE ausgibt und fill auf AP_BUFFER festlegt, 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 vom lokalen TP RECEIVE_IMMEDIATE erneut ausgestellt. Wenn der neue parameter primary_rc AP_OK und what_rcvd AP_DATA enthält, wurde das Ende der Daten nicht erreicht. Wenn jedoch das Ende der Daten erreicht wurde, gibt primary_rc oder what_rcvd die Ursache für das Ende der Daten an.