0

データベースへのヒットを最小限に抑えてデータベースからのデータを使用する必要があるいくつかの機能があります。このデータは頻繁に変更されないため、アプリのロード時に静的 ConcurrentHashMap を使用してデータをロードし、データベースで新しいデータが追加/変更されると、そのデータはそれぞれのハッシュマップで追加/更新されます。

戦争が 1 回しかなかったため、これは問題なく機能していたので、共有は簡単でした。

しかし、今では 3 つの異なる war と 1 つの EJB が 1 つの Ear の下にあり、それらすべてが同時にデータを共有する必要があります。

そのため、すべての war と EJB が干渉することなくデータにアクセスできる場所にこのデータを保持する方法が必要です。

私はmavenを使用したJSPサーブレットアプリケーションを使用しており、使用されるサーバーはJboss-7.1.1.Finalです。

これを機能させるための最良の方法を提案してください。

4

1 に答える 1

0

キャッシュを保持する Singleton または ApplicationScope コンポーネントを使用して、WAR 内の各アプリケーションによって挿入できるようにすることができます。

または、キャッシュの周りに REST サービスを構築し、それを各アプリケーションで使用することもできます。

それでも、独自のキャッシュを構築しようとしないことをお勧めします。標準のJPAを使用し、開始時にすべてのレコードをロードし、JPA実装にキャッシュを任せることができます-変更されないデータのデータベースヒットは多くありません。

于 2014-06-13T13:40:49.140 に答える