1

おい!私はJava EEとStackowerflowの両方に比較的慣れていないので、親切にしてください:-)

状態が変化したときに Java メッセージを送信するトリガーとなるデバイスがたくさんあります。これらのデバイスは通常、約 30 ~ 90 分間隔でアクティブになります。各イベント メッセージには、イベントの詳細に加えてデバイス ID が含まれています。

私のアプリケーションの中心は、これらのイベントをサブスクライブするメッセージ駆動型 Bean です。イベントを取得するたびに、データベースにアクセスしてデバイスに関する情報を検索する必要があります。

ステートフル セッション Bean をアクティブな各デバイスに関連付けることができれば、非常にすばらしいことです。これが Web アプリケーションであった場合、http セッションを使用して、ステートフル Bean へのハンドルまたは参照を格納していたでしょう (そうですよね?)。メッセージ Bean からこれをアーカイブする方法はありますか?

4

2 に答える 2

2

あなたが説明したようにそれができないことを除いて、それは素晴らしいでしょう。MDB(およびSLSB)は定義上ステートレスであるため、呼び出し中のみ会話を続けることが安全です。

最終的に仕様を破り、どこかに静的属性を作成する可能性があります(おそらく、MDB自体に)が、これは確かに移植性がなく、スケーラブルでもありません。

私の提案は、JPAレベルでキャッシュを有効にすることです(詳細については、永続性プロバイダーの設定を参照してください)。これにより、必要なデータを非常に高速に(本当に高速に)検索できます。これはポータブルでクラスターフレンドリーです。それが私のプロジェクトでそれを行うために使用する方法であり、私はそれに非常に満足しています。

それが役に立てば幸い。

于 2009-03-11T03:54:04.640 に答える
0

特定の製品を推奨するのはあまり得意ではありませんが、Terracotta サーバーはこのようなニーズに対応しているのではないでしょうか?

于 2009-03-18T15:21:48.367 に答える