У меня есть простое приложение EAR, работающее на Glassfish с использованием JPA. Он читает записи из моей таблицы БД Oracle и обрабатывает их. После обработки они помечаются как таковые в базе данных, и я затем вызываю clear () в менеджере сущностей, чтобы обработанные объекты можно было отделить и GC'ed. Тем не менее, несмотря на то, что мы добавили использование кучи clear (), общая куча все еще увеличивается и в итоге достигает максимальной кучи. Других предметов, которые могут вызвать утечку, нет, и я понятия не имею, что еще я могу сделать. У нас также отключен кеш JPA.
<property name="eclipselink.cache.shared.default" value="false"/>
Кто-нибудь знает, что еще я могу сделать, чтобы убедиться, что нет объектов JPA? Может быть это как-то связано с транзакциями? Мы используем новую транзакцию каждый раз, когда обновляем последнюю партию записей для обработки.
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
Любые предложения приветствуются. Я знаю, что могу профилировать приложение, но довольно трудно увидеть проблему, и даже если я это сделаю, я ожидаю, что это будут некоторые объекты JPA, которые не собираются, и я не уверен, что мне не хватает в плане очистки сущностей один раз они больше не требуются.
Джеймс