確認処理のイベントのシーケンスは次のとおりです。
同期レベルを確立します。
確認要求を送信します。
データと確認要求を受け取ります。
確認要求に応答します。
会話の割り当てを解除します。
確認処理を使用して、トランザクション プログラム (TP) は、データを含む確認要求を送信します。 パートナー TP は、データの受信を確認するか、エラーが発生したことを示します。 2 つの TP が確認要求と応答を交換するたびに同期されます。
Note
このセクションの例ではこれを示していませんが、TP が呼び出し元 TP か呼び出し可能 TP かに関係なく、どの TP でもデータを送受信できます。
次の表は、確認処理に関連する手順を示しています。
手順 | 呼び出し元 TP によって発行される | 呼び出し可能 TP によって発行される |
---|---|---|
1 | Initialize_Conversation | |
2 | Set_Sync_Level (sync_level=CM_CONFIRM) | |
3 | 割り当てる | |
4 | Send_Data | |
5 | Confirm | |
6 | Accept_Conversation | |
7 | Receive (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呼び出しでは、会話の既定の同期レベルをオーバーライドできます。 同期レベルは、会話の特性の 1 つです。 可能な同期レベルは 2 つあります。
CM_CONFIRM、TP はデータの受信確認を要求し、そのような要求に応答できます。
CM_NONE、確認処理が実行されない既定値です。
Initialize_Conversation呼び出しは、会話の既定の特性を設定します。 Set_で始まる呼び出しがいくつかあります。 これらの呼び出しを使用すると、既定の会話特性をオーバーライドできます。
確認要求の送信
Confirm 呼び出しを発行すると、次の 2 つの効果があります。
ローカル LU の送信バッファーをフラッシュし、バッファーに含まれるすべてのデータをパートナー TP に送信します。
パートナー TP が Receive 呼び出しの status_received パラメーターを介して受信する確認要求を送信 します 。
Confirm を発行すると、ローカル TP はパートナー TP からの確認を待機します。
確認要求の受信
Receive 呼び出しの status_received パラメーターは、ローカル TP に必要な今後のアクションを示します。
この例では、最初の Receive に status_received CM_CONFIRM_RECEIVEDがあり、パートナー TP を続行する前に確認が必要であることを示しています。
確認要求への応答
パートナー TP は、 確認済 みの呼び出しを発行して、データの受信を確認します。 これにより、ローカル TP が処理を再開できます。
会話の割り当てを解除する
会話の同期レベルが CM_CONFIRM に設定されているため、 割り当て解除は 、バッファーからフラッシュされたデータを含む確認要求を送信します。
2 番目の 受信 呼び出しでは、 status_received がCM_CONFIRM_DEALLOC_RECEIVEDされ、会話を割り当て解除する前に、 確認された 呼び出しによって生成された確認がパートナー TP に必要であることを示します。