Hitachi

OpenTP1 Version 7 分散アプリケーションサーバ TP1/LiNK 使用の手引


3.3.2 SUPの詳細設定

SUP環境の詳細を設定するときは,[SUP環境設定]ダイアログボックスの[詳細設定(T)...]ボタンをクリックします。ボタンをクリックすると,[SUP詳細設定]ダイアログボックスが表示されます。

図3‒23 [SUP詳細設定]ダイアログボックス

[図データ]

ボタンの使い方
[初期値設定(I)]ボタン

[SUP詳細設定]ダイアログボックスのすべての項目を初期値にします。

[OK]ボタン

各項目を設定した値に変更してから,[SUP詳細設定]ダイアログボックスを終了します。

[キャンセル]ボタン

各項目の値を変更しないで,[SUP詳細設定]ダイアログボックスを終了します。

〈この項の構成〉

(1) [トランザクション]タブに設定する項目

[トランザクション]タブは,図3-23を参照してください。

[トランザクション属性(T)]

このSUPでトランザクション機能を使うかどうかをチェックボックスで指定します。

このチェックボックスをオンにする場合は,[システム環境設定]ウィンドウで,[トランザクション機能]欄の[あり]オプションボタンをオンにしておいてください。

[トランザクションブランチ限界経過時間(E)]  〜<符号なし整数>((0〜65535))《0》(単位:秒)

このSUPでトランザクションブランチの処理を監視する限界経過時間を指定します。指定時間を超えたときは,このトランザクションブランチのプロセスを異常終了させて,ロールバックします。0を指定した場合は,時間監視しません。

[子トランザクションブランチを監視時間に含める(B)]

このSUPでトランザクションブランチの処理を監視する場合に,次に示す処理時間も監視時間に含めるかどうかをチェックボックスで指定します。

  1. 監視対象のトランザクションブランチが,RPC機能を使ってほかのトランザクションブランチを呼び出し,その処理が終わるのを待つ時間

  2. 連鎖RPCで呼び出されたサーバUAPが,次のサービス要求を待つ時間

  3. 監視対象のトランザクションブランチが,非同期RPCを使用してほかのトランザクションブランチを呼び出したあと,処理結果受信処理をしている時間

チェックボックスをオンにしたとき

1.,2.,3.のすべてを監視時間に含みます。

チェックボックスをオフにしたとき

3.だけを監視時間に含みます。

[リソースマネジャ拡張子設定(D)...]ボタン

このユーザサーバがアクセスするリソースマネジャ拡張子(リソースマネジャ接続時に設定したOPEN,CLOSE文字列に対応するリソースマネジャ拡張子)を設定する[リソースマネジャ拡張子設定]ダイアログボックスが表示されます。

(2) [RPC]タブに設定する項目

[図データ]

[最大応答待ち時間(W)]  〜<符号なし整数>((0〜65535))《180》(単位:秒)

このSUPでRPCによるプロセス間の通信をする場合,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。

指定時間を過ぎても応答がないときは,RPCは送受信タイムアウトとしてエラーリターンします。0を指定したときは,応答を受信するまで待ち続けます。指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

[ソケット用ファイル記述子の最大数(F)]  〜<符号なし整数>((32〜2047))《64》

OpenTP1制御下のプロセスで,ソケット用に使用するファイル記述子の最大値を指定します。

OpenTP1制御下のプロセスは,システムサービスやユーザサーバとの間で,ソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。このため,同時に稼働するUAPプロセスの数によって,ソケット用のファイル記述子の最大数を変更する必要があります。

この項目の指定値が小さいと,OpenTP1制御下のほかのプロセスとのコネクションが設定できなくなるため,プロセスがKFCA00307-Eのエラーメッセージを出力して異常終了します。

ソケット用ファイル記述子の最大数の計算式を次に示します。計算結果の値の小数点以下は切り上げます。

(このユーザサーバが通信するUAPプロセス数※1+システムサービスプロセス数※2)÷0.8

注※1

このユーザサーバが通信するUAPプロセス数は,次に示す値の合計です。

  • このユーザサーバが通信する自OpenTP1内のUAPプロセス数

  • このユーザサーバが通信する他ノード内のUAPプロセス数

注※2

システムサービスプロセス数とは,自OpenTP1内のシステムサービスプロセスの数です。自OpenTP1内のシステムサービスプロセスは,rpcstatコマンドで表示されるサーバ名をカウントすることで求められます。rpcstatコマンドで表示されるサーバ名のうち,マニュアル「OpenTP1 解説」のOpenTP1のプロセス構造に記載されているシステムサービスプロセスをカウントしてください。

指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

[ソケットの一時クローズ開始数(G)]  〜<符号なし整数>((0〜100))《100》(単位:%)

