JPAを使用してGlassfishで実行される単純なEARアプリケーションがあります。私のOracle DBテーブルからレコードを読み取り、処理します。処理されると、データベースにマークされ、エンティティマネージャでclear()を呼び出して、処理されたオブジェクトを切り離してGCで処理できるようにします。しかし、clear()ヒープの使用法を追加してから、ヒープ全体が減少し、最終的に最大ヒープにヒットします。リークの原因となる可能性のある他の物はありません。もっと何ができるのか分かりません。 JPAキャッシュもあります。Java Persistence(JPA)ヒープ問題
<property name="eclipselink.cache.shared.default" value="false"/>
JPAオブジェクトが保持されていないことを確認するために何ができるのですか?トランザクションとは何か関係ありますか?処理するレコードの最後のバッチを更新するたびに、新しいトランザクションを使用します。
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
何か提案があります。私はアプリケーションをプロファイルすることができますが、問題を見るのは非常に難しく、私がそれを収集していないJPAオブジェクトになると予想しても、エンティティを1回クリアするという点で私が何を欠いているのか分かりませんそれらはもはや必要ではない。
James
よろしくお願いします。 – skaffman