0

クラスタ メンバの 1 つだけではなく、すべてのクラスタ メンバで実行する EJB タイマー タスクが必要です。

WAS8 を使用して、DB を使用してパーシスタント タイマーのデータを格納するようにタイマー サービスを構成します。すべての永続的なタイマーは、1 つのクラスター メンバーでのみ実行されているようです。非永続タイマーがすべてのクラスター メンバーで実行されるというのは本当ですか?

4

1 に答える 1

1

はい - 同じデータベースを共有しています。すべての永続的なタイマーは、1 つのクラスター メンバーでのみ実行されているようです。

ドキュメントによると

クラスターの共有または共通タイマー サービス データベース。タイマーは、任意のサーバー プロセスまたはクラスター メンバーで作成およびアクセスできます。... ただし、すべてのタイマーはクラスター内の単一のサーバーで実行されます。つまり、Bean のタイムアウト メソッドは、単一のサーバー上のすべてのタイマーに対して実行されます。どのサーバーがタイマーを実行するかは、どのサーバー プロセスが共通データベース テーブルのロックを取得するかによって異なります。

非永続タイマーがすべてのクラスター メンバーで実行されるというのは本当ですか?

非永続タイマーはタイマー db を使用しないため、各クラスター ノードで独立して実行されます。サーバーがシャットダウンされるたびに、サーバーの再起動後に非永続タイマーを作成する必要があることに注意してください。

クラスタの問題はプラットフォームに依存するため、質問に websphere タグを追加できます。

于 2013-10-31T13:00:57.387 に答える