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を呼び出すと、XAER_PROTOが返されます。現在のセッションに関連付けられたローカルトランザクションを使用してXA_STARTを呼び出すと、XAER_OUTSIDEが返されます。