分散トランザクション処理機能 OpenTP1 解説

[目次][用語][索引][前へ][次へ]

7.3.4 ポート数の制限方法

OpenTP1を使用して大規模なシステムを構築する場合,TCP/IPが管理するポートが不足する可能性があります。このような場合に,OpenTP1で使用するポートを制限する方法について説明します。

OpenTP1は,コネクション確立時のオーバヘッドを削減するために,確立したコネクションを切断しないで保持し,同じプロセス間通信に再利用します。保持するコネクション数が上限になった場合,コネクションを確立したプロセス間の合意によって,コネクションを切断します。これを一時クローズ処理といいます。

ユーザは,システム共通定義,ユーザサービス定義,およびユーザサービスデフォルト定義で次に示すオペランドを指定できます。

 
set ipc_sockctl_highwater = a,b
set ipc_sockctl_watchtime = ソケット再利用可能監視時間
 

a:ソケットの一時クローズ処理開始数パーセンテージ

b:ソケットの一時クローズ処理非対象数パーセンテージ

同じプロセスとの間の通信が多く発生しない運用や,通信する相手プロセスが非常に多いシステムでは,保持しているコネクション数がある程度増えてきたところで,一時クローズ処理によって,適度にコネクションを解放して,1プロセスで使用するソケット数を調整し,再利用できます。

また,OpenTP1のプロセスから送信する場合は,コネクションを確立するときに送信用ポートを確保しますが,送信用ポートの個数は,一つのコンピュータで上限があるため,システム全体の合計が上限を超えないように,UAPプロセスが保持するコネクション数を調整する必要があります。

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