Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


7.2.2 Orchestrator

Orchestratorのパラメタを説明します。

〈この項の構成〉

(1) jp.co.Hitachi.soft.hmppctoのパラメタ

各パラメタの接頭辞は、jp.co.Hitachi.soft.hmppctoです。

表7‒3 Orchestratorのjp.co.Hitachi.soft.hmppctoのパラメタ

パラメタ

説明

設定範囲

デフォルト値

instance-id

Orchestratorを一意に識別するためのIDです。

32文字以内の任意の文字列を設定してください。

同じMediatorに複数のOrchestratorから接続する場合は、Orchestratorごとに異なる値を設定してください。

String

32文字

なし

必ず設定してください。

learner.consensus-type

トランザクションの決着に使用する分散合意のアルゴリズムを設定します。

String

Three-Quarters |

Privileged-Value

なし

必ず設定してください。

mediator.name

MediatorのpodのDNS名中のStatefulSet名を設定してください。

MediatorのpodはStatefulSetのため、DNS名は次の形式です。この中のStatefulSet名を設定します。

<StatefulSet名>-<連番>.<Service名>.<ネームスペース名>.svc.cluster.local

例えばDNS名が

「mediator-0.mediator.space1.svc.cluster.local」の場合は、「mediator」を設定してください。

HMP-PCTOは、Kubernetesと連携してmediator.nameとmediator.name-suffixをキーにOrchestratorが接続するMediatorを決定します。

String

なし

必ず設定してください。

mediator.name-suffix

MediatorのpodのDNS名中のサービス名以降の文字を指定してください。

MediatorのpodはStatefulSetのため、DNS名は次の形式です。この中のService名以降の文字列を設定します。

<StatefulSet名>-<連番>.<Service名>.<ネームスペース名>.svc.cluster.local

例えば、DNS名が「mediator-0.mediator.space1.svc.cluster.local」の場合は、「.mediator.space1.svc.cluster.local」を設定してください。

String

なし

必ず設定してください。

mediator.port

MediatorのHMP-PCTOがgRPCを受信するポート番号を指定します。

Mediatorのパラメタgrpc.portに設定した値と同じ値を設定してください。

Integer

1024-65535

20551

mediator.size

トランザクションの合意に参加するMediator数を設定してください。

learner.consensus-typeにThree-Quartersを設定した場合は、5以上の値を設定してください。

Integer

2-16

なし

必ず設定してください。

mediator.minimum-start-size

Orchestratorでトランザクション開始時に、mediator.sizeで設定した数のMediatorの起動を確認できなかった場合に、トランザクションを開始する最小限のMediator数を設定してください。

mediator.sizeで設定した数以下の値を設定してください。mediator.sizeで設定した数より大きい値を設定した場合はOrchestratorの初期化時に異常終了します。

トランザクション開始時のMediatorの起動数がこのパラメタに設定した数未満の場合は、トランザクションの開始に失敗します。

learner.consensus-typeにThree-Quartersを設定した場合は、5以上の値を設定してください。

Integer

2-16

mediator.size設定値

mediator.termination-thread-pool-size

OrchestratorからMediatorへの送信に使用するスレッド数を指定してください。

1トランザクションの終了時にmediator.size指定値分のスレッドを使用して送信します。スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから送信します。

スレッドの空き待ちを回避するための理論上の必要なスレッド数は、サービスの同時実行数×mediator.sizeです。

設計指針とチューニング方法については、「3.7.1 スレッドプール」を参照してください。

Integer

1-1000

20

mediator.discovery-retry-count

Orchestrator起動時に、トランザクションの合意に必要なMediatorが起動しているかのチェックをリトライする回数を設定します。

Mediatorの起動が確認できるまで最大で、mediator.discovery-retry-count ×mediator.discovery-interval-in-millis(ミリ秒)待ち合わせます。

Integer

0-100

18

mediator.discovery-interval-in-millis

Orchestrator起動時に、トランザクションの合意に必要なMediatorが起動しているかのチェックをリトライする際のリトライ間隔をミリ秒単位で設定します。

