0

WebSphere ApplicationServer 8 を使用して、クラスター化された環境で実行されている JEE6 アプリケーションに問題があります。 検索インデックスは、UI でのクイック検索 (Lucene を使用) に使用されます。新しいデータが対応する DB に到着した後、インデックスを再作成する必要があります。層。これを実現するために、アプリケーションに JMS メッセージを送信すると、検索インデックスが更新されます。問題は、メッセージがクラスター メンバーの 1 つにしか届かないことです。そのため、検索インデックスだけが最新です。他のサーバーでは、古いままです。

検索インデックスがすべてのクラスター メンバーで更新されるようにするにはどうすればよいですか? すべてのサーバーで何らかの方法でメッセージを受信できますか? または、これを行うより良い方法はありますか?

4

1 に答える 1

0

考えられる解決策を見つけました。通常、キューを介して配信される JMS メッセージは、クラスター メンバーの 1 つだけに送信されます。EJB タイマーを使用して、すべてのクラスター メンバーに情報を取得する方法を見つけました。非永続タイマーを作成するには、すべてのクラスター メンバーでコールバック メソッドを呼び出す必要があります。これは、すべてのクラスター メンバーでローカル検索インデックスを再作成する便利な方法です。

永続タイマーはクラスターで同期され、クラスター メンバーの 1 つでのみ実行されるため、非永続 ejb タイマーであることが重要です。

于 2013-10-31T15:47:14.553 に答える