XA_START 関数は、現在のセッションを xid で指定されたトランザクション分岐に関連付けるために使用します。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみ提供しています。
構文
DBMS_XA.XA_START (
xid IN DBMS_XA_XID,
flag IN PLS_INTEGER)
RETURN PLS_INTEGER;
パラメータの説明
パラメータ |
説明 |
|---|---|
| xid | DBMS_XA_XID オブジェクトタイプを参照してください。 |
| flag | DBMS_XA 定数を参照してください。 |
戻り値
DBMS_XAの可能な定数戻り値を参照してください。
使用方法
フラグに
TMJOINまたはTMRESUMEを指定した場合、xidで識別される既存のトランザクション分岐が開始されます。TMSUCCESSフラグでトランザクションを分離する場合はTMJOINフラグを使用し、TMSUSPENDフラグでトランザクション分岐を分離する場合はTMRESUMEフラグを使用します。どちらのフラグでもXA_STARTを呼び出して既存のトランザクション分岐に参加できます。フラグに
TMNOFLAGSが指定されており、かつTMJOINとTMRESUMEが指定されていない場合、新しいトランザクション分岐が開始されます。xidで指定されたトランザクション分岐が既に存在する場合、XA_STARTはXAER_DUPIDエラーコードを返します。考えられるエラー戻り値は以下の通りです:
XAER_RMERR、XAER_RMFAIL、XAER_DUPID、XAER_OUTSIDE、XAER_NOTA、XAER_INVAL、XAERPROTO。XA_STARTが正常に実行された場合、
XA_OKを返します。アプリケーションは戻り値をチェックし、エラー状況を処理する必要があります。PLアプリケーションはXA_OKを返した場合にのみ、他の操作を続行すべきです。トランザクションスタックはサポートされていません。現在のセッションに関連付けられたアクティブなトランザクションが存在する場合、そのトランザクションが呼び出されて別のトランザクションを開始または参加させることはない可能性があります。そのセッションに関連付けられたアクティブなグローバルトランザクション分岐を使用してXA_STARTを呼び出した場合、XAERPROTOが返されます。現在のセッションに関連付けられたローカルトランザクションを使用してXA_STARTを呼び出した場合、XAER_OUTSIDEが返されます。