3.9.3 最大仮想コネクション数などを設定するときのガイドライン
最大仮想コネクション数(MCONMAX),通信処理プロセス数(MCONPROC),プールコネクション数(MCONPOOL),予約プールコネクション数(MRSVPOOL)は,使用環境に合わせた適切な値を設定する必要があります。ここでは,設定するときのガイドラインを説明します。
- 〈この項の構成〉
(1) DABrokerとDatabase Connection Serverの接続の仕組み
DABrokerとDatabase Connection Serverの接続時,Database Connection Serverでは,TCP/IPコネクションを確立します。1ユーザからのアクセス要求に対して一つのTCP/IPコネクションを確立します(図3-4参照)。
この場合,1TCP/IPコネクションを1ユーザからのアクセス要求だけで使用でき,レスポンス性能が良くなりますが,同時アクセスユーザ数が増えると,TCP/IPコネクションの確立数も多くなりDatabase Connection Serverのメインフレーム側及びDABroker側でのリソース消費量が多くなってしまいます。
そのため,DABrokerでは,一つのTCP/IPコネクションを複数ユーザからのアクセス要求で共有できるように,一つのTCP/IPコネクションの中で複数のDABroker用のコネクションを確立できるようにしています。一つのTCP/IPコネクションに対して確立するDABroker用のコネクションを仮想コネクションと呼びます。一つのTCP/IPコネクションの中で複数の仮想コネクションを確立するときには,DABrokerでは,通信処理プロセスを起動します。通信処理プロセスは,TCP/IPコネクションごとに起動します。
1TCP/IPコネクションを複数ユーザからのアクセス要求で共有する場合,DABrokerでは,1通信処理プロセス当たりで(=一つのTCP/IPコネクションに対して)同時に確立できる仮想コネクション数(=最大仮想コネクション数),及びDABroker内で同時に起動できる通信処理プロセス数(=通信処理プロセス数)を決めて運用します。
図3-5に,1TCP/IPコネクションを2ユーザからのアクセス要求で共有する場合(1通信処理プロセス当たりで二つの仮想コネクションを確立する場合)の,DABrokerとDatabase Connection Serverの接続イメージを示します。ここでは,アプリケーション及びDBPARTNERから同時に四つのアクセス要求があり,二つのTCP/IPコネクションで対応しています。DABrokerでは,二つの通信処理プロセスを起動し,それぞれの通信処理プロセスで二つの仮想コネクションを確立しています。このとき,四つのTCP/IPコネクションを使用した場合に比べ,メインフレーム側及びDABroker側の両方でリソース消費量を少なくできます。
DABrokerは,次のタイミングでDatabase Connection Serverに対してTCP/IPコネクションを確立します。
-
「予約プールコネクション数(MRSVPOOL)」が設定されている(>0)場合
DABrokerコネクションマルチ機能起動時に確立します。
-
「予約プールコネクション数(MRSVPOOL)」が設定されていない(=0)場合
最初のユーザアクセス要求時に確立します。
-
起動中の通信処理プロセスで実行できるユーザ数(「最大仮想コネクション数(MCONMAX)」)を超えたユーザアクセスが要求された場合
通信処理プロセスを新しく起動して確立します。
(ただし,「通信処理プロセス数(MCONPROC)」の範囲内)
そして,これらのTCP/IPコネクションを確立する際に,1TCP/IPコネクション上に「最大仮想コネクション数(MCONMAX)」に設定された数だけ仮想コネクションを予約します。
なお,一つのTCP/IPコネクションに対して一つの仮想コネクションを確立する形態をシングルコネクション(図3-4参照)と呼び,一つのTCP/IPコネクションに対して複数の仮想コネクションを確立する形態をコネクションマルチ(図3-5参照)と呼びます。
(2) 最大仮想コネクション数と通信処理プロセス数の決定
- 最大仮想コネクション数(MCONMAX)
-
次のどちらかの値を設定します。
-
1TCP/IPコネクションを1ユーザからのアクセス要求だけで使用する場合(シングルコネクション)
最大仮想コネクション数を「1」に設定します。この場合,TCP/IPコネクションを1ユーザからのアクセス要求だけで使用できるためレスポンス性能が良いのですが,複数ユーザからの同時アクセス要求があるときには同時アクセス要求数分のTCP/IPコネクションを確立し,DABroker及びメインフレームでのリソース消費量が多くなります。
-
1TCP/IPコネクションを複数ユーザからのアクセス要求で共有する場合(コネクションマルチ)
「2以上の値」で,1通信処理プロセス当たりで同時に確立できる仮想コネクション数を設定します。設定値については,下記を参照してください。なお,この場合は,運用時に,コネクションマルチ機能起動コマンド(「3.10.1(1) コネクションマルチ機能起動コマンド(dabcmstart)」参照)を実行してください。
-
- 通信処理プロセス数(MCONPROC)
-
DABrokerで同時に起動できる通信処理プロセス数の最大値を設定します。設定値については,下記を参照してください。なお,最大仮想コネクション数が「1」の場合は,設定する必要はありません。
1TCP/IPコネクションを複数ユーザからのアクセス要求で共有する場合,これらの値は,次の手順で決定してください。
-
DABrokerのシステム全体で同時にアクセスするユーザ数(要求数)の最大値を見積もる
この最大値は,アクセス対象となるDatabase Connection Serverの空間起動制御文で設定された「サーバユーザ数」以内となるようにしてください。サーバユーザ数の設定方法については,マニュアル「Database Connection Server」を参照してください。
-
「1で見積もった最大値≦最大仮想コネクション数 * 通信処理プロセス数」となるような最大仮想コネクション数と最大通信処理プロセス数の組み合わせを決定する
このとき,次の2点を考慮し,使用環境に合わせた適切な数値を検討してください。
-
レスポンス性能
-
DABrokerが組み込まれたサーバで消費するリソース量,及びDatabase Connection Serverが組み込まれたメインフレームで消費するリソース量
レスポンス性能は,1通信処理プロセス当たりの仮想コネクション数を少なくすればするほど向上し,最大仮想コネクション数を1にする(シングルコネクション)とレスポンスが早くなります。しかし,同時アクセスユーザ数が多い場合に,TCP/IPコネクションも増えるため,メインフレーム側でリソース消費量が多くなります。このため,使用環境に合わせた適切な数値を検討してください。
なお,最大仮想コネクション数は,接続するDatabase Connection Serverの空間起動制御文で設定された「ユーザ数(仮想ユーザ空間数など)÷TCPコネクション数」の倍数となるように設定してください。
(3) プールコネクション数と予約プールコネクション数の決定(仮想コネクションのプーリング機能の使用)
最大仮想コネクション数を2以上にした場合,次の2種類の機能が使用できます。この2種類は併用できます。
-
一度確立した仮想コネクションをプールする
この機能を使用すると,コネクション確立のためのオーバーヘッドを削減し,Database Connection Serverとの接続時間の短縮が図れます。この機能を使用するときは,プールコネクション数(MCONPOOL)を設定してください。
-
コネクションマルチ機能の起動時に,指定された数の仮想コネクションを確立しておく
この機能を使用すると,通信処理プロセスの起動のためのオーバヘッドを削減し,Database Connection Serverとの接続時間を短縮できます。この機能を使用するときは,予約プールコネクション数(MRSVPOOL)を設定してください。
仮想コネクションのプーリング機能を使用するときは,次に示す値を設定してください。
- プールコネクション数(MCONPOOL)
-
DABrokerのシステム全体でプールする仮想コネクション数を設定します。プールした仮想コネクションに対応するTCP/IPコネクションのためのリソースをDatabase Connection Server(メインフレーム)側で占有してしまうため,メインフレーム側でのリソース消費量を考慮して使用環境に合わせた値を設定してください。なお,リソースは,1通信処理プロセスごと,1TCP/IPコネクションごとに消費されるため,「最大仮想コネクション数」で設定した値の倍数をプールコネクション数に設定することをお勧めします。
- 予約プールコネクション数(MRSVPOOL)
-
DABrokerのシステム全体でコネクションマルチ機能起動時に確立しておく仮想コネクション数を設定します。コネクションマルチ機能起動時にアクセス要求がなくても仮想コネクションを確立してしまうことになるため,DABrokerを組み込んだサーバで確立した分のリソースを占有してしまいます。したがって,DABroker側のリソース消費量を考慮して使用環境に合わせた値を設定してください。なお,リソースは,1通信処理プロセスごと,1TCP/IPコネクションごとに消費されるため,「最大仮想コネクション数(MCONMAX)」で設定した値の倍数を予約プールコネクション数に設定することをお勧めします。
プールコネクション数及び予約プールコネクション数の両方に値を設定する場合は,「プールコネクション数≧予約プールコネクション数」となるように設定してください。