Freigeben über


Ändern von Gesprächszuständen (CPI-C)

Eine Änderung des Unterhaltungszustands kann durch Folgendes ausgelöst werden:

  • Ein Aufruf des lokalen Transaktionsprogramms (TP).

  • Ein Anruf des Partner-TP.

  • Ein Fehlerzustand.

    Das folgende Beispiel zeigt, wie Allgemeine Programmierschnittstelle für Kommunikation (CPI-C) Anrufe den Status der Unterhaltung von SEND in RECEIVE und von RECEIVE zu SEND ändern können.

Hinweis

Jeder TP kann Daten senden oder empfangen, unabhängig davon, ob es sich um das aufrufende TP (das TP, das die Unterhaltung gestartet hat) oder das aufgerufene TP (das TP, das auf eine Anforderung zum Starten einer Unterhaltung geantwortet hat) handelt.

In diesem Beispiel wird gezeigt, wie CPI-C Anrufe den Gesprächszustand ändern können. In dieser Tabelle wird jeder Gesprächsstatus fett formatiert angezeigt und steht vor den CPI-C-Aufrufen, die in diesem Zustand verwendet werden.

Ausgestellt vom aufrufenden TP Ausgestellt vom aufrufbaren TP
Unterhaltungszustand: ZURÜCKSETZEN
Konversation_initialisieren
Unterhaltungszustand: INITIALISIERUNG
Set_Sync_Level
(sync_level=CM_CONFIRM)
Zuteilen
Unterhaltungsstatus: Senden
Daten_senden
Vorbereitung_auf_Empfang Unterhaltungszustand: ZURÜCKSETZEN
Gespräch annehmen
Unterhaltungsstatus: EMPFANGEN
(status_received= CM_CONFIRM_SEND_RECEIVED)
Gesprächszustand: BESTÄTIGEN_SENDE
Bestätigen
Unterhaltungsstatus: Senden
(return_code=CM_OK) Send_Data
Unterhaltungsstatus: EMPFANGEN Bestätigen
(status_received= CM_CONFIRM_RECEIVED)
Unterhaltungsstatus: BESTÄTIGUNG
Anforderung_Zu_Senden
Bestätigt
Unterhaltungsstatus: EMPFANGEN (return_code=CM_OK)
(Anfrage_zum_Senden_empfangen= CM_REQ_TO_SEND_RECEIVED)
Bereit_zum_Empfangen
Empfangen
(status_received= CM_CONFIRM_SEND_RECEIVED)
Gesprächszustand: BESTÄTIGEN_SENDE
Bestätigt
Unterhaltungsstatus: Senden (Rückgabecode=CM_OK)
Unterhaltungsstatus: EMPFANGEN
Daten_senden
Freigeben
Empfangen
(status_received= CM_CONFIRM_DEALLOC_RECEIVED)
Konversationszustand:
CONFIRM_DEALLOCATE
Bestätigt
(Rückgabecode=CM_OK) Unterhaltungszustand: ZURÜCKSETZEN
Unterhaltungszustand: ZURÜCKSETZEN

Anfangszustände

Bevor das Gespräch zugewiesen wird, wird der Zustand für beide TPs zurückgesetzt.

Im Beispiel lautet nach der Zuteilung der Sitzung der anfängliche Zustand "SEND" für den aufrufenden TP und "RECEIVE" für den aufrufbaren TP.

Wechseln zum Empfangsmodus

Der Prepare_To_Receive Anruf ermöglicht es einem TP, die Sitzung vom Zustand "SENDEN" in den Zustand "EMPFANGEN" zu ändern. Dieser Aufruf:

  • Löscht den Sendepuffer der lokalen LU.

  • Sendet einen CM_CONFIRM_SEND Indikator über den parameter status_received eines Empfangsaufrufs an den Partner TP, da die Synchronisierungsebene auf CM_CONFIRM festgelegt ist. Dieser Indikator teilt dem Partner-TP mit, dass eine bestätigte Antwort erwartet wird, bevor der Partner-TP mit dem Senden von Daten beginnen kann.

In den SEND-Zustand wechseln

Der Request_To_Send Anruf informiert den Partner-TP (für den sich die Unterhaltung im SEND-Zustand befindet), dass der lokale TP (für den sich die Unterhaltung im EMPFANGSzustand befindet) Daten senden möchte. Diese Anforderung wird dem Partner-TP über den Parameter request_to_send_received des Confirm-Aufrufs mitgeteilt. (Der parameter request_to_send_received wird auch an Send_Data und andere Aufrufe zurückgegeben.)

Wenn der Partner TP den Prepare_To_Receive Anruf ausgibt, ändert sich der Unterhaltungsstatus in RECEIVE für den Partner-TP, sodass der lokale TP Daten senden kann.

Von Bedeutung

Das Ausgeben Request_To_Send ändert nicht den Status der Unterhaltung. Nach dem Erhalt einer Anforderung zum Senden ist der Partner-TP nicht verpflichtet, den Gesprächsstatus zu ändern. Sie kann die Anforderung ignorieren.