クラスターの各ノードで EJB タイマー (@Schedule) を実行できますか? タイマーを非永続的であると宣言するだけで十分ですか? 両方のノードからアクセスできるデータベースが必要ですか、それとも内部の derby データベースを使用できますか?
この要件の背後にある使用例は、各ノードのメモリ内の一部のデータを更新することです。
AppServer は Glassfish 3.1 (Java EE 6) です。
クラスターの各ノードで EJB タイマー (@Schedule) を実行できますか? タイマーを非永続的であると宣言するだけで十分ですか? 両方のノードからアクセスできるデータベースが必要ですか、それとも内部の derby データベースを使用できますか?
この要件の背後にある使用例は、各ノードのメモリ内の一部のデータを更新することです。
AppServer は Glassfish 3.1 (Java EE 6) です。
はい、非永続的なタイマーが必要です。EJB 3.1 仕様によると:
非永続タイマーは、プログラムによって、または (
@Schedule
デプロイメント記述子を使用して) 自動で作成できます。自動非永続タイマーの場合、コンテナーは、コンテナーが分散されている各JVM のアプリケーションの初期化中に、新しい非永続タイマーを作成します。
(余談ですが、Derby データベースは、Derby ネットワーク サーバーを使用している場合にのみ、複数のプロセスで共有できます。複数のアプリケーション サーバー プロセスが Derby データベースを同時に開くことはできません。)