3

XPages アプリケーション用の別のサーバーを作成しようとしています。その前に、HTTP 要求を 2 つのクラスター サーバーのいずれかにリダイレクトするフェイルオーバー/負荷分散コンポーネント (Microsoft Forefront、IBM Web サーバー) があります。

スコープ変数は、フェイルオーバーの場合に再初期化されると思います。ユーザーは、XPage を最初から (GET) またはデータのサブセット (POST) から初期化する他のサーバーにリダイレクトされます。Bean/スコープ変数にバインドされたものはすべて失われます (ページャーの状態、アプリケーション固有のデータ)。これにより、入力したデータが失われたり、予期しないページが開いたりするなど、ユーザーに奇妙な動作が発生する可能性があります。これはアプリケーションの設計に大きく依存するという事実を認識しています。この状況は、1 つのサーバーでセッションが期限切れになった場合と非常によく似ています。このような場合にデータの損失を防ぐ方法です。

サーバーからサーバーへのフェイルオーバーの副作用を回避するためのコーディングのベスト プラクティスはありますか?

4

1 に答える 1

0

コード ベスト コード ベスト プラクティスではありませんが、最初にロード バランサーを構成して、ユーザーが開始されたら同じセッションを維持する必要があります (おそらく cookie を使用するため、ボックスが実際にダウンした場合にのみフェールオーバーが発生します。

次に、スコープ変数をそこに置かないでください。常にそれらをテストしてください。これは、セッションがタイムアウトして単一のサーバーでも変数が失われる可能性があるため、とにかく良い方法です。POST は x-session がないために失敗するため、エラー ハンドラーを持つことができる Ajax 経由でのみ投稿することに頼ることができます。

Cookie を使用して状態情報を取得することを検討できます。

于 2013-06-11T07:32:10.787 に答える