MC_RECEIVE_AND_POST
Das MC_RECEIVE_AND_POST Verb empfängt Anwendungsdaten und status Informationen asynchron. Dadurch kann das lokale Transaktionsprogramm (LOCAL Transaction Program, TP) mit der Verarbeitung fortfahren, während die Daten noch bei der lokalen logischen Einheit (LU) ankommen.
Während ein asynchroner MC_RECEIVE_AND_POST hervorragend ist, können die folgenden Verben für dieselbe Unterhaltung ausgegeben werden:
-
Dadurch kann eine Anwendung eine asynchrone MC_RECEIVE_AND_POST zum Empfangen von Daten verwenden. Der MC_RECEIVE_AND_POST ist zwar ausstehend, kann aber dennoch MC_SEND_ERROR und REQUEST_TO_SEND verwenden. Es wird empfohlen, dieses Feature für vollständige asynchrone Unterstützung zu verwenden. Informationen dazu, wie ein TP Daten empfängt und wie dieses Verb verwendet wird, finden Sie unter Hinweise in diesem Thema.
Die folgende Struktur beschreibt den Verb-Kontrollblock (VCB), der vom MC_RECEIVE_AND_POST-Verb verwendet wird.
Syntax
struct mc_receive_and_post {
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 reserv4;
unsigned char rts_rcvd;
unsigned char reserv5;
unsigned short max_len;
unsigned short dlen;
unsigned char FAR * dptr;
unsigned char FAR * sema;
unsigned char reserv6;
};
Member
opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs an, AP_M_RECEIVE_AND_POST.
opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_MAPPED_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 vonRECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
conv_id
Angegebener Parameter. Stellt den Unterhaltungsbezeichner bereit. Der Wert dieses Parameters wird von MC_ALLOCATE im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
what_rcvd
Zurückgegebener Parameter. Gibt an, ob Daten oder Unterhaltungen status empfangen wurden.
AP_CONFIRM_DEALLOCATE gibt an, dass der Partner-TP MC_DEALLOCATE ausgestellt hat, wobei dealloc_type auf AP_SYNC_LEVEL festgelegt ist. Die von MC_ALLOCATE festgelegte Synchronisierungsebene der Unterhaltung ist AP_CONFIRM_SYNC_LEVEL. Beim Empfang dieses Werts gibt der lokale TP normalerweise MC_CONFIRMED aus.
AP_CONFIRM_SEND gibt an, dass der Partner-TP MC_PREPARE_TO_RECEIVE ausgestellt hat, wobei ptr_type auf AP_SYNC_LEVEL festgelegt ist. Die von MC_ALLOCATE festgelegte Synchronisierungsebene der Unterhaltung ist AP_CONFIRM_SYNC_LEVEL. Beim Empfang dieses Werts gibt der lokale TP normalerweise MC_CONFIRMED aus und beginnt mit dem Senden von Daten.
AP_CONFIRM_WHAT_RECEIVED gibt an, dass der Partner tp MC_CONFIRM ausgestellt hat. Beim Empfang dieses Werts gibt der lokale TP normalerweise MC_CONFIRMED aus.
AP_DATA_COMPLETE gibt für MC_RECEIVE_AND_POST an, dass der lokale TP einen vollständigen Datensatz oder den letzten Teil eines Datensatzes erhalten hat. Nach Dem Empfang dieses Werts gibt der lokale TP normalerweise MC_RECEIVE_AND_POST neu aus oder gibt ein anderes Empfangsverb aus. Wenn der Partner-TP weitere Daten gesendet hat, beginnt der lokale TP, eine neue Dateneinheit zu empfangen. Andernfalls untersucht der lokale TP status Informationen.
Wenn primary_rc AP_OK enthält und what_rcvd AP_SEND, AP_CONFIRM_SEND, AP_CONFIRM_DEALLOCATE oder AP_CONFIRM_WHAT_RECEIVED enthält, finden Sie in der Beschreibung des Werts (in diesem Abschnitt) die nächste Aktion, die der lokale TP normalerweise ausführt.
Wenn primary_rc AP_DEALLOC_NORMAL enthält, wurde die Konversation als Antwort auf die vom Partner TP ausgestellte MC_DEALLOCATE zugeordnet.
AP_DATA_INCOMPLETE gibt für MC_RECEIVE_AND_POST 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). Nach Dem Empfang dieses Werts gibt der lokale TP normalerweise MC_RECEIVE_AND_POST neu aus (oder gibt ein anderes Empfangsverb aus), um den nächsten Teil des Datensatzes zu empfangen.
AP_NONE gibt an, dass der TP keine Daten oder Konversationsindikatoren status empfangen hat.
AP_SEND gibt für den Partner-TP an, dass die Unterhaltung 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 MC_SEND_DATA , um mit dem Senden von Daten zu beginnen.
rtn_status
Angegebener Parameter. Gibt an, ob daten- und konversations- status Indikatoren innerhalb eines API-Aufrufs zurückgegeben werden sollen.AP_NO gibt an, dass Indikatoren einzeln für separate Aufrufe 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 aufzunehmen, die dem status Indikator vorangestellt sind.
Die Daten sind der letzte Datensatz vor dem status Indikators.
rts_rcvd
Zurückgegebener Parameter. Gibt an, ob der Partner-TP MC_REQUEST_TO_SEND ausgestellt hat.AP_YES gibt an, dass der Partner-TP MC_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 MC_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.Der Wert darf die Länge des Puffers, der die empfangenen Daten enthält, nicht überschreiten. Der Offset von dptr plus der Wert von max_len darf die Größe des Datensegments nicht überschreiten.
dlen
Zurückgegebener Parameter. Gibt die Anzahl der empfangenen Datenbytes an. Die Daten werden in dem von dptr angegebenen Puffer gespeichert. Eine Länge von 0 gibt an, dass keine Daten empfangen wurden.dptr
Angegebener Parameter. Stellt die Adresse des Puffers bereit, um die von der lokalen LU empfangenen Daten zu enthalten.Für das Microsoft 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.
Für das Betriebssystem/2 muss sich der Datenpuffer in einem unbenannten, freigegebenen Segment befinden, das von der DosAllocSeg-Funktion mit Flags gleich 1 zugeordnet wird. Der Datenpuffer muss vollständig auf das Datensegment passen.
Sema
Angegebener Parameter. Stellt die Adresse des Semaphors bereit, das APPC löschen soll, wenn der asynchrone Empfangsvorgang abgeschlossen ist. Der sema-Parameter ist ein Ereignishandle, das durch Aufrufen der Funktion CreateEvent oder OpenEvent Win32 abgerufen wird.
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_DEALLOC_NORMAL
Primärer Rückgabecode; der Partner-TP, der MC_DEALLOCATE mit dealloc_type auf AP_FLUSH oder AP_SYNC_LEVEL mit der als AP_NONE angegebenen Synchronisierungsebene der Unterhaltung ausgestellt hat.
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_INVALID_SEMAPHORE_HANDLE
Sekundärer Rückgabecode; die Adresse des RAM-Semaphor- oder System-Semaphorhandles war ungültig.
Hinweis
APPC kann nicht alle ungültigen Semaphorhandles abfangen. Wenn das TP ein ungültiges RAM-Semaphorhandle übergibt, führt dies zu einer Schutzverletzung.
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_POST_BAD_STATE
Sekundärer Rückgabecode; die Unterhaltung befand sich nicht im Status "RECEIVE" oder "SEND", als das TP dieses Verb ausgegeben hat.
AP_RCV_AND_POST_NOT_LL_BDY
Sekundärer Rückgabecode; die Unterhaltung befand sich im SEND-Zustand; der TP hat begonnen, aber nicht mit dem Senden eines logischen Datensatzes abgeschlossen.
AP_CANCELED
Primärer Rückgabecode; der lokale TP hat eines der folgenden Verben ausgegeben, das MC_RECEIVE_AND_POST abgebrochen hat:
MC_DEALLOCATE , wobei dealloc_type auf AP_ABEND festgelegt ist
Durch das Ausgeben eines dieser Verben wird das Semaphor gelöscht.
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 MC_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-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_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, der MC_SEND_ERROR ausgestellt hat, 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 MC_SEND_ERROR ausgestellt. Gesendete, aber noch nicht empfangene Daten werden gelöscht.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
Primärer Rückgabecode; die Konversation wurde aus einem der folgenden Gründe behandelt:Der Partner-TP, der MC_DEALLOCATE ausgestellt hat , wobei dealloc_type auf AP_ABEND festgelegt ist.
Der Partner-TP ist auf ein ABEND-Ereignis gestoßen, sodass die Partner-LU eine MC_DEALLOCATE-Anforderung sendet.
Hinweise
Der lokale TP empfängt Daten über den folgenden Prozess:
Das lokale TP gibt ein Empfangsverb aus, bis er eine vollständige Dateneinheit erhält. Die empfangenen Daten sind ein Datensatz.
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 MC_RECEIVE_AND_POST, MC_RECEIVE_AND_WAIT und MC_RECEIVE_IMMEDIATE.
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.
Das folgende Verfahren zeigt Aufgaben, die vom lokalen TP unter Verwendung von MC_RECEIVE_AND_POST ausgeführt werden.
So verwenden Sie MC_RECEIVE_AND_POST
Für das Windows-Betriebssystem ruft der TP die WinAsyncAPPC-Nachrichtennummer ab, indem die RegisterWindowMessage-API aufgerufen oder ein Semaphor zugewiesen wird. Das Feld sema sollte auf NULL festgelegt werden, wenn die Anwendung erwartet, über den Windows-Nachrichtenmechanismus benachrichtigt zu werden.
APPC sendet die Windows-Nachricht oder löscht den Semaphor, wenn der lokale TP den Empfang von Daten beendet hat.
Für das Betriebssystem/2 verwendet der TP die DosSemSet-Funktion , um den Semaphor festzulegen, auf den von sema verwiesen wird.
Der Semaphor bleibt festgelegt, während das lokale TP Daten asynchron empfängt. APPC löscht den Semaphor, wenn der lokale TP den Empfang von Daten beendet hat.
Der TP gibt MC_RECEIVE_AND_POST aus.
Der TP überprüft den Wert von primary_rc.
Wenn primary_rc AP_OK ist, empfängt der Empfangspuffer (auf den dptr verweist) asynchron Daten vom Partner-TP. Beim asynchronen Empfangen von Daten kann der lokale TP Folgendes ausführen:
Führen Sie Aufgaben aus, die sich nicht auf diese Unterhaltung beziehen.
Sammeln Sie Informationen zu dieser Unterhaltung, indem Sie GET_TYPE, MC_GET_ATTRIBUTES oder MC_TEST_RTS ausgeben.
Kündigen Sie MC_RECEIVE_AND_POST vorzeitig, indem Sie MC_DEALLOCATE mit dealloc_type AP_ABEND ausstellen. MC_SEND_ERROR; oder TP_ENDED.
Wenn primary_rc jedoch nicht AP_OK ist, ist MC_RECEIVE_AND_POST fehlgeschlagen. In diesem Fall führt der lokale TP die nächsten beiden Aufgaben nicht aus.
Für das Windows-Betriebssystem gibt APPC die WinAsyncAPPC-Windows-Nachricht aus, wenn der TP den asynchronen Empfang von Daten beendet hat, oder löscht den Semaphor.
Für das Betriebssystem/2 verwendet der TP die DosSemWait-Funktion , um zu warten, bis APPC den Semaphor entfernt, auf den Semaphor verweist, auf den Semaphor verweist. Wenn der TP den asynchronen Empfang von Daten beendet hat, löscht APPC den Semaphor. Um zu verhindern, dass der lokale TP wartet, lassen Sie ihn den Semaphor testen (Aufrufen von DosSemWait mit Timeout auf null), bis APPC den Semaphor löscht.
Der TP überprüft den neuen Wert von primary_rc.
Wenn primary_rc AP_OK ist, kann der lokale TP die anderen zurückgegebenen Parameter untersuchen und die asynchron empfangenen Daten bearbeiten.
Wenn primary_rc nicht AP_OK ist, sind nur secondary_rc und rts_rcvd (Gesendete Anforderung) sinnvoll.
Unterhaltungszustandseffekte
Die Unterhaltung muss sich im RECEIVE- oder SEND-Zustand befinden, wenn das TP dieses Verb ausgibt.
Die Ausgabe MC_RECEIVE_AND_POST , während sich die Unterhaltung im SEND-Zustand befindet, hat die folgenden Auswirkungen:
Die lokale LU sendet die Informationen in ihrem Sendepuffer und einen SEND-Indikator an den Partner-TP.
Die Unterhaltung wechselt in PENDING_POST Zustand. der lokale TP ist bereit, Informationen vom Partner-TP asynchron zu empfangen.
Die Konversation ändert sich zweimal:
Wenn primary_rc AP_OK enthält, wechselt die Konversation nach der ersten Rückgabe des Verbs in PENDING_POST Zustand.
Nach Abschluss des Verbs ändert sich der Zustand abhängig vom Wert des folgenden:
Der parameter primary_rc
Der what_rcvd-Parameter , wenn primary_rc AP_OK
Die folgende Tabelle zeigt den neuen Zustand, der jedem Wert von what_rcvd zugeordnet ist, wenn 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 | SEND |
AP_DATA_COMPLETE_SEND | SEND_PENDING |
Die folgende Tabelle zeigt den neuen Zustand, der jedem Wert von primary_rc zugeordnet ist, der nicht AP_OK.
primary_rc | Neuer Zustand |
---|---|
AP_CANCELED | Keine Änderung |
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 |
AP_PROG_ERROR_TRUNC | RECEIVE |
AP_SVC_ERROR_TRUNC | RECEIVE |