確認處理的事件順序如下:
建立同步處理層級。
傳送確認要求。
接收資料和確認要求。
回應確認要求。
解除配置交談。
使用確認處理,交易程式 (TP) 傳送確認要求與資料。 合作夥伴 TP 會確認收到資料,或指出發生錯誤。 每次兩個 TP 交換確認要求和回應時,都會進行同步處理。
注意
雖然本節中的範例未顯示此問題,但不論 TP 是叫用 TP 還是可叫用 TP,任何 TP 都可以傳送或接收資料。
下表說明確認處理所涉及的步驟。
| 步驟 | 叫用 TP 所發出 | 由可叫用 TP 發行 |
|---|---|---|
| 1 | Initialize_Conversation | |
| 2 | Set_Sync_Level (sync_level=CM_CONFIRM) | |
| 3 | 分配 | |
| 4 | Send_Data | |
| 5 | 確認 | |
| 6 | Accept_Conversation | |
| 7 | 接收 (data_received= CM_COMPLETE_DATA_RECEIVED) (status_received= CM_CONFIRM_RECEIVED) | |
| 8 | 已確認 | |
| 9 | (return_code=CM_OK) | |
| 10 | Send_Data | |
| 11 | 解除配置 | |
| 12 | 接收 | |
| 13 | (status_received= CM_CONFIRM_DEALLOC_RECEIVED) | |
| 14 | 已確認 | |
| 15 | (return_code=CM_OK) |
建立同步處理層級
Set_Sync_Level呼叫可讓您覆寫交談的預設同步處理層級。 同步處理層級是交談的其中一個特性。 有兩個可能的同步處理層級:
CM_CONFIRM,TP 可以要求確認接收資料並回應這類要求。
CM_NONE,預設不會發生確認處理。
Initialize_Conversation呼叫會設定交談的預設特性。 有數個以 Set_ 開頭的呼叫。 這些呼叫可讓您覆寫預設對話特性。
傳送確認要求
發出 Confirm 呼叫有兩個效果:
它會排清本機 LU 的傳送緩衝區,並將緩衝區中包含的任何資料傳送至夥伴 TP。
它會傳送確認要求,讓合作夥伴 TP 透過接收呼叫的 status_received 參數 接收 。
發出 Confirm之後,本機 TP 會等候合作夥伴 TP 的確認。
接收確認要求
接收呼叫的status_received參數表示本機 TP 所需的任何未來動作。
在此範例中,第一個接收具有 CM_CONFIRM_RECEIVED status_received ,表示合作夥伴 TP 可以繼續之前需要確認。
回應確認要求
合作夥伴 TP 發出 已確認 的呼叫,以確認收到資料。 這會釋放本機 TP 以繼續處理。
解除配置交談
由於交談的同步處理層級設定為 CM_CONFIRM, 因此解除配置 會傳送確認要求,並將資料從緩衝區排清。
針對第二個 接收 呼叫, status_received CM_CONFIRM_DEALLOC_RECEIVED,表示合作夥伴 TP 需要確認,由 確認 的呼叫產生,才能解除配置交談。