OpenTP1制御下のプロセスで,[ソケット用ファイル記述子の最大数]に指定した使用ソケット数の上限に対し,一時クローズ処理でソケットの再利用を開始するパーセンテージを指定します。一時クローズ処理とは,保持したコネクションを,ユーザの関知しないところでコネクションを確立したプロセス間の合意のもとに切断することで,プロセス内で使用するソケット数を調整する機能です。

OpenTP1では,プロセス内のソケット用に使用しているファイル記述子の数が「[ソケット用ファイル記述子の最大数]に指定した値×[ソケットの一時クローズ開始数]に指定した値÷100」を超えた時点で,一時クローズ処理を開始します。

0を指定すると,確立したコネクションを保持しないで,確立するたびに一時クローズ処理を実行します。指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

[ソケットの一時クローズ非対象数(U)]  〜<符号なし整数>((0〜80))《0》(単位:%)

[ソケット用ファイル記述子の最大数]に指定した使用ソケット数の上限に対して,「[ソケット用ファイル記述子の最大数]指定値×[ソケットの一時クローズ非対象数]指定値÷100」の個数を一時クローズ処理の非対象として扱い,一時クローズ要求を送信しません。

ソケットの一時クローズ非対象数は,ソケットの一時クローズ開始数と同じかそれ以下の値を指定してください。指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

OpenTP1制御下のプロセスは,システムサーバやユーザサーバとの間で,ソケットを使用したTCP/IP通信でプロセス間の情報交換をします。コネクション確立時のオーバヘッド削減のために,一度確立したコネクションは切断しないで保持し,同じプロセス間の通信にはコネクションを再利用しています。しかし,同じプロセスとの間の通信が頻繁に発生しない運用や,通信する相手プロセスが非常に多いシステムでは,保持しているコネクション数がある程度増えたときに適度にコネクションを解放して,1プロセスで使用するソケット数を調整および再利用できるようにする必要があります。

また,OpenTP1制御下のプロセスから電文の送信が発生した場合は,コネクションを確立する際に送信ポートを確保します。このポートの個数は1マシンで約4000であるため,UAPプロセスが1プロセスで保持するコネクション数の,システム全体の合計が2000を超えない程度に,[ソケットの一時クローズ開始数]および[ソケットの一時クローズ非対象数]の指定で調整してください。

この指定値が適切でないと,1プロセス内で使用できるソケット数が上限に達して,一時クローズによるソケットの再利用が新たなコネクション確立要求に追いつかなかったり,システム全体で使用するポート数がTCP/IPの上限を超え,プロセスが異常終了したりする場合があります。

OpenTP1で使用するポート番号使用量の見積もり式については,「3.1.2(4) [ソケット]タブに設定する項目」の「表3-2 OpenTP1で使用するポート番号使用量の見積もり式」を参照してください。

[一時クローズ要求の応答監視時間(L)]  〜<符号なし整数>((0〜65535))《180》(単位:秒)

OpenTP1制御下のプロセスで,使用中のソケット数が[ソケット用ファイル記述子の最大数]に指定した上限値に達した時点から,一時クローズ処理でソケットが空いて再利用できるようになるまでの監視時間を指定します。

ここで指定した時間を過ぎてもソケットが空かない場合は,そのプロセスを異常終了させます。

0を指定した場合は,無限に待ちます。指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

[RPCトレースを取得するファイルの容量(J)]  〜<符号なし整数>((1024〜2147483647))(単位:バイト)

このSUPでRPCトレースを取得する場合,RPCトレースを取得するファイルの容量を指定します。指定を省略した場合,[システム環境設定]ウィンドウで設定したシステム共通の値が仮定されます。

なお,RPCトレースファイル容量よりも,はるかに大きい電文が送受信された場合,編集時に何も出力しなかったり,出力情報にRPCトレースの抜け落ちが発生したりします。

また,RPCトレースを取得した場合,処理スピードが遅くなることが原因となって,RPCがタイムアウトでエラーリターンすることがあります。この場合,[RPC詳細設定]ダイアログボックスのシステム共通の最大応答待ち時間に十分な値を指定してください。

[TCP/IPの受信バッファサイズ(H)]  〜<符号なし整数>((0,8192〜1048576))《8192》(単位:バイト)

コネクションごとに確保されるTCP/IPの受信バッファのサイズを指定します。

高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすれば性能向上を見込めます。ただし,イーサネットなどのMTUの小さな通信媒体を使用している場合,性能が悪くなるおそれがあります。

0を指定した場合は,OSの受信バッファサイズが適用されます。受信データサイズが8192バイトを超える場合,この項目に0を指定することで受信バッファのサイズが拡張され,性能が向上することがあります。

0を指定する場合の使用方法については,マニュアル「OpenTP1 運用と操作」の遠隔サービス要求時の通信レスポンスのチューニングに関する記述を参照してください。

なお,0を指定する場合,このノードと通信するすべてのノードで同じ値を指定してください。同じ値を指定しない場合,通信するノードとバッファサイズに差異が生じ,通信性能が劣化するおそれがあります。また,1〜8191は指定できません。OSで使用できるTCP/IPの受信バッファのサイズ以下の値を指定してください。

