TCP ポートを共用する複数サーバーに関する考慮事項

TCP サーバー・アプリケーションが単一のシステムで多数のクライアント接続をサポートし、同時にそれらの接続について良好なパフォーマンスを確保できるようにするためには、そのサーバー・アプリケーションの複数インスタンスを実行して複数の接続要求をサービスする必要が生じる場合があります。サーバー・アプリケーションのすべてのインスタンスが、クライアント・アプリケーションを変更せずにクライアント接続要求を受信可能にするには、各サーバーがすべて同一のサーバー IP アドレスおよびポートにバインドしている必要があります。TCP/IP スタック内でこれを使用可能にするには、SHAREPORT または SHAREPORTWLM キーワードを PORT プロファイル・ステートメントに追加する必要があります。このキーワードにより、サーバー・インスタンスに対して TCP ポートを予約します。PORT ステートメントとそのキーワードについて詳しくは、「z/OS Communications Server: IP 構成解説書」を参照してください。

同一の TCP/IP スタック上の同一の TCP ポートを共用するサーバー・インスタンスのセットを、共用ポート・グループと呼びます。 このポートおよび IP アドレスを宛先とする着信クライアント接続が到着すると、TCP/IP は、それらを共用ポートグループ内のサーバーに配分します。

SHAREPORT キーワードが指定されている場合は、各接続は、サーバーの受け入れ効率比 (Servers' accept Efficiency Fraction: SEF) に基づき、加重ラウンドロビン分散を使用して、使用可能なサーバー間に配分されます。

SHAREPORTWLM キーワードが指定されている場合は、各接続は、SEF により修正された WLM サーバー固有の推奨値に基づき、加重ラウンドロビン分散を使用して、使用可能なサーバー間に配分されます。

SEF は、新規接続要求の受け入れとバックログ・キュー管理に使用される、サーバー・アプリケーションの効率を表す指標であり、約 1 分間隔で計算されます。 サーバーの現在の SEF 値は、Netstat ALL/-A コマンドを使用して取得できます。Netstat コマンドについて詳しくは、「z/OS Communications Server: IP システム管理者のコマンド」を参照してください。

共用ポート・グループを構成することにより、主要アプリケーションの可用性を高めることもできます。例えば、1 つのアプリケーション・サーバー・インスタンスが非アクティブになったときに (障害が起きた場合や、計画保守のために停止された場合)、共用ポート・グループ内の他のアプリケーションは、クライアント要求の処理を続行することができます。

共用ポート・グループに入れる対象の適正な候補となるアプリケーションは、以下の要件も満たしていることが必要です。

さらに、共用ポート・グループ向けの各 TCP 接続は、ロード・バランシングの対象としての適格性を備えていなければなりません (つまり、特定サーバーへのアフィニティーを持つことはできません)。特定クライアント・アフィニティーが特定サーバーに対して存在している場合は、シスプレックス・ディストリビューターの使用を検討してください。これを利用すれば、接続のロード・バランシングが可能になると同時に、一定期間にわたり、特定サーバー・インスタンスへのクライアント・アフィニティー (時限アフィニティー) も維持されます。シスプレックス・ディストリビューターの第 1 の目的は、複数ターゲット・システム上のサーバー間でのロード・バランシングにありますが、ターゲット・システム上の共用ポート・グループ内の複数サーバーもサポートします。シスプレックス・ディストリビューター構成についての詳細は、シスプレックス内の TCP/IPを参照してください。