本番環境のアプリケーションは weblogic 上で実行されます。これは、Spring および Struts ベースの Web アプリケーションです。クエリを db ロードする必要があり、GUI ハンドルを介してオンザフライで再ロードする機能があります。既存のユーティリティ ファイルの一部は、Spring で Bean として構成されておらず (現時点では構成できません)、静的変数/定数を使用してクエリを静的メソッドのそれぞれで実行する静的メソッドを持っています。アプリの稼働中に DB からクエリをリロードする必要がある場合、Weblogic クラスターがどのように動作するかわかりません。質問を言い換えると、静的変数に対するクエリのリロードがすべての JVM で確実に行われるようにするにはどうすればよいでしょうか?どのノードのメソッドで次にヒットしても、新しくロードされたクエリの結果がフェッチされるようにするにはどうすればよいでしょうか?
質問する
648 次
2 に答える
1
これがあなたの質問に答えるかどうか見てみましょう。
3 つの管理対象サーバーがあり、3 つの管理対象サーバーすべてに Spring アプリをデプロイした場合、Spring は 3 つのアプリケーション コンテキストを起動します。(管理対象サーバーごとに1つ)。
それらは互いに話しません。それらは独自のサーバー内で実行されます。独自の一連の Bean と独自の静的変数があります。
したがって、1 つのサーバーでのリロードはそのサーバーに対して行われます。アプリケーション全体に反映させるには、3 つのサーバーすべてで静的なものをリロードする必要があります。
すべてに対して 1 回のリロードで問題ないようにする場合は、プロパティ ファイル (または 3 つの管理対象サーバーすべてが同じ場所から共有できるその他のリソースを使用します。管理サーバーの JNDI のように、ファイル システムに保存されたプロパティ ファイルは、いくつかの場所にクエリを保存します) DB テーブルを開き、そこからロードします - すべてのアプリが同じデータベースを指している場合)
于 2012-08-17T09:14:36.400 に答える