Freigeben über


Ändern des Konversationsstatus (CPI-C)

Eine Änderung des Konversationszustands kann sich aus folgendem ergeben:

  • Ein Aufruf, der vom lokalen Transaktionsprogramm (TP) ausgeführt wird.

  • Ein Aufruf, der vom Partner tp ausgeführt wird.

  • Eine Fehlerbedingung.

    Das folgende Beispiel zeigt, wie CPI-C-Aufrufe (Common Programming Interface for Communications) den Zustand der Unterhaltung von SEND in RECEIVE und von RECEIVE in SEND ändern können.

Hinweis

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

Dieses Beispiel zeigt, wie CPI-C-Aufrufe den Unterhaltungszustand ändern können. In dieser Tabelle wird jeder Konversationszustand fett formatiert angezeigt und den CPI-C-Aufrufen vorangestellt, die in diesem Zustand verwendet werden.

Ausgestellt vom aufrufenden TP Ausgestellt vom bestimmbaren TP
Konversationszustand: ZURÜCKSETZEN
Initialize_Conversation
Unterhaltungszustand: INITIALIZE
Set_Sync_Level
(sync_level=CM_CONFIRM)
Zuordnen
Unterhaltungszustand: SEND
Send_Data
Prepare_to_Receive Konversationszustand: ZURÜCKSETZEN
Accept_Conversation
Unterhaltungszustand: RECEIVE
(status_received= CM_CONFIRM_SEND_RECEIVED)
Unterhaltungszustand: CONFIRM_SEND
Confirm
Unterhaltungszustand: SEND
(return_code=CM_OK) Send_Data
Unterhaltungszustand: RECEIVE Confirm
(status_received= CM_CONFIRM_RECEIVED)
Konversationszustand: CONFIRM
Request_To_Send
Bestätigt
Unterhaltungszustand: RECEIVE (return_code=CM_OK)
(request_to_send_received= CM_REQ_TO_SEND_RECEIVED)
Prepare_To_Receive
Empfangen
(status_received= CM_CONFIRM_SEND_RECEIVED)
Unterhaltungszustand: CONFIRM_SEND
Bestätigt
Unterhaltungszustand: SEND (return_code=CM_OK)
Unterhaltungszustand: RECEIVE
Send_Data
Zuordnung aufheben
Empfangen
(status_received= CM_CONFIRM_DEALLOC_RECEIVED)
Unterhaltungszustand:
CONFIRM_DEALLOCATE
Bestätigt
(return_code=CM_OK) Konversationszustand: ZURÜCKSETZEN
Konversationszustand: ZURÜCKSETZEN

Anfangszustände

Bevor die Konversation zugeordnet wird, lautet der Zustand für beide TPs ZURÜCKSETZEN.

Im Beispiel lautet der Anfangszustand nach der Zuweisung der Konversation SEND für das aufrufende TP und RECEIVE für das aufrufende TP.

Ändern des Empfangszustands

Der Prepare_To_Receive-Aufruf ermöglicht es einem TP, die Unterhaltung von SEND in RECEIVE-Status zu ändern. Dieser Aufruf:

  • Leert den Sendepuffer der lokalen LU.

  • Sendet einen CM_CONFIRM_SEND-Indikator über den parameter status_received eines Empfangsaufrufs an das 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.

Ändern des SEND-Zustands

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 übermittelt. (Der parameter request_to_send_received wird auch an Send_Data und andere Aufrufe zurückgegeben.)

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

Wichtig

Das Ausgeben von Request_To_Send ändert den Zustand der Unterhaltung nicht. Beim Empfang einer Anforderung zum Senden muss der Partner-TP den Konversationszustand nicht ändern. Die Anforderung kann ignoriert werden.