Java Eclipselink什么时候使用DelferredChangeDetectionPolicy(尽管配置为其他)?
我正在调查基于OSGi的应用程序中的一个严重性能问题,该应用程序使用Eclipselink作为JPA类的持久性提供者。该问题在应用程序的版本更新后突然出现,但在回滚后并没有消失。配置没有更改。系统中有大量的数据(Eclipselink的内部注册表统计了大约200万个实体),但数据量增长相当平稳 我正在调查的消息来源包括。目前,Eclipselink使用的是Java Eclipselink什么时候使用DelferredChangeDetectionPolicy(尽管配置为其他)?,java,eclipselink,Java,Eclipselink,我正在调查基于OSGi的应用程序中的一个严重性能问题,该应用程序使用Eclipselink作为JPA类的持久性提供者。该问题在应用程序的版本更新后突然出现,但在回滚后并没有消失。配置没有更改。系统中有大量的数据(Eclipselink的内部注册表统计了大约200万个实体),但数据量增长相当平稳 我正在调查的消息来源包括。目前,Eclipselink使用的是DeferredChangeDetectionPolicy(由调试器确定),据称其效率低于AttributeChangeTrackingPol
DeferredChangeDetectionPolicy
(由调试器确定),据称其效率低于AttributeChangeTrackingPolicy
,而且对我的场景来说似乎也没有意义
现在,我已经为我的持久化单元显式地配置了属性更改跟踪策略。此外,它应该是JPA注释类的默认值
在问题出现之前,我不知道使用了哪种更改检测策略。我正在调查Eclipselink出于某种我不知道的原因切换它的可能性。有这样的原因吗?当编织不可用/配置时,EclipseLink将使用延迟更改跟踪。您是否配置了编织(动态或静态)。如果你在春分点跑步,你可以使用动态[1]或静态。在其他OSGi框架上,您仅限于静态编织 --肖恩
[1] 您使用的是什么版本的EclipseLink?您从和升级到了什么 您的所有实体都存在此问题吗?如果是这样的话,那么肖恩的答案很有可能 您到底遇到了什么问题?您确定它是通过不同的更改跟踪实现的,而不是其他地方
如果您在一个或几个实体上遇到这种情况,您是否在升级过程中添加/更改了任何映射 我更新了自己的应用程序,它使用
javax.persistence
API,而不是Eclipselink。我使用的是1.1.0。但是,将我的应用程序回滚到以前的版本并不能消除问题。这似乎就是问题所在。谢谢所以,在Felix上运行时,我需要静态编织,对吗?这似乎也回答了是的,您可以静态编织您的持久性单元包。确保将持久性单元属性“eclipselink.weaving”设置为“static”。看见