Set_Deallocate_Type (CPI-C)
Set_Deallocate_Type呼び出し (関数名 cmsdt) は、会話の割り当てを解除する方法を指定します。
構文
CM_ENTRY Set_Deallocate_Type(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *deallocate_type,
CM_INT32 FAR *return_code
);
パラメーター
conversation_ID
指定されたパラメーター。 会話の識別子を指定します。 このパラメーターの値は 、Initialize_Conversation または Accept_Conversationによって返されました。
deallocate_type
指定されたパラメーター。 割り当て解除を実行する方法を指定します。 次のいずれかの値になります。
CM_DEALLOCATE_ABEND
会話の割り当てを異常かつ無条件に解除することを示します。 プログラムは、トランザクションの正常な完了を妨げるエラーが発生したときにCM_DEALLOCATE_ABENDを指定する必要があります。
会話が SEND 状態の場合、CPI-C は、会話の割り当てを解除する前に、ローカル論理ユニット (LU) の送信バッファーの内容をパートナー プログラムに送信します。 会話が RECEIVE 状態の場合は、受信データを消去できます。 SEND 状態の基本的な会話では、論理レコードの切り捨てが発生する可能性があります。
CM_DEALLOCATE_CONFIRM
ローカル LU 送信バッファーの内容と、割り当て解除を確認するための要求をパートナー プログラムに送信するために使用されます。
この割り当て解除の確認要求は、 割り当て解除 または送信の種類 が CM_SEND_AND_DEALLOCATE に設定されたSend_Dataによって送信されます。 パートナー プログラムが確認済みを発行し、確認要求に応答すると、会話は通常どおりに割り当て解除 されます。
CM_DEALLOCATE_FLUSH
ローカル LU の内容を送信するために使用され、通常どおりに会話の割り当てを解除する前に、パートナー プログラムにバッファーを送信します。
CM_DEALLOCATE_SYNC_LEVEL
会話の同期レベルを使用して、会話の割り当てを解除する方法を決定します。 既定の同期レベルは 、Initialize_Conversation によって確立され、 Set_Sync_Levelによってオーバーライドできます。
会話の同期レベルがCM_NONEの場合、既定では、ローカル LU 送信バッファーの内容がパートナー プログラムに送信され、会話は通常どおりに割り当て解除されます。
会話の同期レベルがCM_CONFIRM場合、ローカル LU の内容はバッファーを送信し、割り当て解除を確認する要求がパートナー プログラムに送信されます。 この割り当て解除の確認要求は、 割り当て解除 または送信の種類 が CM_SEND_AND_DEALLOCATE に設定されたSend_Dataによって送信されます。 パートナー プログラムが確認済みの呼び出しを発行し、 確認 要求に応答すると、会話の割り当てが通常解除されます。
return_code
この呼び出しから返されたコード。 有効なリターン コードについては、このトピックの後半で説明します。
リターン コード
CM_OK
主なリターン コード。呼び出しが正常に実行されました。
CM_PROGRAM_PARAMETER_CHECK
主なリターン コード。次のいずれかが発生しました。
conversation_ID または deallocate_type で指定された値が無効です。
deallocate_type パラメーターはCM_DEALLOCATE_CONFIRMを指定しますが、会話の同期レベルは CM_NONE に設定されます。
変数のアドレスが無効です。
CM_PRODUCT_SPECIFIC_ERROR
主なリターン コード。製品固有のエラーが発生し、製品エラー ログに記録されています。
State Changes (状態の変化)
会話は RESET 以外の任意の状態にすることができます。
状態の変更はありません。
注釈
この呼び出しは、Initialize_ConversationまたはAccept_Conversationによって確立された既定の割り当て解除型をオーバーライドします。 既定の割り当て解除型はCM_DEALLOCATE_SYNC_LEVELです。
この呼び出しで指定された割り当て解除命令は、 割り当て解除 が発行されたとき、または送信の種類が CM_SEND_AND_DEALLOCATE に設定され 、Send_Data が発行されたときに有効になります。
会話の同期レベル が CM_NONE または CM_CONFIRM に設定されている場合は、deallocate_typeを CM_FLUSH に設定できます。
CM_DEALLOCATE_FLUSH値は、会話の同期レベルが CM_NONE に設定されているCM_DEALLOCATE_SYNC_LEVELと機能的に同じです。
CM_DEALLOCATE_CONFIRM値は、会話の同期レベルが CM_CONFIRM に設定されているCM_DEALLOCATE_SYNC_LEVELと機能的に同じです。