7.10.1 Spring Bootアプリケーションのライブラリ・プロパティの構成

すべてのSpring BootアプリケーションのMicroTxライブラリ・プロパティの構成情報を指定します。指定する必要があるプロパティ値は、アプリケーションが参加側であるかイニシエータであるかに応じて異なります。

application.yamlファイルでMicroTxライブラリのプロパティ値を指定します。

  • spring.microtx.coordinator-url: MicroTxコーディネータにアクセスするためのURLを入力します。「MicroTxへのアクセス」を参照してください。この値はトランザクション・イニシエータ・アプリケーションの場合に入力する必要があります。トランザクション参加側アプリケーションの場合、この値を指定する必要はありません。

  • spring.microtx.participant-url: 参加側サービスのURLを入力します。MicroTxは、指定されたURLを使用して参加側サービスに接続します。この値を次の形式で指定します。
    https://externalHostnameOfApp:externalPortOfApp/
    https://externalHostnameOfApp:externalPortOfApp/
    説明
    • externalHostnameOfApp: イニシエータ・サービスまたは参加側サービスの外部ホスト名。たとえば、bookTicket-appです。
    • externalPortOfApp: イニシエータまたは参加側サービスにリモートでアクセスできるポート番号。たとえば、8081です。
    トランザクション参加側アプリケーションには、この値を指定する必要があります。

    たとえば、https://bookTicket-app:8081です。

  • spring.microtx.propagation-active: トランザクションを全面的にトレースする場合は、これをtrueに設定します。これにより、すべての受信リクエストおよび送信リクエストのトレース・ヘッダーが伝播されます。

  • spring.microtx.http-client-connection-pool-size: MicroTxライブラリへの接続数をMicroTxに入力します。デフォルト(最小)の接続数は10です。最大値は20です。この値は、サービスが実行する問合せ数に応じて変更できます。この値はイニシエータ・アプリケーションと参加側アプリケーションの両方に指定します。

  • spring.microtx.xa-transaction-timeout: トランザクションをアクティブにしておく最長期間(ミリ秒)を指定します。トランザクションのコミットまたはロールバックが指定した期間内に行われないと、トランザクションはロールバックされます。デフォルト(最小)値は60000です。この値は、トランザクション・イニシエータ・アプリケーションのみに指定します。トランザクション・イニシエータ・サービスは、指定したタイムアウト値を参加側サービスに伝播します。この値を参加側アプリケーションに指定しても無視されます。「トランザクション・タイムアウトの設定」を参照してください。
  • spring.microtx.xa-resource-manager-id: XAトランザクションで使用するリソース・マネージャごとに一意の文字列値を指定します。RMIDとして指定する一意の値は、MicroTxがリソース・マネージャを識別するために使用されます。複数の参加側が同じリソース・マネージャを使用する場合、リソース・マネージャを共有する参加側に対して同じリソース・マネージャIDを指定します。この値は、データ・ストアのプロパティとは関係ありません。たとえば、174A5FF2-D8B2-47B0-AF09-DA5AFECA2F71です。
  • spring.microtx.xa-xa-support: XA準拠リソースを使用する場合は、これをtrueに設定します。これをfalseに設定するのは、非XAリソースを使用する単一のトランザクション参加側サービスに対してのみです。デフォルト値はtrueです。xa-xa-supporttrueに設定されると、xa-llr-supportおよびxa-lrc-supportに設定された値は無視されます。
  • spring.microtx.xa-llr-support: ロギング・ラスト・リソース(LLR)の最適化を有効にするには、これをtrueに設定します。この値は、非XAリソースをリソース・マネージャとして使用するトランザクション参加側サービスについてのみ設定します。デフォルト値はfalseです。xa-llr-supporttrueに設定されると、xa-lrc-supportに設定された値は無視されます。

    このプロパティ値をtrueに設定した場合にのみ、xa-llr-delete-commit-record-intervalプロパティの値も指定できます。コミットされたレコードを保持する最長期間(ミリ秒)を指定します。デフォルト値は7,200,000ミリ秒または2時間です。ローカル・コミットを実行する前に、トランザクション・コーディネータはLLRブランチにコミット・レコードを作成します。コミット・レコードは、xa-llr-delete-commit-record-intervalプロパティで指定された期間の後に削除されます。この値は、非XAリソースをリソース・マネージャとして使用するサービスについてのみ指定します。

  • spring.microtx.xa-lrc-support: ラスト・リソース・コミット(LRC)の最適化を有効にするには、これをtrueに設定します。この値は、非XAリソースをリソース・マネージャとして使用するトランザクション参加側サービスについてのみ設定します。デフォルト値はfalseです。
  • spring.microtx.xa-promotable-active: ローカル・トランザクションを有効にするか、コーディネータを使用せずに特定のトランザクションをローカルで管理するには、これをtrueに設定します。この値は、トランザクションにも参加するトランザクション・イニシエータ・サービスに対してのみ指定します。

    デフォルト値はfalseです。xa-promotable-activeの値をfalseに設定すると、すべてのトランザクションがデフォルトでグローバル・トランザクションとして開始され、GTRIDに関連付けられます。ローカル・トランザクションは開始されません。「グローバルおよびローカル・トランザクションについて」を参照してください。

  • spring.microtx.xa-rac-active: これをtrueに設定するのは、Oracle Real Application Clusters (RAC)データベースをリソース・マネージャとして使用するトランザクション参加側サービスに対してのみです。デフォルト値はfalseです。
たとえば、
 spring:
  microtx:
    coordinator-url: http://tmm-app:9000/api/v1
    participant-url: https://bookTicket-app:8081
    propagation-active: true
    http-client-connection-pool-size: 60
    xa-transaction-timeout: 60000
    xa-xa-support: true
    xa-llr-support: false
    xa-lrc-support: false
    xa-llr-delete-commit-record-interval: 720000
    xa-resource-manager-id: 174A5FF2-D8B1-47B0-AF09-DA5AFECA2F61
    xa-promotable-active: false
    xa-rac-active: false

アプリケーションとMicroTxが同じKubernetesクラスタ内にある場合はHTTPプロトコルを使用し、それ以外の場合はHTTPSプロトコルを使用します。

これらの構成値を環境変数として指定することもできます。application.yamlファイルと環境変数の両方に値を指定した場合、環境変数に設定されている値がプロパティ・ファイルの値をオーバーライドすることに注意してください。

次の例は、環境変数を構成するためのサンプル値を示しています。

export SPRING_MICROTX_COORDINATOR_URL = http://tmm-app:9000/api/v1
export SPRING_MICROTX_PARTICIPANT_URL = http://bookTicket-app:8081
export SPRING_MICROTX_PROPAGATION_ACTIVE = true
export SPRING_MICROTX_HTTP_CLIENT_CONNECTION_POOL_SIZE = 15
export SPRING_MICROTX_XA_TRANSACTION_TIMEOUT = 60000
export SPRING_MICROTX_XA_XA_SUPPORT = true
export SPRING_MICROTX_XA_LLR_SUPPORT = false
export SPRING_MICROTX_XA_LLR_DELETE_COMMIT_RECORD_INTERVAL = 720000
export SPRING_MICROTX_XA_LRC_SUPPORT = false
export SPRING_MICROTX_XA_RESOURCE_MANAGER_ID = 174A5FF2-D8B1-47B0-AF09-DA5AFECA2F61
export SPRING_MICROTX_PROMOTABLE_ACTIVE = false
export SPRING_MICROTX_XA_RAC_ACTIVE = false

環境変数名では大/小文字が区別されることに注意してください。