0

共通クラス (ドメイン オブジェクト、ユーティリティ、および JPA2 - 永続化サービス) を 1 つの jar にパックしました。他の 2 つのアプリケーションのライブラリに jar を含め、各アプリケーションの永続化ユニットとエンティティ マネージャーを個別に構成します。どちらのアプリも同じ tomcat にサーブレットとしてデプロイされます。ただし、一方のアプリケーションが MySQL-DB のデータを操作すると、他方のアプリケーションは更新されたデータを使用しません。

一元化された Persistence Service を使用して、すべてのアプリケーションが最新のデータにアクセスできるようにするにはどうすればよいですか? JNDI を使用するか、単一の WAR としてではなく、すべてを EAR としてパッケージ化する必要がありますか?

4

1 に答える 1

0

これは、同じデータベースにアクセスする 2 つの異なる JPA アプリケーションを使用するのと似ています。この場合、独自の L2 キャッシュを使用する各アプリが問題を悪化させます。コメントに記載されているように、アプリケーションに L2 キャッシュを同期させることができます。または、EntityManager の使用状況を評価して、それらが長期間保持されていないこと、または時々クリアされることを確認できます。必要な場合にのみ EM を取得し、プロセスが完了したら、EM を閉じるかクリアします。L2 キャッシュを使用しない場合、これにより、必要に応じてトランザクション操作に合わせてデータベースからデータが読み込まれます。

古いデータは単一のアプリケーション使用でも発生する可能性があるため、古いデータで上書きされないように楽観的ロックを使用することを強くお勧めします。

于 2013-01-17T13:10:28.517 に答える