Liberty サーバーでセッション・アフィニティーを有効にする必要があります。デフォルトで有効になっていますか、それとも server.xml ファイルで設定できるタグや属性がありますか。
1 に答える
アプリケーションが Java EE HTTP セッション API を使用する場合、HTTPServletRequest.getSession()
Liberty は Cookie を発行します。これにより、HTTP プロキシー・サーバーは、構成を一切行わなくてもアフィニティーを維持できます。
通常、構成が必要な部分は次のとおりです。
- 他の環境では「ワーカー」または「ルート」名とも呼ばれる、カスタム/永続的な HTTP クローン ID を選択します。これは、単純な server.xml タグで実行できます。
<httpSession cloneId="foo1"/>
- アフィニティではなくフェールオーバーに関連するセッションの永続性には、バッキング データベースや共有ストレージ用のメモリ グリッドなどの重要な構成が必要です。
セッション アフィニティが機能していることを確認するには:
- シークレット ブラウザを起動する
- アプリケーションにアクセスする
- ブラウザー開発者ツールまたは Web サーバー ログを使用して、受信または送信セッション Cookie を確認します
- JSESSIONID Cookie の最後の「:」で区切られたフィールドの cloneID に注意してください。
Cookie がない場合、セッションが確立されていないため、アフィニティはありません。それはアプリケーションの問題です。
Cookie があっても正しいサーバーに戻らない場合は、Web サーバー構成が生成された時点で使用されていた cloneID がバックエンド アプリケーションで使用されなくなっている可能性があります。上記のように永続的な cloneID を選択し、再生成/再構成します。
問題があると思われる場合は、少なくともクライアントから送信されたセッション Cookie と webservers plugin-cfg.xml のサーバー定義、および自動生成されたログ/状態/に表示される cloneID を表示できる必要があります。このリクエストがアフィニティを持つべきだと思われるサーバー上の plugin-cfg.xml 。