Hitachi

OpenTP1 Version 7 メッセージキューイングアクセス機能 TP1/Message Queue Access 使用の手引


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

理由コードです。

表4‒5 CompCode引数がMQCC_OKの場合(MQBEGIN命令の場合)

理由コード

意味

MQRC_NONE

理由コードはありません。

表4‒6 CompCode引数がMQCC_FAILEDの場合(MQBEGIN命令の場合)

理由コード

意味

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 プログラム作成リファレンス」を参照してください。

注意事項

  1. キューマネジャで管理されるローカルトランザクション

    参加プログラムがキューマネジャだけのトランザクションであり,キューマネジャがTMとして機能します。

    • ローカルトランザクションを開始するには,トランザクション内の最初のMQPUT,MQPUT1,またはMQGET命令にMQPMO_SYNCPOINTまたはMQGMO_SYNCPOINTオプションを指定してください。ローカルトランザクションを開始するのに,アプリケーションがMQBEGIN命令を呼び出す必要はありません。

    • ローカルトランザクションをコミットまたはロールバックするには,MQCMITまたはMQBACK命令を使用する必要があります。アプリケーションでどちらの命令も呼び出さない場合,このトランザクションは,MQDISC命令を呼び出すとコミットされますが,MQDISC命令を呼び出さないで終了するとロールバックされます。