dsmEndTxnEx

dsmEndTxnEx 関数呼び出し は、dsmGroupHandler 関数呼び出しとともに使用する グループ・リーダー・オブジェクト ID 情報を提供します。 これは dsmEndTxn 関数 呼び出しの拡張です。

構文

dsInt16_t dsmEndTxnEx (dsmEndTxnExIn_t *dsmEndTxnExInP 
                       dsmEndTxnExOut_t *dsmEndTxnExOutP); 

パラメーター

dsmEndTxnExIn_t *dsmEndTxnExInP (I)
この構造には、以下のパラメーターが含まれます。
dsmHandle
セッションを識別し、それを後続の IBM® Storage Protect 呼び出しに関連付けるハンドル。
dsUint8_t vote (I)
アプリケーション・クライアントが、直前の dsmBeginTxn 呼び出しとこの呼び出しの間に行われたすべてのアクションをコミットするかどうかを示します。 使用可能な値は、次のとおりです。
   DSM_VOTE_COMMIT     /* commit current transaction    */
   DSM_VOTE_ABORT      /* roll back current transaction */
アプリケーションでトランザクションを停止する理由を検出した場合にのみ 、DSM_VOTE_ABORT を使用してください。
dsmEndTxnExOut_t *dsmEndTxnExOutP (O)
この構造には、以下のパラメーターが含まれます。
dsUint16_t *reason (O)
dsmEndTxnEx への呼び出しがエラーで終了するか、vote の値が一致しない場合、このパラメーターには vote が失敗した理由を示す理由コードが入ります。
ヒント: 呼び出しの戻りコードはゼロの場合があり、理由コードはゼロ以外の場合があります。 したがってアプリケーション・クライアントは、 戻りコードとその理由の両方について (if (rc || reason)) を使い必ずエラーの検査をしないと、 正常終了を想定することはできません。

アプリケーションが DSM_VOTE_ABORT の vote を指定すると、理由コードは DSM_RS_ABORT_BY_CLIENT (3) になります。 考えられる理由コードのリストについては、 API 戻りコード・ソース・ファイル dsmrc.h を参照してください。 戻りコードの リストの 1 から 50 は、理由コード用に予約されています。 サーバーが トランザクションを終了した場合、戻りコードは DSM_RC_CHECK_REASON_CODE になります。 この場合、理由値は、打ち切りの原因についてさらに 多くの情報を含んでいます。

groupLeaderObjId
dsmGroupHandler 呼び出しで DSM_ACTION_OPEN フラグが使用される場合に返されるグループ・リーダー・オブジェクト ID。

戻りコード

戻りコード番号を括弧 ( ) 内に示してあります。

表 1. dsmEndTxnEx の戻りコード
戻りコード 説明
DSM_RC_INVALID_VOTE (2011) vote に指定された値が無効。
DSM_RC_CHECK_REASON_CODE (2302) トランザクションが打ち切られた。 理由フィールドをチェックしてください。
DSM_RC_ABORT_STGPOOL_COPY_CONT_NO (241) コピー・ストレージ・プールの 1 つへの書き込みが失敗し、 IBM Storage Protect ストレージ・プール・オプション COPYCONTINUE が NO に設定されました。 トランザクションは終了します。
DSM_RC_ABORT_RETRY_SINGLE_TXN (242) 同時書き込み操作中に、トランザクションに含まれるオブジェクトが、目的のコピー・ストレージ・プールと異なるコピー・ストレージ・プールを持つ宛先に送られました。 現在のトランザクションを終了し、各オブジェクトをそれぞれ別個のトランザクションで再送してください。