7.2.4 SQL-Participant
SQL-Participantのパラメタについて説明します。
(1) serverのパラメタ
各パラメタの接頭辞は、serverです。
|
パラメタ |
説明 |
型 |
設定範囲 |
デフォルト値 |
|---|---|---|---|---|
|
port |
SQL-Participant用ポート番号を設定してください。 動的ポートなど、ほかのポートと重ならないように設定してください。 |
Integer |
1024-65535 |
なし。 必ず指定してください。 |
(2) jp.co.Hitachi.soft.hmppctoのパラメタ
各パラメタの接頭辞は、jp.co.Hitachi.soft.hmppctoです。
|
パラメタ |
説明 |
型 |
設定範囲 |
デフォルト値 |
|---|---|---|---|---|
|
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 |
|
sql.xa-server-name |
SQL-Participant起動時に未決着トランザクションがDBに残っているか確認する際に、DBから取得した未決着トランザクションがSQL-Participantが実行したトランザクションか判断するために使用する識別子です。 同じDBに接続するSQL-Participantが複数ある場合ユニークな値を指定してください。 |
String |
32バイト以内の文字列 |
なし。 必ず指定してください。 |
|
sql.pool.allocation-wait-time-in-millis |
SQL-ParticipantがDBアクセスのためのコネクションをコネクションプールから取得する際に、コネクションプールに空きが無かった場合の空き待ち時間をミリ秒単位で設定します。 0を指定した場合は、コネクションプールの空き待ちを行いません。 トランザクションブランチの処理時間(業務要件)に応じたタイマ監視時間であるsql.transaction-termination.timeout-in-millisのパラメタより大きい値を指定してください。 空きがなかった場合、このパラメタに指定した時間だけコネクションの空きを待ちます。空き待ちを行わない、または待ち時間内にコネクションの空きができなかった場合はエラーとなり、JDBC Proxy Driverを使用してコネクションの取得を実行したAPに例外を送出します。 |
Long |
0-65535000 |
61000 |
|
sql.pod.service-name |
SQL-Participantを構成するPodを定義したKubernetesのServiceのService名とネームスペース名を「.」でつないだ形式で設定します。 このパラメタには、Mediatorからホスト名として認識できる値を設定する必要があります。 設定例: name.namespace |
String |
41バイト以内の文字列 |
なし。 必ず指定してください。 |
|
sql.app.port |
SQL-ParticipantがEntity-ServiceからgRPC通信を受信するためのポート番号を設定します。 |
Integer |
1024-65535 |
20553 |
|
sql.mediator.port |
SQL-ParticipantがMediatorからgRPC通信を受信するためのポート番号を設定します。 |
Integer |
1024-65535 |
20552 |
|
sql.jdbc.driver.path |
SQL-ParticipantがDBに接続するために使用するJDBC Driverについて、「2.4.7 SQL-Participantコンテナイメージの作成(SQL-Participant限定)」でコンテナ内に配置したパスを設定します。絶対パスで指定してください。 |
String |
− |
なし。 必ず指定してください。 |
|
sql.datasource.class-name |
SQL-ParticipantがJDBC Driverからロードするデータソースのクラス名を設定します。 例えば、PostgreSQL JDBC DriverのPostgreSQLデータソースを使用する場合は次の形式で指定します。 設定例: org.postgresql.xa.PGXADataSource |
String |
− |
なし。 必ず指定してください。 |
|
sql.datasource.property.values |
JDBC Driverからロードしたデータソースに設定するプロパティの名前と値を「=」でつないだ形式で指定します。複数のプロパティを指定する場合はsql.datasource.property.delimiterで設定した値で区切って設定してください。 データソースに設定するプロパティには、次の値を指定しないでください。
設定例: serverName=sample-bank1;portNumber=5431;databaseName=appuser1;user=appuser1;password=appuser1 PostgreSQLのJDBC Driverの場合、次のプロパティを指定できます。
詳細は、PostgreSQL JDBC DriverのサイトのDataSourceのプロパティを参照してください。 PostgreSQLのJDBC Driverは、databaseNameを省略すると、userに指定した値をdatabaseNameの値として使用します。 |
String |
− |
なし。 必ず指定してください。 |
|
sql.datasource.property.delimiter |
sql.datasource.property.valuesで複数のプロパティを指定した場合の区切りとなる文字を設定します。 |
String |
「=」以外の1バイトの文字 |
; (半角セミコロン) |
|
sql.pool.max-pool-size |
SQL-ParticipantがコネクションプールにプールするDBコネクションの数を設定します。 SQL-Participant起動時にこのパラメタに指定した数のDBコネクションがプールされます。 SQL-Participantが使用するDBコネクションの数がこのパラメタに指定したサイズを超えた場合、コネクションプールの空き待ちになります。 データベースの同時接続数以下、かつ同時実行するトランザクション数以上の値を指定してください。 |
Integer |
1-100000 |
なし。 必ず指定してください。 |
|
sql.pool.transaction-timeout-in-sec |
DB側のトランザクションタイムアウト時間を秒単位で設定します。 0を指定した場合、DB側のトランザクションタイムアウト時間の設定が有効になります。 このトランザクションタイムアウト時間はjavax.transaction.xa.XAResource.setTransactionTimeout()メソッドを使用して設定を行います。 そのため、使用するJDBC DriverがsetTransactionTimeout()メソッドをサポートしているかご確認ください。サポートしていない場合は、DB側のトランザクションタイムアウト時間設定が有効になります。 定義を省略した場合は0を指定した場合と同様に、DB側のトランザクションタイムアウト時間の設定が有効になります。 |
Integer |
0-65535 トランザクションタイムアウト時間に設定できる範囲は使用するJDBC Driverの仕様をご確認ください。 |
0 |
|
sql.transaction-termination.timeout-in-millis |
トランザクション決着監視タイマのタイマ監視時間をミリ秒単位で設定します。 DBの排他ロックが解けない状態となることを許容できる時間をタイマ監視し、該当する時間を超えてもトランザクションが決着しなかった場合に、DBの排他ロック解除のためにトランザクションを決着に向かわせるタイマです。 APがユーザにレスポンスを返すまでの許容時間、またはトランザクションブランチの処理時間の業務要件に応じた値を指定してください。 なお、複数の業務サービスがある場合は、すべてのサービスの業務要件に応じた値の合計時間で監視時間を設定する必要があります。 業務サービスはOrchestratorから呼び出され、DBなどのリソースの更新を行う複数のサービスであるEntity-Serviceを指します。 このタイマ値は初回だけ、最大で設定値分の正の誤差を持ちます。ただし、この設定値が1000ミリ秒以上の場合の誤差は最大1000ミリ秒です。また、この設定値に1000ミリ秒以上を指定した場合は、1000の単位に切り上げたタイマ値とします。 |
Long |
100-6000000 |
60000 |
|
sql.transaction-termination.consensus.replay-interval-in-millis |
トランザクション分散合意インターバルタイマのタイマ監視時間をミリ秒単位で設定します。 このタイマは、トランザクション決着監視タイマのタイムアウトによるトランザクション決着処理をリプレイ(再実行)、またはSQL-Participantダウンからの再起動時にトランザクション決着処理をリプレイ(再実行)する際に設定し、該当する時間を超えてもトランザクションが決着しなかった場合に、DBの排他ロック解除のためにトランザクションを決着に向かわせるタイマです。 このタイマを短く設定することで、SQL-Participant内で合意が滞ったトランザクションを速やかに決着できますが、障害が長引いた場合にリトライの回数が多くなり、トランザクション決着のための通信に負荷が掛かるため、通信負荷を考慮した値を設定してください。 このタイマ値は初回だけ、最大で設定値分の正の誤差を持ちます。ただし、この設定値が1000ミリ秒以上の場合の誤差は最大1000ミリ秒です。また、この設定値に1000ミリ秒以上を指定した場合は、1000の単位に切り上げたタイマ値とします。 |
Long |
100-6000000 |
1000 |
|
sql.participant-processing.thread-pool-size |
Entity-ServiceからのトランザクションブランチのPrepare指示/キャンセル指示の実行に使用するスレッド数、およびMediatorからの投票要求/トランザクション決着結果通知の実行に使用するスレッド数を指定してください。 スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから処理を実行します。 スレッドの空き待ちを防ぐ理論上の必要なスレッド数は、サービスの同時実行数×トランザクションに参加するMediator数です。 ただし、Mediatorからの通知が重ならないかぎりは、理論上の必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。 |
Integer |
1-1000 |
12 |
|
sql.participant-processing.queue-size |
SQL-Participantがトランザクション処理(Entity-ServiceからのSQL実行、Prepare指示/トランザクションのキャンセル指示、投票処理、分散合意処理およびトランザクション完了通知処理)に使用するスレッドの割り当てを待つキューのサイズを指定します。 理論上の必要な設定値は次のとおりです。 {m+(p−1)×m×m}×m×t m:トランザクションに参加するMediator数 p:トランザクションに参加するParticipant数 t:同時実行するトランザクション数 |
Integer |
1-2147483647 |
25 |
|
mediator-process-management.thread-pool-size |
Mediatorへ送信を行うプロセスを管理するスレッド数を指定します。 理論上必要なスレッド数は、トランザクションに参加するMediator数×2×同時実行するトランザクション数です。 ただし、処理の実行が重ならないかぎりは、理論上必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。 |
Integer |
1-32767 |
30 |
|
mediator-communication.thread-pool-size |
ParticipantがMediatorと送受信を行うスレッド数を指定します。 スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから処理を実行します。スレッドの空き待ちを発生しないようにするための理論上必要なスレッド数は、トランザクションに参加するMediator数×2×同時実行するトランザクション数です。 ただし、送受信が重ならないかぎりは、理論上の必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。 |
Integer |
1-1000 |
30 |
|
mediator-communication.queue-size |
ParticipantがMediatorとの送受信に使用するスレッドの割り当てを待つキューのサイズを指定します。 理論上必要な設定値は次のとおりです。 {m+(p−1)×m×m}×m×t m:トランザクションに参加するMediator数 p:トランザクションに参加するParticipant数 t:同時実行するトランザクション数 |
Integer |
1-2147483647 |
25 |
|
sql.db-type |
SQL-Participantが接続するRDBMSを指定します。 |
String |
PostgreSQL |
なし。 必ず指定してください。 |
|
external-consensus.type |
トライアル版の補助合意サーバを使用する場合に指定します。 トライアル版の補助合意サーバは、補助合意サーバ障害時の補助合意を必要とするトランザクションの分散合意の一貫性を保証しません。 |
String |
free |
なし トライアル版を使用する場合必ず指定してください。 |
|
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 |
|
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 |
||
(凡例)−:該当しません。