Module org.eclipse.persistence.core
Package org.eclipse.persistence.config
Class MergeManagerOperationMode
java.lang.Object
org.eclipse.persistence.config.MergeManagerOperationMode
INTERNAL:
Purpose: It is data model behind SystemProperties.CONCURRENCY_MANAGER_ALLOW_GET_CACHE_KEY_FOR_MERGE_MODE or PersistenceUnitProperties.CONCURRENCY_MANAGER_ALLOW_GET_CACHE_KEY_FOR_MERGE_MODE.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
ORIGIN
(DEFAULT) - There is infinite Object.wait() call in case of some conditions during time when object/entity referred fromorg.eclipse.persistence.internal.identitymaps.CacheKey
is locked and modified by another thread.static final String
WAITLOOP
- Merge manager will try in the loop with timeout waitcacheKey.wait(ConcurrencyUtil.SINGLETON.getAcquireWaitTime());
fetch object/entity from CacheKey. -
Method Summary
-
Field Details
-
ORIGIN
ORIGIN
(DEFAULT) - There is infinite Object.wait() call in case of some conditions during time when object/entity referred fromorg.eclipse.persistence.internal.identitymaps.CacheKey
is locked and modified by another thread. In some cases it should leads into deadlock.- See Also:
-
WAITLOOP
WAITLOOP
- Merge manager will try in the loop with timeout waitcacheKey.wait(ConcurrencyUtil.SINGLETON.getAcquireWaitTime());
fetch object/entity from CacheKey. If fetch will be successful object/entity loop finish and continue with remaining code. If not @{code java.lang.InterruptedException} is thrown and caught and used CacheKey instance status is set into invalidation state. This strategy avoid deadlock issue, but there should be impact to the performance.- See Also:
-