Я исследую серьезную проблему с производительностью в моем приложении на основе OSGi, которое использует Eclipselink в качестве поставщика постоянства для классов JPA.Проблема возникла очень внезапно после обновления версии приложения, но не исчезла после отката.Конфигурация не изменилась.В системе есть нетривиальный объем данных (внутренний реестр Eclipselink насчитывает около 2 миллионов объектов), но этот объем рос довольно плавно.
Среди источников, которые я исследую, есть политика обнаружения изменений ..В настоящее время Eclipselink использует DeferredChangeDetectionPolicy
(как определено с помощью отладчика), который, как утверждается, менее эффективен, чем AttributeChangeTrackingPolicy
, и, похоже, не имеет смысла для моего сценария.
Теперь,Я явно настроил Политику отслеживания изменений атрибутов для моего модуля персистентности.Кроме того, это должно быть по умолчанию в любом случае для аннотированных классов JPA.
До того, как возникла проблема, я понятия не имел, какая политика обнаружения изменений использовалась.Я исследую возможность того, что Eclipselink переключил его по неизвестной мне причине.Есть ли такая причина?