D.2 トランザクション・コーディネータの環境変数

MicroTxトランザクション・コーディネータを構成するには、次の環境変数に値を指定します。MicroTxをデプロイするには、これらの詳細が必要です。

プロパティ 説明
TMM_APPNAME MicroTxのインストール時に作成するMicroTxアプリケーションの名前を入力します。後で指定する必要があるため、この名前を書き留めておきます。たとえば、tmm-appです。
PORT このサービスをインストールするKubernetesクラスタ内のMicroTxに内部的にアクセスするポートを入力します。このポートでインバウンドおよびアウトバウンド・トラフィックを許可するために必要なネットワーク・ルールを作成します。後で指定する必要があるため、この番号を書き留めておきます。たとえば、9000です。
ID

インストールするMicroTxの各インスタンスを一意に識別する値を入力します。この一意識別子は5文字で指定する必要があり、使用できるのは英数字(a-z、A-Zおよび0-9)のみです。たとえば、TMM01です。

このIDを使用して、複数のインストールがある場合にMicroTxを識別します。すべてのレプリカが同じIDを持つため、このIDを使用して、MicroTxインストールの単一インスタンスのレプリカを区別することはできません。MicroTxをインストールした後は、この値を変更できません。

APPLICATION_NAMESPACE MicroTxをデプロイするネームスペースを指定します。
LISTEN_ADDR MicroTxにアクセスするポートを入力します。このポートでインバウンドおよびアウトバウンド・トラフィックを許可するために必要なネットワーク・ルールを作成します。後で指定する必要があるため、この番号を書き留めておきます。たとえば、0.0.0.0:9000です。この例に示すように、リスナー・アドレスを<IP_address>:<port>の形式で指定します。
INTERNAL_ADDR サービスをインストールする環境内からMicroTxにアクセスするための内部URLを入力します。「Docker SwarmでのMicroTxへのアクセス」を参照してください。
EXTERNAL_ADDR サービスをインストールする環境の外部からMicroTxにアクセスするための外部URLを入力します。「Docker SwarmでのMicroTxへのアクセス」を参照してください。
HTTP_CLIENT_TIMEOUT_IN_SECS MicroTxコーディネータから参加側サービスに送信されるHTTPコールバックAPIリクエストをアクティブにしておく最長期間(秒)を指定します。0から900までの整数を入力してください。デフォルト値は180秒、最大値は900秒です。この値を0に設定すると、MicroTxによって制限が適用されません。コーディネータがHTTPコールバックAPIリクエストを参加側サービスに送信したとき、参加側サービスは指定の期間内に応答する必要があります。指定した期間内に参加側サービスが応答しないと、コーディネータによって送信されたHTTPリクエストはタイムアウトします。
XA_COORDINATOR_ENABLED マイクロサービスがXAトランザクション・プロトコルを使用する場合は、trueに設定します。Sagaトランザクション内にXAトランザクションをネストする場合は、XA_COORDINATOR_ENABLEDLRA_COORDINATOR_ENABLEDの両方をtrueに設定します。
XA_COORDINATOR_TX_MAX_TIMEOUT XAトランザクション・プロトコルのみ。トランザクションをアクティブにしておく最長期間(ミリ秒)を指定します。トランザクションのコミットまたはロールバックが指定した期間内に行われないと、トランザクションはロールバックされます。デフォルト値は600000 msです。
LRA_COORDINATOR_ENABLED マイクロサービスがSagaトランザクション・プロトコルを使用する場合は、trueに設定します。Sagaトランザクション内にXAトランザクションをネストする場合は、XA_COORDINATOR_ENABLEDLRA_COORDINATOR_ENABLEDの両方をtrueに設定します。
TCC_COORDINATOR_ENABLED マイクロサービスがTCCトランザクション・プロトコルを使用する場合は、trueに設定します。
NARAYANA_LRA_COMPATIBILITY_MODE Sagaトランザクション・プロトコルのみ。Narayana LRAコーディネータと連携するように実装され、MicroTxを使用してSagaトランザクションに参加するSaga参加側アプリケーションを使用する場合は、このプロパティをtrueに設定します。このモードを有効にすると、MicroTx Saga APIがNarayana LRAコーディネータAPIが返すのと同じレスポンス・データを返すことが保証されます。
LOGGING_LEVEL 次のいずれかのタイプを入力して、MicroTxのログ・レベルを指定します:
  • info: MicroTxの通常の操作中に発生するイベントを記録します。この設定では、最小限の情報を記録します。これはデフォルトの設定です。
  • warning: 有害な状況を引き起こす可能性のあるイベントをログに記録します。
  • error: トラブルシューティングが必要な問題があることを示すためにイベントをログに記録します。
  • debug: すべてのイベントをログに記録します。この設定は、問題をデバッグする場合に使用します。
