Hitachi

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


8.2.5 TCC-Participant

TCC-Participantのパラメタについて説明します。

〈この項の構成〉

(1) serverのパラメタ

各パラメタの接頭辞は、serverです。

表8‒10 TCC-Participantのserverのパラメタ

パラメタ

説明

設定範囲

デフォルト値

port

TCC-Participant用ポート番号を設定してください。

動的ポートなど、ほかのポートと重ならないように設定してください。

Integer

1024-65535

なし。

必ず指定してください。

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

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

表8‒11 TCC-Participantのjp.co.Hitachi.soft.hmppctoのパラメタ

パラメタ

説明

設定範囲

デフォルト値

tcc.pod.service-name

TCC-Participantを構成するPodを定義したKubernetesのServiceのService名とネームスペース名を「.」でつないだ形式で設定します。

Service名とネームスペース名には、英小文字(a〜z)、数字(0〜9)、およびダッシュ(-)を使用できます。ただし、Service名およびネームスペース名の先頭と終端に使用できるのは英小文字(a〜z)、または数字(0〜9)です。

このパラメタには、Mediatorからホスト名として認識できる値を設定する必要があります。

設定例:

name.namespace

String

3バイト〜41バイトの文字列

なし。

必ず指定してください。

tcc.mediator.port

TCC-ParticipantがMediatorからgRPC通信を受信するためのポート番号を設定します。

Integer

1024-65535

20552

tcc.recover.enabled

TCC-Participant起動時に未決着トランザクションのRecovery機能を実施するかどうかを設定します。trueを設定した時Recovery機能が実行され、falseを設定した時は実行されません。

Boolean

true | false

true

tcc.recover.order

未決着トランザクションのRecovery機能について、Spring FrameworkのApplicationListener機能の「ApplicationReadyEvent」イベントハンドラでの実行優先度のオーダー値を指定します。

APでも「ApplicationReadyEvent」イベントハンドラを使用するケースを考慮し、HMP-PCTOのApplicationReadyEventイベントハンドラ(未決着トランザクションのRecovery機能)と、APのApplicationReadyEventイベントハンドラの実行順序を設定できるようにするためのパラメタです。

Spring Frameworkはオーダー値が小さいイベントハンドラから順に実行します。

もしオーダー値が一致しているイベントハンドラが複数存在した場合の実行順序は不定です。

Integer

-2147483648-2147483647

2147483647

tcc.trn-termination.timeout-in-millis

トランザクション決着監視タイマのタイマ監視時間をミリ秒単位で設定します。

障害によってトランザクション決着に至らない状態となることを許容できる時間をタイマ監視し、設定時間を超えてもトランザクションが決着しなかった場合に、ユーザが許容できる時間(業務要件)を超過したと判断しトランザクションを決着に向かわせるタイマです。

トランザクションブランチの処理時間の業務要件に応じた値を指定してください。

なお、複数の業務サービスがある場合は、すべてのサービスの業務要件に応じた値の合計時間で監視時間を設定する必要があります。

このタイマ値が短過ぎるとトランザクションがCancel決着します。

このタイマ値は初回だけ、最大で設定値分の正の誤差を持ちます。ただし、この設定値が1000ミリ秒以上の場合の誤差は最大1000ミリ秒です。 また、この設定値に1000ミリ秒以上を指定した場合は1000の単位に切り上げたタイマ値とします。

Long

100-6000000

60000

tcc.consensus.interval-in-millis

トランザクション分散合意処理をリトライする間隔をミリ秒単位で設定します。

障害などによってトランザクションの分散合意ができないとき、設定した間隔でトランザクションの分散合意が決着するまで分散合意処理をリトライし、分散合意によるトランザクションの決着が必ず行われるようにするためのリトライ間隔です。

また、TCC-Participantが再起動したときに未決着となっているトランザクションがある場合にも分散合意によってトランザクションを決着させます。この場合も設定した間隔によってトランザクションの分散合意が決着するまで分散合意処理をリトライします。

この間隔が短過ぎるとトランザクションの分散合意のリトライが無駄に実施され、トランザクションのレイテンシやシステム負荷に影響が出ます。

このタイマ値は初回だけ、最大で設定値分の正の誤差を持ちます。ただし、この設定値が1000ミリ秒以上の場合の誤差は最大1000ミリ秒です。また、この設定値に1000ミリ秒以上を指定した場合は1000の単位に切り上げたタイマ値とします。

Long

100-6000000

60000

tcc.participant-processing.thread-pool-size

