7.6.1 トランザクション・タイムアウトの設定

XA参加側サービスから送信されたリクエストがアクティブである期間を指定します。トランザクションのコミットまたはロールバックが指定した期間内に行われないと、トランザクションはロールバックされます。

この値は、トランザクション・イニシエータ・アプリケーションのみに指定します。トランザクション・イニシエータ・サービスは、指定したタイムアウト値を参加側サービスに伝播します。この値を参加側アプリケーションに指定しても無視されます。

ノート:

指定する値は、トランザクション全体のタイムアウトを指定します。トランザクション・タイムアウトを決定する際には、リソース・マネージャのレイテンシも考慮する必要があります。

参加側サービスから送信されるリクエストのトランザクション・タイムアウトを設定するには:

  1. トランザクション・コーディネータ構成パラメータで、トランザクションをアクティブにしておく最大期間(ミリ秒)を指定します。MicroTxコーディネータのvalues.yamlファイルで、txMaxTimeoutパラメータの値を指定します。デフォルト値は60000 msです。
    MicroTxvalues.yamlファイルは、installation_directory/otmm-RELEASE/otmm/helmchartsフォルダにあります。
  2. トランザクション・イニシエータ・サービスで、トランザクションをアクティブにしておく期間(ミリ秒)を指定します。トランザクションのコミットまたはロールバックが指定した期間内に行われないと、トランザクションはロールバックされます。デフォルト値(最小値)は60000です。この値は、アプリケーション・コードに指定することも、プロパティ値として指定することもできます。アプリケーション・コードに指定した値により、プロパティ値がオーバーライドされます。

    イニシエータ・サービスのタイプに応じて、次のMicroTxライブラリ・プロパティのいずれかの値を指定します。

    • Helidonに基づくNode.jsおよびJAX-RSアプリケーションの場合は、oracle.tmm.TransactionTimeoutプロパティの値を指定します。
    • Spring Bootアプリケーションの場合は、spring.microtx.xa-transaction-timeoutプロパティの値を指定します。
イニシエータ・サービスに指定されたトランザクション・タイムアウトの値は、トランザクション・コーディネータに指定されたtxMaxTimeoutの値をオーバーライドできますが、txMaxTimeoutの値を超えることはできません。たとえば、txMaxTimeoutの値が70000で、イニシエータ・サービスに指定されたトランザクション・タイムアウトの値が80000の場合、最長タイムアウトは70000ミリ秒に設定されます。txMaxTimeoutの値が90000で、イニシエータ・サービスに指定されたトランザクション・タイムアウトの値が80000の場合、最長タイムアウトは80000ミリ秒に設定されます。