HTTP_TRACE_ENABLED デバッグ時にMicroTx内のすべてのHTTPリクエストおよびレスポンスをログに記録するには、これをTrueに設定します。これをTrueに設定する場合、LOGGING_LEVELdebugに設定する必要があります。
LOGGING_DEV_MODE これは、テスト環境でデバッグのために詳細情報を取得する場合のみ、Trueに設定します。本番環境では、これをFalseに設定する必要があります。
MAX_RETRY_COUNT 障害が発生した場合にトランザクション・コーディネータが同じリクエストの送信を再試行する最大回数。デフォルト値は0です。
MIN_RETRY_INTERVAL 障害が発生した後でトランザクション・コーディネータが同じリクエストの送信を再試行するまでの最小間隔(ミリ秒)。デフォルト値は0です。
MAX_RETRY_INTERVAL 障害が発生した後でトランザクション・コーディネータが同じリクエストの送信を再試行するまでの最大再試行間隔(ミリ秒)。たとえば、10000です。デフォルト値は0です。
SKIP_VERIFY_INSECURE_TLS

この値をfalseに設定し、安全なアクセスのために信頼できる認証局によって署名された有効な証明書を設定することをお薦めします。この値をfalseに設定すると、トランザクション・コーディネータは、信頼できる認証局によって署名された有効な証明書を使用して、HTTPSプロトコルを介して参加側アプリケーションにアクセスします。デフォルト値はfalseです。

この値をtrueに設定すると、トランザクション・コーディネータは、有効なSSL証明書を使用せずに、参加側アプリケーションのコールバックURLに安全でない方法でアクセスします。

注意:

本番環境では、この値をtrueに設定しないでください。
SERVE_TLS_ENABLED 参加側サービスとMicroTxの間のセキュアな通信を保証するためにTLSを有効にするには、これをtrueに設定します。SERVE_TLS_CERT_FILEおよびSERVE_TLS_KEY_FILEプロパティで、証明書およびキー・ファイルの詳細を指定する必要があります。TLSを有効にすると、HTTPSを介してトランザクション・コーディネータにアクセスできます。

HTTPSを介してMicroTxにセキュアにアクセスするために、自己署名付き証明書を作成し、証明書および秘密キーの場所を書き留めます。SSL証明書の作成の詳細は、『セキュリティ・ガイド』OpenSSLを使用した自己署名証明書および秘密キーの生成ガイドラインを参照してください。

このフィールドをfalseに設定した場合、SERVE_TLS_CERT_FILEおよびSERVE_TLS_KEY_FILEに値を指定する必要はありません。TLSを無効にしたときは、HTTPを介してトランザクション・コーディネータにアクセスできます。HTTPプロトコルを使用するinternalAddrおよびexternalUrlを指定する必要があります。たとえば、http://localhost:9000のようになります。

注意:

本番環境では、これをtrueに設定する必要があります。
SERVE_TLS_CERT_FILE ローカル・マシン上のTLS証明書(PEM形式)のパス。
SERVE_TLS_KEY_FILE ローカル・マシン上の証明書に関連付けられている秘密キー・ファイル(PEM形式)のパス。
COMPLETED_TX_TTL 完了トランザクション・レコードのトランザクション・データ・ストアでの存続時間(TTL)(秒単位)。指定できる値の範囲は60から1200秒です。指定した時間が終了すると、完了トランザクション・エントリはデータ・ストアから削除されます。デフォルト値は60秒です。
AUTHENTICATION_ENABLED JWT認証をバイパスするには、falseに設定します。こうすると、JWTトークンのないリクエストが許可されます。すべてのリクエストにJWTトークンを含める場合は、trueを入力します。MicroTxは、リクエストで指定されたトークンを検証し、トークンが無効な場合はアクセスを拒否します。enabledに設定する場合は、JWTのissuerパラメータおよびjwksUriパラメータに値を指定する必要があります。

注意:

本番環境では、このプロパティをtrueに設定する必要があります。

AUTHORIZATION_ENABLED これをtrueに設定すると、MicroTxが受信JWTトークンのサブジェクトをチェックできるようになります。その後、MicroTxは、サブジェクトまたはユーザーにトランザクションIDをタグ付けします。トランザクションをさらに変更できるのは、タグ付けされたサブジェクトまたはユーザーのみになります。このフィールドをfalseに設定した場合、アイデンティティ・プロバイダの詳細を指定する必要はありません。
IDENTITY_PROVIDER_URL アイデンティティ・プロバイダのURLを指定します。この情報は、リフレッシュ・トークンを使用して新しいアクセス・トークンを作成するために必要です。この情報を指定しないと、期限切れになったアクセス・トークンが自動リフレッシュされません。
IDENTITY_PROVIDER_CLIENT_ID アイデンティティ・プロバイダのクライアントIDを指定します。この情報は、リフレッシュ・トークンを使用して新しいアクセス・トークンを作成するために必要です。この情報を指定しないと、期限切れになったアクセス・トークンが自動リフレッシュされません。