インストールおよびアップグレード > 高度な展開の検討事項 > クラスタ Windchill 環境のインストールと設定 > サーバークラスタ設定の概要 > 通常のサーバークラスタの設定 > アフィニティの設定
  
アフィニティの設定
エンドユーザーは、通常、負荷分散ルータを介して Windchill クラスタにアクセスします。負荷分散ルータは、作業負荷を均等に配布するために、複数のマシンにリクエストを送信します。ただし、ロードバランサー内でのアフィニティの設定は、サーブレットエンジンのセッションキャッシュと、複数ステップ操作の処理を利用できます。この設定によって、後続の関連リクエストは、同じサーブレットエンジンとメソッドサーバーに送られ、処理されます。
負荷分散ルータでは、この境界で許可されるすべての TCP トラフィックと IP トラフィックの負荷を分散する必要があります。そのため、HTTP または HTTPS へのトラフィック (HTTP または HTTPS による RMI のトンネル化など) を制限する場合は、HTTP または HTTPS を処理する負荷分散ルータのみが必要になります。この境界でほかの TCP 通信と IP 通信 (直接 RMI トラフィックなど) を許可する場合は、その通信も負荷分散する必要があります。
HTTP または HTTPS により RMI をトンネル化する場合、メソッドサーバーにはアフィニティ要件が追加されません。ただし、ロードバランサーが HTTP トラフィックと HTTPS トラフィックにアフィニティを正しく適用することが依然として必要です。これには、トンネル化されたトラフィックも含まれます。直接 RMI ポートがルータによって負荷分散されている場合、ロードバランサーはこれらのポートにアフィニティを適用する必要があります。RMI は Cookie などのタグをアフィニティ目的で処理できるプロトコルではないので、通常、アフィニティの適用は、クライアントホストアフィニティを使用して一定の期間行われます。
しかし、Windchill のサーブレットエンジンにもアフィニティ要件があり、クライアントホストアフィニティまたはセッションアフィニティのいずれかが必要です。クライアントホストアフィニティでは、一定期間内の特定のホストからのすべてのリクエストを同じサーブレットエンジン JVM にマッピングして、ホストのすべてのセッションデータをその JVM に保存します。セッションアフィニティはより正確に、サーブレットエンジンの実際の要求を満たします。
IP 負荷分散ルータがこのアフィニティの確保を行うかどうかは、アーキテクチャによって異なります。たとえば、IP 負荷分散ルータを使用して複数のマシンで負荷分散し、各マシンで mod_jk を使用して Apache ベースの Web サーバーを実行し、すべてのマシンのサーブレットエンジンで負荷分散するとします。この設定を正しく行うと、mod_jk によりセッションアフィニティが確保され、IP ロードバランサーはアフィニティを確保する必要がなくなります。ただし、受信リクエストは任意の Web サーバーに送られ、初期処理が行われる場合があります。その場合、リクエストは別のマシン上のサーブレットエンジンに送られ、後続の処理が行われます。
また、Apache ベースの Web サーバーと mod_jk をロードバランサーとして使用し、「ロードバランサー」マシンに 1 つの Web サーバーのみを実装し、クラスタノードのサーブレットエンジンにリクエストを送信することもできます。この方法では、すべての HTTP(S) 以外のトラフィックを HTTP(S) でトンネル化する必要があります。
最も簡単な方法は、すべての TCP 接続と IP 接続にホストアフィニティを使用して負荷分散ルータを設定することです。これにより、特定のクライアントホストからのすべてのリクエストは、一定期間、クラスタの同じノードによって処理されます。
* 
設定は、負荷分散ソフトウェアおよびハードウェアによって大きく異なります。この一連のトピックでは、Windchill サーバーシステムの設定についてのみ説明します。