TCPは,受信したデータに対し,送達確認(ACK)パケットを返信します。受信バッファのサイズに対し,受信したデータが小さいと,データを受信しても直ちにACKを返信しません(遅延ACK)。この指定値に大きな値を指定し,小さいデータをやり取りし合うような通信処理の場合,遅延ACKの影響によって性能が悪くなるおそれがあります。遅延ACKについての詳細は,TCP/IPの文献を参照してください。

指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

[TCP/IPの送信バッファサイズ(O)]  〜<符号なし整数>((0,8192〜1048576))《8192》(単位:バイト)

コネクションごとに確保されるTCP/IPの送信バッファのサイズを指定します。

高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすれば性能向上を見込めます。ただし,イーサネットなどのMTUの小さな通信媒体を使用している場合,性能が悪くなるおそれがあります。

RPCは,送信バッファにデータ送信する段階で4キロバイト単位に送信していて,ネットワークの状態によっては送信バッファ内のデータがネットワーク上に出力しきれないで,送信処理に失敗することがあります。例えば,[RPC詳細設定]ダイアログボックスの[その他]タブで[RPC送受信電文の最大長(M)]に8を指定して8メガバイトのメッセージを送信する場合,ネットワークの状態次第では4キロバイトの送信処理で35ミリ秒の待ちが多く発生し,通信性能に大きな影響を与えるおそれがあります。

このような場合は,この項目に0を指定し,送信バッファサイズを調整することを推奨します。

0を指定した場合は,OSの送信バッファサイズが適用されます。送信データサイズが8192バイトを超える場合,この項目に0を指定することで送信バッファのサイズが拡張され,性能が向上することがあります。

0を指定する場合の使用方法については,マニュアル「OpenTP1 運用と操作」の遠隔サービス要求時の通信レスポンスのチューニングに関する記述を参照してください。

なお,0を指定する場合,このノードと通信するすべてのノードで同じ値を指定してください。同じ値を指定しない場合,通信するノードとバッファサイズに差異が生じ,通信性能が劣化するおそれがあります。また,1〜8191は指定できません。OSで使用できるTCP/IPの送信バッファのサイズ以下の値を指定してください。

指定を省略した場合,[システム環境設定]−[RPC詳細設定]ダイアログボックスで設定したシステム共通の値が仮定されます。

(3) [リモートAPI機能]タブに設定する項目

[図データ]

[OpenTP1が常設コネクションを自動管理する(P)]

SUPでリモートAPI機能の常設コネクションを使用してサービス要求する場合に,SUPとリモートAPI制御プロセスとの間のコネクションをTP1/LiNKが自動的に管理するかどうかをチェックボックスで指定します。

チェックボックスをオンにしたとき

TP1/LiNKが自動的にコネクションを管理します。

チェックボックスをオフにしたとき

dc_rap_connect関数またはdc_rap_disconnect関数を使ってユーザがコネクションを管理します。

[常設コネクション問い合わせ間隔最大時間(M)]  〜<符号なし整数>((0〜1048575))《0》(単位:秒)

SUPでリモートAPI機能を使用してサービス要求する場合に,リモートAPI制御プロセスがSUPからのサービス要求を処理してから,次のサービス要求を処理するまでの間の最大待ち時間を指定します。この指定値は,リモートAPI制御プロセス側で監視するタイマです。ここで指定した時間を超えても次のサービス要求がないときは,リモートAPI制御プロセスはSUPがダウンしたものと見なして処理します。

0を指定したときは,リモートAPI制御プロセス側のデフォルト値(180秒)が有効となります。

(4) [その他]タブに設定する項目

[図データ]

[システム再開始時,自動起動する(N)]

TP1/LiNKを再開始するとき,SUPを自動起動するかどうかをチェックボックスで指定します。SUPが正常終了した場合は,この指定は無効となります。

チェックボックスをオンにしたとき

SUPを自動起動します。

チェックボックスをオフにしたとき

SUPを自動起動しません。

[SUP異常終了時,再起動する(A)]

SUPが実行中に異常終了した場合,プロセスを再起動するかどうかをチェックボックスで指定します。

チェックボックスをオンにしたとき

プロセスを再起動します。

チェックボックスをオフにしたとき

プロセスを再起動しません。

[連続異常終了限界経過時間(X)]  〜<符号なし整数>((0〜32767))《30》(単位:分)

SUPでサーバプロセスが異常終了した回数を監視する限界経過時間を指定します。0を指定した場合は,時間監視しません。なお,指定時間内に3回連続してSUPのサーバプロセスが異常終了したときは,再起動しません。

[UAPトレース格納最大数(K)]  〜<符号なし整数>((0〜4095))《32》

SUPで取得できるUAPトレースのレコード数を指定します。1レコードのサイズは256バイトです。0を指定した場合は,UAPトレースを取得しません。