3.7.2 常設コネクション
OpenTP1は,リモートAPIを要求したUAP(rapクライアント)とrapサーバとの間に,論理的な通信路(常設コネクション)を設定します。
常設コネクションのスケジュール方法には,スタティックコネクションスケジュールモードとダイナミックコネクションスケジュールモードがあります。どちらを使用するかは,rapリスナーサービス定義のrap_connection_assign_typeオペランドで指定できます。
(1) スタティックコネクションスケジュールモード
スタティックコネクションスケジュールモードを使用するには,rap_connection_assign_typeオペランドにstaticを指定します。または指定を省略します。
スタティックコネクションスケジュールモードは,rapクライアントがコネクションの確立を要求すると同時にrapサーバを割り当て,rapクライアントとrapサーバを1対1で関係づける常設コネクションのスケジュール方法です。同時に使用するrapクライアント数が,開始するrapサーバ数以内の場合に適しています。なお,OpenTP1の制限のため,rapサーバの最大数は1024です。
スタティックコネクションスケジュールモードを使用する場合,rapリスナーが管理できる常設コネクションの最大数は1024です。
rapリスナーサービス定義のrap_max_clientオペランドには,rapリスナーに同時接続する最大クライアント数を指定できます。ただし,OpenTP1の制限のため,rap_max_clientオペランドおよびmax_socket_descriptorsオペランドの和が1993以下になるように調整してください。
また,同時に常設コネクションが設定され,実行できるrapクライアント数はrapサーバ数が上限です。残りの常設コネクションは,現在実行中のrapクライアントが常設コネクションを解放するまで常設コネクションの確立はできません。そのため,rapクライアントがrapサーバ数以上の場合には,次に示すどちらかの運用をしてください。
-
API代理実行を要求する前後で,rapクライアントで常設コネクションの確立および解放を実行してください。
-
rapリスナーを複数開始して,rapクライアントが常設コネクションを確立するrapサーバ数を増やしてください。
(2) ダイナミックコネクションスケジュールモード
ダイナミックコネクションスケジュールモードを使用するには,rap_connection_assign_typeオペランドにdynamicを指定します。
ダイナミックコネクションスケジュールモードは,rapクライアントがコネクションの確立を要求するときにrapサーバを割り当てないで,API代理実行の要求が発生したときに動的に未使用のrapサーバを割り当てるコネクションスケジュール方法です。同時に使用するrapクライアント数がrapサーバ数以上あるが,rapサーバに必要な資源を増加させたくない場合に適しています。
ダイナミックコネクションスケジュールモードを使用する場合,rapリスナーが管理できる常設コネクションの最大数は1024です。rapリスナーサービス定義のrap_max_clientオペランドにはrapリスナーに同時接続する最大クライアント数を指定できます。ただし,OpenTP1の制限のため,rap_parallel_serverオペランド,rap_max_clientオペランドおよびmax_socket_descriptorsオペランドの和が1993以下になるように調整してください。
ダイナミックコネクションスケジュールモードでは,rapクライアントからのAPI代理実行の要求を受け取ったときにだけrapサーバを割り当て,API代理実行の終了後にはrapサーバを解放します。このため,スタティックコネクションスケジュールモードでrapクライアントがrapサーバ数以上となった場合に行う次の対策は必要ありません。そのため,rapリスナーを複数開始する必要がないのでファイアウォールを通過させるための通信ポートを増やす必要もありません。
-
API代理実行の要求をするたびに常設コネクションの確立と解放を実行する
-
rapリスナーを複数開始して,rapクライアントが常設コネクションを確立するrapサーバ数を増やす
ただし,ダイナミックコネクションスケジュールモードは,rapリスナーへの負荷が高くなるとスタティックコネクションスケジュールモードに比べてレスポンス性能が悪くなります。