7.14.7.5 TmmStart関数
グローバル・トランザクションでMicroTx XAコーディネータを使用してトランザクション参加側サービスを登録し、XAトランザクション境界を起動し、コールバックREST APIを登録して、トランザクション・メタデータを返します。
構文
TmmStart (
callBackUrl IN VARCHAR2,
linkUrl IN VARCHAR2,
requestId IN VARCHAR2,
authorizationToken IN VARCHAR2,
tmmTxToken IN VARCHAR2)
RETURN TmmReturn;
TmmStart関数のパラメータ
パラメータ | 説明 |
---|---|
callBackUrl |
必須。参加側サービスのURLを入力し、ORDS RESTモジュールの名前で接尾辞を付けます。MicroTxは、指定したURLを使用して参加側ORDSサービスに接続します。たとえば、 |
linkUrl |
必須。 |
requestId |
必須。マイクロサービス間でトランザクションをトレースするための一意のID。 |
authorizationToken |
必須。
コーディネータの |
tmmTxToken |
必須。
コーディネータの |
戻り値
TmmStart
関数は、トランザクション・メタデータを持つTmmReturn
オブジェクトを返します。TmmReturn
オブジェクトには属性proceed
があり、これはTmmStart
関数が正常に実行されたかどうか、トランザクションが進行できるかどうかを示します。
TmmReturn.proceed 値
|
意味 |
---|---|
0 | XAトランザクション内でTmmStart 関数がコールされましたが、XAの初期化は成功しませんでした。つまり、アプリケーション・コードでXAトランザクションを進めることはできません。
|
1 | XAトランザクション内でTmmStart 関数がコールされ、XAの初期化が成功しました。つまり、アプリケーション・コードでXAトランザクションを進める必要があります。
|
2 | MicroTx XAトランザクションがなく、ローカル・トランザクション内で関数が実行されています。つまり、アプリケーション・コードを通常どおりに進めます。 |
例
次のサンプル・コード・スニペットは、TmmStart
関数をコールして値を渡す方法を示しています。これはMicroTxTransaction
オブジェクトを返します。
..
//In the example callback URL below, account is the name of the ORDS REST module.
l_callBackUrl VARCHAR2(256) := get_microtx_config(''callback-url'') || ''/accounts'';
//Call the TmmStart function to initiate the transaction. Pass the parameters, other than callBackUrl, as shown in the example below.
l_microTxTransaction := TmmStart(callBackUrl => l_callBackUrl, linkUrl => :linkUrl, requestId => :requestId, authorizationToken => :authorization, tmmTxToken => :tmmTxToken);
//Check if the transaction should proceed or not
IF (l_microTxTransaction.proceed > 0) THEN
//Run the application's business logic
...
END IF;
後で指定してトランザクション・ステータスの取得、トランザクションのコミットまたはロールバックを行うため、戻り値の名前を書き留めます。
親トピック: MicroTx PL/SQLライブラリ関数