0

Liberty サーバーでセッション・アフィニティーを有効にする必要があります。デフォルトで有効になっていますか、それとも server.xml ファイルで設定できるタグや属性がありますか。

4

1 に答える 1

1

アプリケーションが Java EE HTTP セッション API を使用する場合、HTTPServletRequest.getSession()Liberty は Cookie を発行します。これにより、HTTP プロキシー・サーバーは、構成を一切行わなくてもアフィニティーを維持できます。

通常、構成が必要な部分は次のとおりです。

  1. 他の環境では「ワーカー」または「ルート」名とも呼ばれる、カスタム/永続的な HTTP クローン ID を選択します。これは、単純な server.xml タグで実行できます。<httpSession cloneId="foo1"/>
  2. アフィニティではなくフェールオーバーに関連するセッションの永続性には、バッキング データベースや共有ストレージ用のメモリ グリッドなどの重要な構成が必要です。

セッション アフィニティが機能していることを確認するには:

  1. シークレット ブラウザを起動する
  2. アプリケーションにアクセスする
  3. ブラウザー開発者ツールまたは Web サーバー ログを使用して、受信または送信セッション Cookie を確認します
  4. JSESSIONID Cookie の最後の「:」で区切られたフィールドの cloneID に注意してください。

Cookie がない場合、セッションが確立されていないため、アフィニティはありません。それはアプリケーションの問題です。

Cookie があっても正しいサーバーに戻らない場合は、Web サーバー構成が生成された時点で使用されていた cloneID がバックエンド アプリケーションで使用されなくなっている可能性があります。上記のように永続的な cloneID を選択し、再生成/再構成します。

問題があると思われる場合は、少なくともクライアントから送信されたセッション Cookie と webservers plugin-cfg.xml のサーバー定義、および自動生成されたログ/状態/に表示される cloneID を表示できる必要があります。このリクエストがアフィニティを持つべきだと思われるサーバー上の plugin-cfg.xml 。

于 2018-04-21T15:24:00.867 に答える