TCC-Participantがトランザクション処理で実行するスレッド数(投票処理、分散合意処理およびトランザクション完了通知処理)を指定してください。

スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから処理を実行します。スレッドの空き待ちを発生しないようにするための理論上必要なスレッド数は、トランザクションに参加するMediator数×同時実行するトランザクション数です。

ただし、処理の実行が重ならないかぎりは、理論上必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。

Integer

1-1000

12

tcc.participant-processing.queue-size

TCC-Participantがトランザクション処理(投票処理、分散合意処理およびトランザクション完了通知処理)に使用するスレッドの割り当てを待つキューのサイズを指定します。

理論上必要な設定値は次のとおりです。

{m+(p−1)×m×m}×m×t

m:トランザクションに参加するMediator数

p:トランザクションに参加するParticipant数

t:同時実行するトランザクション数

Integer

1-2147483647

25

mediator-process-management.thread-pool-size

SQL-Participantのmediator-process-management.thread-pool-sizeと同じです。

(2) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

Integer

1-32767

30

mediator-communication.thread-pool-size

SQL-Participantのmediator-communication.thread-pool-sizeと同じです。

(2) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

Integer

1-1000

30

mediator-communication.queue-size

SQL-Participantのmediator-communication.queue-sizeと同じです。

(2) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

Integer

1-2147483647

25

external-consensus.interval-in-millis

Mediatorなどに障害が発生し、補助合意によってトランザクションの分散合意を行う場合の、補助合意を試行する間隔をミリ秒単位で指定してください。

このタイマが短ければ、Mediatorなどに障害が発生した場合のトランザクションの遅延を小さくできます。

ただし、このタイマが短過ぎると通信遅延を障害と誤認し、不要な補助合意が発生するため、通信遅延を考慮した値を設定してください。

この設定値に1000ミリ秒以上を指定した場合は1000の単位に切り上げたタイマ値とします。

なお、このタイマ値は初回だけ、最大で設定値分の正の誤差を持ちます。ただし、この設定値が1000ミリ秒以上の場合の誤差は最大1000ミリ秒です。

Integer

100-10000

1000

external-consensus.eads.properties

補助合意に使用するEADSのクライアントプロパティファイルの絶対パス名を設定してください。

String

ファイルパス

/eads-properties/hmp-pcto.eads-client.properties

external-consensus.eads.cache

補助合意に使用するEADSクラスタに対して、eztool createcacheコマンドで作成したキャッシュ名を設定してください。

String

32バイト以内の半角英数字(0〜9、A〜Z、およびa〜z)

hmppctoCache

external-consensus.type

トライアル版の補助合意サーバを使用する場合に指定します。

トライアル版の補助合意サーバは、補助合意サーバ障害時の補助合意を必要とするトランザクションの分散合意の一貫性を保証しません。

String

free

なし

トライアル版を使用する場合必ず指定してください。

mediator.name

Orchestratorのmediator.nameと同じです。

(1) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

なし

必ず設定してください。

mediator.name-suffix

Orchestratorのmediator.name-suffixと同じです。

(1) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

なし

必ず設定してください。

mediator.port

Orchestratorのmediator.portと同じです。

(1) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

20551

grpc.use-tls

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

true:暗号化通信をします。

false:暗号化通信をしません。

Boolean

true | false

false

grpc.tls.client.server-auth.certificate

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

String

なし

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

grpc.tls.server.server-auth.certificate

自プロセスのサーバ証明書(X.509のPEM形式)ファイルの絶対パス名を指定する。

String

なし

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

grpc.tls.server.server-auth.key

自プロセスのサーバ証明書を作成した秘密鍵ファイル(pkcs8のPEM形式)の絶対パス名を指定する。

String

なし

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

grpc.tls.client.client-auth.certificate

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

String

なし

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

grpc.tls.client.client-auth.key

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

String

なし

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

grpc.tls.server.client-auth.store

クライアント認証をする場合に、接続元クライアントの秘密鍵が格納されているキーストア(pkcs12またはJKS)ファイルの絶対パス名を指定します。

String

なし

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

grpc.tls.server.client-auth.password

クライアント認証をする場合に、grpc.tls.server.clientAuth.storeで指定したキーストアファイルのパスワードを指定します。

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を指定した場合は、タイマ監視をしないで無限に応答を待ちます。

ParticipantからMediatorに要求電文を送信すると、Mediatorからはすぐに要求を受け付けた旨の応答電文を送信するため、応答電文の待ち時間はgRPC通信の送受信時間として許容できる待ち時間となります。

Integer

0-65535

5

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