統計情報や監視にEJB- @ Singleton(javax.ejb.Singleton)を使用するか、Common @ SessionScoped-Beanに統計情報をキャッシュする方がよいでしょうか?私の質問をクリアするには、ここにある2つのシナリオ:Iクエリー結果を管理するEJB- @ Singleton
シナリオ:
は、ユーザーがWebsessionを開始し、データベース・クエリが統計やDataTableのを表示することができます。これらのクエリは、そのセッション内で完全に満たされています。 10.000のユーザーは10.000の等しいデータベースクエリを作成します。
シナリオII:
ユーザーはWebsessionを開始し、シングルトン・ビーン@前もって初期化から統計やDataTableのために件のデータを再試行します。 @Singleton(javax.ejb.Singleton)は、Server-Startup(@Startup)の開始時にクエリを作成しました。だから、10.000ユーザーはONEキャッシュ(@Singleton)から読み取ることができ、データベースに問い合わせる必要はありません。他の誰かがデータを作成/編集/削除した場合、My @ Singleton-Beanはキャッシュされたデータのリフレッシュをトリガーします。
は、だから私の質問は以下のとおりです。
- んシナリオIIシナリオIよりも良いスケール?私はそう思います。私は正しい?
- 他に注意すべき点がありますか?
- 私が知っているステートレス・ビーンズは@statefulや@Singletonよりはるかにスケールがあります。 @ Stateless-Beanを使用し、JPA/Hibernate Cachesのようなものでクエリをキャッシュすることを検討する必要があります。
- @Singleton(javax.ejb.Singleton)ではなく@ApplicationScoped(javax.enterprise.context)を使用してプロキシを使用する必要がありますか?それは良いでしょうか?
私はJboss ASを使用しています。 – nimo23