Ändern des Konversationsstatus
Eine Änderung des Unterhaltungszustands kann sich aus folgendem ergeben:
Ein Verb, das vom lokalen TP ausgegeben wird.
Ein vom Partner-TP ausgegebenes Verb.
Eine Fehlerbedingung.
Das folgende Beispiel zeigt, wie APPC-Verben den Zustand der Unterhaltung von SEND in RECEIVE und von RECEIVE in SEND ändern können.
Hinweis
Jeder TP kann Daten senden oder empfangen, unabhängig davon, ob es sich um den aufrufenden TP (der TP, der die Konversation gestartet hat) oder um den aufrufbaren TP (der TP, der auf eine Anforderung zum Starten einer Konversation reagiert hat).
Dieses Beispiel zeigt, wie APPC-Verben den Unterhaltungszustand ändern können. In dieser Tabelle wird jeder Konversationszustand fett formatiert und vor den APPC-Verben angezeigt, die in diesem Zustand verwendet werden.
Ausgestellt vom aufrufenden TP | Ausgestellt vom aufrufbaren TP |
---|---|
TP_STARTED | |
Unterhaltungszustand: ZURÜCKSETZEN | |
MC_ALLOCATE | |
(synclevel=AP_CONFIRM_SYNC_LEVL) | |
Unterhaltungszustand: SEND | |
MC_SEND_DATA | |
MC_PREPARE_TO_RECEIVE | |
(ptr_type=AP_SYNC_LEVEL) | |
Unterhaltungszustand: ZURÜCKSETZEN | |
RECEIVE_ALLOCATE | |
Unterhaltungszustand: RECEIVE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_SEND) | |
Unterhaltungszustand: CONFIRM_SEND | |
MC_CONFIRMED | |
Unterhaltungszustand: SEND | |
MC_SEND_DATA | |
MC_CONFIRM | |
Unterhaltungszustand: RECEIVE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_WHAT_RECEIVED) | |
Unterhaltungszustand: BESTÄTIGEN | |
MC_REQUEST_TO_SEND | |
MC_CONFIRMED | |
(rts_rcvd=AP_YES) | |
MC_PREPARE_TO_RECEIVE | |
(ptr_type=AP_SYNC_LEVEL) | |
Unterhaltungszustand: RECEIVE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_SEND) | |
Unterhaltungszustand: CONFIRM_SEND | |
MC_CONFIRMED | |
Unterhaltungszustand: SEND | |
MC_SEND_DATA | |
MC_DEALLOCATE | |
(dealloc_type=AP_SYNC_LEVEL) | |
Unterhaltungszustand: RECEIVE | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(what_rcvd=AP_CONFIRM_DEALLOCATE) | |
Unterhaltungszustand: CONFIRM_DEALLOCATE | |
MC_CONFIRMED | |
Unterhaltungszustand: ZURÜCKSETZEN | Unterhaltungszustand: ZURÜCKSETZEN |
TP_ENDED | TP_ENDED |
Anfangszustände
Bevor die Unterhaltung zugewiesen wird, ist der Status für beide TPs RESET.
Im Beispiel lautet der Anfangszustand nach der Zuweisung der Konversation SEND für den aufrufenden TP und RECEIVE für den aufrufbaren TP.
Ändern des EMPFANGSzustands
MC_PREPARE_TO_RECEIVE ermöglicht es einem TP, die Unterhaltung von SEND in RECEIVE zu ändern. Dieses Verb:
Leert den Sendepuffer der lokalen LU.
Sendet den AP_CONFIRM_SEND-Indikator über den what_rcvd-Parameter eines Empfangsverbens an den Partner-TP. Dieser Indikator teilt dem Partner-TP mit, dass eine MC_CONFIRMED Antwort erwartet wird, bevor der Partner-TP mit dem Senden von Daten beginnen kann.
Die Bestätigungsverarbeitung wird ausgeführt, wenn die folgenden Bedingungen erfüllt sind:
Der parameter ptr_type ist auf AP_SYNC_LEVEL festgelegt.
Die Synchronisierungsebene der Unterhaltung ist auf AP_CONFIRM_SYNC_LEVEL festgelegt.
Weitere Informationen zur Bestätigungsverarbeitung finden Sie unter Bestätigungsverarbeitung.
Hinweis
Wenn Sie MC_RECEIVE_AND_WAIT ausgeben, während sich die Unterhaltung im SEND-Zustand befindet, wird der Sendepuffer der LU geleert und der Unterhaltungszustand in RECEIVE geändert. Das Ändern des Unterhaltungszustands auf diese Weise unterstützt keine Bestätigungsverarbeitung.
Ändern des SEND-Zustands
MC_REQUEST_TO_SEND informiert den Partner-TP (für den sich die Konversation im SEND-Zustand befindet), dass der lokale TP (für den sich die Unterhaltung im RECEIVE-Zustand befindet) Daten senden möchte. Diese Anforderung wird dem Partner-TP über den rts_rcvd-Parametervon MC_CONFIRM mitgeteilt. (Der parameter rts_rcvd wird auch an MC_SEND_DATA und andere Verben zurückgegeben.)
Wenn der Partner-TP MC_PREPARE_TO_RECEIVE ausgibt, ändert sich der Unterhaltungszustand für den Partner-TP in RECEIVE, sodass der lokale TP Daten senden kann.
Hinweis
Die Ausgabe MC_REQUEST_TO_SEND ändert den Zustand der Unterhaltung nicht. Beim Empfang einer Anforderung zum Senden muss der Partner-TP den Unterhaltungszustand nicht ändern. Die Anforderung kann ignoriert werden.