MQBEGIN命令 − ローカルトランザクションの開始
機能
MQBEGIN命令で,キューマネジャによって管理されるトランザクションを開始します。
形式
C言語の場合
MQBEGIN (MQHCONN Hconn, MQBO *BeginOptions, MQLONG *CompCode, MQLONG *CompReason)
COBOL言語の場合
CALL 'MQBEGIN' USING HCONN, BEGINOPTIONS, COMPCODE, REASON.
引数
● Hconn(MQHCONN型) − input
コネクションハンドルです。
キューマネジャへの接続を示すハンドルです。MQCONN命令の戻り値を指定してください。
● BeginOptions(MQBO構造体) − input
MQBEGIN命令の動作を制御するオプションです。
詳細については,「MQBO構造体」を参照してください。
BeginOptionsは,予約済みパラメタです。C言語で作成されたプログラムでは,MQBO構造体のアドレスを指定しないで,NULLアドレスを指定できます。
● CompCode(MQLONG型) − output
完了コードです。次のどちらかが返されます。
MQCC_OK:成功
MQCC_FAILED:失敗
● Reason(MQLONG型) − output
理由コードです。
理由コード |
意味 |
---|---|
MQRC_NONE |
理由コードはありません。 |
理由コード |
意味 |
---|---|
MQRC_BO_ERROR |
開始オプション構造体が無効です。 |
MQRC_CALL_IN_PROGRESS |
前の呼び出しが完了する前に,再度MQI呼び出しが実行されました。 |
MQRC_CONNECTION_BROKEN |
キューマネジャとの接続が失われました。 |
MQRC_ENVIRONMENT_ERROR |
呼び出しが環境内で有効ではありません。 |
MQRC_HCONN_ERROR |
コネクションハンドルが無効です。 |
MQRC_OPTIONS_ERROR |
オプションが有効でないか,整合性がありません。 |
MQRC_Q_MGR_STOPPING |
キューマネジャが終了処理中です。 |
MQRC_RESOURCE_PROBLEM |
システム資源が不足しています。 |
MQRC_STORAGE_NOT_AVAILABLE |
記憶容量が不足しています。 |
MQRC_UNEXPECTED_ERROR |
予期しないエラーが発生しました。 |
MQRC_UOW_IN_PROGRESS |
トランザクションが開始済みです。 |
「理由コード」の詳細については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
注意事項
-
MQBEGIN命令は,キューマネジャで管理されるトランザクションの開始に使用します。
キューマネジャは,次のタイプのトランザクションをサポートします。
-
参加プログラムがキューマネジャだけのトランザクションであり,キューマネジャがTMとして機能します。
-
ローカルトランザクションを開始するには,トランザクション内の最初のMQPUT,MQPUT1,またはMQGET命令にMQPMO_SYNCPOINTまたはMQGMO_SYNCPOINTオプションを指定してください。ローカルトランザクションを開始するのに,アプリケーションがMQBEGIN命令を呼び出す必要はありません。
-
ローカルトランザクションをコミットまたはロールバックするには,MQCMITまたはMQBACK命令を使用する必要があります。アプリケーションでどちらの命令も呼び出さない場合,このトランザクションは,MQDISC命令を呼び出すとコミットされますが,MQDISC命令を呼び出さないで終了するとロールバックされます。
-
-
アプリケーションが一度に参加プログラムとしてかかわれるトランザクションは,一つだけです。アプリケーションでMQBEGIN命令を呼び出す場合,そのアプリケーション用のトランザクションがすでに存在していると,その命令は失敗し,理由コードMQRC_UOW_IN_PROGRESSが戻ります。