Integer

1-60000

10000

branch.qualifier.list

APがEntity-Serviceを呼び出す際に、HMP-PCTOがトランザクションブランチを識別するために付与する識別子を設定してください。

次の形式で指定します。

<Entity-Serviceのホスト名>:<Entity-Serviceのポート番号><Entity-Serviceのサービスのエンドポイント>@識別子

識別子は、32文字以内で設定してください。

複数のEntity-Serviceを設定する場合は「,」で区切って設定してください。

設定例:

host1:80/service1@qualifier1,host2:80/service2@qualifier2

String

なし

省略した場合、および指定しなかったURLの識別子はHMP-PCTOがUUIDを生成して設定します。

branch.qualifier.propagation-order

HMP-PCTOとHMP-ADIFを連携して使用する場合のTxPropagationIscImperativePluginクラスのISCコマンドプラグイン実行順番を設定します。通常はデフォルト値を使用してください。ほかのISCコマンドプラグインクラスとの実行順番を変更したい場合に設定してください。

Integer

1-2147483647

1

grpc.use-tls

暗号化通信を行うかどうかを指定する。

true:暗号化通信を行う。

false:暗号化通信を行わない。

Boolean

true | false

false

grpc.tls.client.server-auth.certificate

接続先サーバのサーバ証明書を発行したCAの証明書(X.509のPEM形式)ファイルの絶対パス名を指定する。

String

なし

暗号化通信を行う場合は、必ず指定してください。

grpc.tls.client.client-auth.certificate

クライアント認証を行う場合に、自プロセスのクライアント証明書ファイル(X.509のPEM形式)の絶対パス名を指定する。

String

なし

暗号化通信でクライアント認証を行う場合は、必ず指定してください。

grpc.tls.client.client-auth.key

クライアント認証を行う場合に、自プロセスのクライアント証明書を作成した秘密鍵ファイル(pkcs8のPEM形式)の絶対パス名を指定する。

String

なし

暗号化通信でクライアント認証を行う場合は、必ず指定してください。

grpc.tls.session.cache-size

SSLセッション情報のキャッシュ数を指定します。0を指定すると、gRPCのデフォルト値が使用されます。

Integer

0-2147483647

0

grpc.tls.session.timeout

キャッシュしたSSLセッション情報の保持時間(秒)を指定します。0を指定すると、gRPCのデフォルト値が使用されます。

Integer

0-65535

0

grpc.keepalive. interval

PING要求電文の送信間隔を秒単位で指定します。0を指定した場合は、PING要求電文を送信しません。1〜9を指定した場合は10秒となります。

ネットワーク機器の無通信監視タイマなどによるTCPコネクション切断回避が目的の場合は、無通信監視タイマ値より小さい値を指定してください。

Integer

0-100000

0

grpc.keepalive.timeout

PING応答電文の応答待ち時間を秒単位で指定します。

PING要求電文の送信後、このタイマの指定値以内にPING応答電文を受信できない場合はTCPコネクションを切断します。

Integer

1-65535

60

grpc.watchtime

Mediatorへの要求電文に対する応答電文の待ち時間を秒単位で指定します。0を指定した場合は、タイマ監視をせずに無限に応答を待ちます。

Orchestratorからトランザクションに参加したMediatorにcommit/rollbackの要求電文を送信して、すべての通信でこのタイマがタイムアウトした場合、Orchestratorは応答の待ち合わせを終了し、全Mediatorが障害と判断してトランザクションの決着結果は不明としてAPに応答します。そのため、応答電文の待ち時間はトランザクション制御には依存せず、APの業務処理として許容できる待ち時間となります。

Integer

0-65535

100

lb.list-timeout-in-seconds

Kubernetesからのサービス一覧取得の待ち時間を秒単位で指定します。タイマ指定値以内に応答を受信できない場合は、Orchestratorの起動処理を異常終了します。

Integer

1-10800

60

(凡例)−:該当しません。