Class SystemProperties
- java.lang.Object
-
- org.eclipse.persistence.config.SystemProperties
-
public class SystemProperties extends java.lang.Object
This class provides the list of System properties that are recognized by EclipseLink.- Author:
- tware
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ARCHIVE_FACTORY
Configures the factory class we use to produce instances of org.eclispe.persistence.jpa.Archive These instances are used to examine persistence units and the files within them and are used for discovery of classes in the persistence unit Allows user-provided ArchiveFactory and Archivestatic java.lang.String
CONCURRENCY_MANAGER_ACQUIRE_WAIT_TIME
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.static java.lang.String
CONCURRENCY_MANAGER_ALLOW_CONCURRENCY_EXCEPTION
This property control (enable/disable) ifConcurrencyException
fired when dead-lock diagnostic is enabled.static java.lang.String
CONCURRENCY_MANAGER_ALLOW_INTERRUPTED_EXCEPTION
This property control (enable/disable) ifInterruptedException
fired when dead-lock diagnostic is enabled.static java.lang.String
CONCURRENCY_MANAGER_ALLOW_STACK_TRACE_READ_LOCK
This property control (enable/disable) collection debug/trace information during ReadLock acquisition, when dead-lock diagnostic is enabled.static java.lang.String
CONCURRENCY_MANAGER_BUILD_OBJECT_COMPLETE_WAIT_TIME
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.static java.lang.String
CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_MASSIVE_MESSAGE
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager and org.eclipse.persistence.internal.helper.ConcurrencyUtil.static java.lang.String
CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_TINY_MESSAGE
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager and org.eclipse.persistence.internal.helper.ConcurrencyUtil.static java.lang.String
CONCURRENCY_MANAGER_MAX_SLEEP_TIME
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.static java.lang.String
CONCURRENCY_MANAGER_OBJECT_BUILDING_NO_THREADS
This property control number of threads in semaphore inObjectBuilder
If "eclipselink.concurrency.manager.object.building.semaphore" property istrue
default value is 10.static java.lang.String
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING
This property control (enable/disable) semaphore inObjectBuilder
static java.lang.String
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS
This property control (enable/disable) semaphore inWriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
static java.lang.String
CONCURRENCY_MANAGER_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS_NO_THREADS
This property control number of threads in semaphore inWriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
If "eclipselink.concurrency.manager.write.lock.manager.semaphore" property istrue
default value is 2.static java.lang.String
CONCURRENCY_SEMAPHORE_LOG_TIMEOUT
This property control timeout between log messages inConcurrencySemaphore.acquireSemaphoreIfAppropriate(boolean)
when method/thread tries to get permit for the execution.static java.lang.String
CONCURRENCY_SEMAPHORE_MAX_TIME_PERMIT
This property control semaphore the maximum time to wait for a permit inConcurrencySemaphore.acquireSemaphoreIfAppropriate(boolean)
It's passed toSemaphore.tryAcquire(long, TimeUnit)
Default value is 2000 (unit is ms).static java.lang.String
CONVERSION_USE_DEFAULT_TIMEZONE
This system property can be set to restore ConversionManager behavior with converting LocalDateTime, OffsetDateTime, and OffsetTime types back to using the JVM's default time zone instead of UTC.static java.lang.String
CONVERSION_USE_TIMEZONE
This system property can be set the specific time zone used by ConversionManager to convert LocalDateTime, OffsetDateTime, and OffsetTime types.static java.lang.String
DO_NOT_PROCESS_XTOMANY_FOR_QBE
This property can be set to disable processing of X-Many relationship attributes for Query By Example objects.static java.lang.String
ENFORCE_TARGET_SERVER
This system property can be set to override target server platform set by the Java EE container with the one either set in persistence.xml or auto detected.static java.lang.String
ONETOMANY_DEFER_INSERTS
This property can be set tofalse
to enable UPDATE call to set foreign key value in the target row in unidirectional 1-Many mapping with not nullable FK.static java.lang.String
RECORD_STACK_ON_LOCK
This property is used in conjunction with org.eclipse.persistence.sessions.IdentityMapAccessor.printIdentityMapLocks().static java.lang.String
WEAVING_OUTPUT_PATH
This property is used to debug weaving issues.static java.lang.String
WEAVING_REFLECTIVE_INTROSPECTION
This property can be used to tell EclipseLink to process classes in the ASM Default manner.static java.lang.String
WEAVING_SHOULD_OVERWRITE
This property is used in conjunction with WEAVING_OUTPUT_PATH.
-
Constructor Summary
Constructors Constructor Description SystemProperties()
-
-
-
Field Detail
-
ARCHIVE_FACTORY
public static final java.lang.String ARCHIVE_FACTORY
Configures the factory class we use to produce instances of org.eclispe.persistence.jpa.Archive These instances are used to examine persistence units and the files within them and are used for discovery of classes in the persistence unit Allows user-provided ArchiveFactory and Archive- See Also:
- Constant Field Values
-
WEAVING_OUTPUT_PATH
public static final java.lang.String WEAVING_OUTPUT_PATH
This property is used to debug weaving issues. When it is set, weaved classes will be output to the given path as they are weaved- See Also:
- Constant Field Values
-
WEAVING_SHOULD_OVERWRITE
public static final java.lang.String WEAVING_SHOULD_OVERWRITE
This property is used in conjunction with WEAVING_OUTPUT_PATH. By default, existing classes on the path provided to WEAVING_OUTPUT_PATH will not be overridden. If this is set to true, they will be- See Also:
- Constant Field Values
-
WEAVING_REFLECTIVE_INTROSPECTION
public static final java.lang.String WEAVING_REFLECTIVE_INTROSPECTION
This property can be used to tell EclipseLink to process classes in the ASM Default manner. The fix for bug 370975 changes EclipseLink's weaving support to use ASM itself to examine class hierarchies. Setting this flag to true will cause us to use the default reflection mechanism again. This flag provides a means to workaround any issues encountered with the ASM-based weaving introspection- See Also:
- Constant Field Values
-
RECORD_STACK_ON_LOCK
public static final java.lang.String RECORD_STACK_ON_LOCK
This property is used in conjunction with org.eclipse.persistence.sessions.IdentityMapAccessor.printIdentityMapLocks(). Setting this property will cause EclipseLink to record the stack trace of the lock acquisition and print it along with the identity map locks. This should only be set if the thread that owns a lock is not 'stuck' but still owns the lock when a normal printIdentityMapLocks is done. This can also be set in code statically through ConcurrencyManager.setShouldTrackStack(true)- See Also:
- Constant Field Values
-
DO_NOT_PROCESS_XTOMANY_FOR_QBE
public static final java.lang.String DO_NOT_PROCESS_XTOMANY_FOR_QBE
This property can be set to disable processing of X-Many relationship attributes for Query By Example objects. In previous versions of EclipseLink these attributes would have been ignored but as of this release they will be processed into the expression.- See Also:
- Constant Field Values
-
ONETOMANY_DEFER_INSERTS
public static final java.lang.String ONETOMANY_DEFER_INSERTS
This property can be set tofalse
to enable UPDATE call to set foreign key value in the target row in unidirectional 1-Many mapping with not nullable FK. In previous versions of EclipseLink this was the default behaviour. Allowed values are: true/false.- See Also:
- Constant Field Values
-
ENFORCE_TARGET_SERVER
public static final java.lang.String ENFORCE_TARGET_SERVER
This system property can be set to override target server platform set by the Java EE container with the one either set in persistence.xml or auto detected.- See Also:
- Constant Field Values
-
CONVERSION_USE_TIMEZONE
public static final java.lang.String CONVERSION_USE_TIMEZONE
This system property can be set the specific time zone used by ConversionManager to convert LocalDateTime, OffsetDateTime, and OffsetTime types.- See Also:
- Constant Field Values
-
CONVERSION_USE_DEFAULT_TIMEZONE
public static final java.lang.String CONVERSION_USE_DEFAULT_TIMEZONE
This system property can be set to restore ConversionManager behavior with converting LocalDateTime, OffsetDateTime, and OffsetTime types back to using the JVM's default time zone instead of UTC. This restores behavior prior to fixing Bug 538296. This property is ignored if the System Property CONVERSION_USE_TIMEZONE has been set.- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_ACQUIRE_WAIT_TIME
public static final java.lang.String CONCURRENCY_MANAGER_ACQUIRE_WAIT_TIME
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager. It control how much time loop wait before it try acquire lock for current thread again. It value is set above above 0 dead lock detection mechanism and related extended logging will be activated. Default value is 0 (unit is ms). Allowed values are: long- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_BUILD_OBJECT_COMPLETE_WAIT_TIME
public static final java.lang.String CONCURRENCY_MANAGER_BUILD_OBJECT_COMPLETE_WAIT_TIME
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager. It control how much time ConcurrencyManager will wait before it will identify, that thread which builds new object/entity instance should be identified as a potential dead lock source. It leads into some additional log messages. Default value is 0 (unit is ms). In this case extended logging is not active. Allowed values are: long- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_MAX_SLEEP_TIME
public static final java.lang.String CONCURRENCY_MANAGER_MAX_SLEEP_TIME
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager. It control how long we are willing to wait before firing up an exception Default value is 40000 (unit is ms). Allowed values are: long- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_TINY_MESSAGE
public static final java.lang.String CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_TINY_MESSAGE
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager and org.eclipse.persistence.internal.helper.ConcurrencyUtil. It control how frequently the tiny dump log message is created. Default value is 40000 (unit is ms). Allowed values are: long- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_MASSIVE_MESSAGE
public static final java.lang.String CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_MASSIVE_MESSAGE
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager and org.eclipse.persistence.internal.helper.ConcurrencyUtil. It control how frequently the massive dump log message is created. Default value is 60000 (unit is ms). Allowed values are: long- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_ALLOW_INTERRUPTED_EXCEPTION
public static final java.lang.String CONCURRENCY_MANAGER_ALLOW_INTERRUPTED_EXCEPTION
This property control (enable/disable) if
InterruptedException
fired when dead-lock diagnostic is enabled.Allowed Values (case sensitive String):
- "
false
" - if aborting frozen thread is not effective it is preferable to not fire the interrupted exception let the system In the places where use this property normally if a thread is stuck it is because it is doing object building. Blowing the threads ups is not that dangerous. It can be very dangerous for production if the dead lock ends up not being resolved because the productive business transactions will become cancelled if the application has a limited number of retries to for example process an MDB. However, the code spots where we use this constant are not as sensible as when the write lock manager is starving to run commit. - "
true
" (DEFAULT) - if we want the to fire up an exception to try to get the current thread to release all of its acquired locks and allow other threads to progress.
- See Also:
- Constant Field Values
- "
-
CONCURRENCY_MANAGER_ALLOW_CONCURRENCY_EXCEPTION
public static final java.lang.String CONCURRENCY_MANAGER_ALLOW_CONCURRENCY_EXCEPTION
This property control (enable/disable) if
ConcurrencyException
fired when dead-lock diagnostic is enabled.Allowed Values (case sensitive String):
- "
false
" - if aborting frozen thread is not effective it is preferable to not fire the concurrency exception let the system freeze and die and force the administration to kill the server. This is preferable to aborting the transactions multiple times without success in resolving the dead lock and having business critical messages that after 3 JMS retries are discarded out. Failing to resolve a dead lock can have terrible impact in system recovery unless we have infinite retries for the business transactions. - "
true
" (DEFAULT) - if we want the to fire up an exception to try to get the current thread to release all of its acquired locks and allow other threads to progress.
- See Also:
- Constant Field Values
- "
-
CONCURRENCY_MANAGER_ALLOW_STACK_TRACE_READ_LOCK
public static final java.lang.String CONCURRENCY_MANAGER_ALLOW_STACK_TRACE_READ_LOCK
This property control (enable/disable) collection debug/trace information during ReadLock acquisition, when dead-lock diagnostic is enabled.
Allowed Values (case sensitive String):
- "
false
" (DEFAULT) - don't collect debug/trace information during ReadLock acquisition - "
true
" - collect debug/trace information during ReadLock acquisition. Has negative impact to the performance.
- See Also:
- Constant Field Values
- "
-
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING
public static final java.lang.String CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING
This property control (enable/disable) semaphore in
Object building seeObjectBuilder
ObjectBuilder
could be one of the primary sources pressure on concurrency manager. Most of the cache key acquisition and releasing is taking place during object building. Enabletrue
this property to try reduce the likelihood of having dead locks is to allow less threads to start object building in parallel. In this case there should be negative impact to the performance. Note: Parallel access to the same entity/entity tree from different threads is not recommended technique in EclipseLink.- "
true
" - means we want to override vanilla behavior and use a semaphore to not allow too many threads in parallel to do object building - "
false
" (DEFAULT) - means just go ahead and try to build the object without any semaphore (false is vanilla behavior).
- See Also:
- Constant Field Values
- "
-
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS
public static final java.lang.String CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS
This property control (enable/disable) semaphore in
This algorithmWriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
WriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
is being used when a transaction is committing and it is acquire locks to merge the change set. It should happen if algorithm has trouble when multiple threads report change sets on the same entity (e.g. one-to-many relations of master detail being enriched with more details on this master). Note: Parallel access to the same entity/entity tree from different threads is not recommended technique in EclipseLink.- "
true
" - means we want to override vanilla behavior and use a semaphore to not allow too many threads. In this case there should be negative impact to the performance. - "
false
" (DEFAULT) - means just go ahead and try to build the object without any semaphore (false is vanilla behavior).
- See Also:
- Constant Field Values
- "
-
CONCURRENCY_MANAGER_OBJECT_BUILDING_NO_THREADS
public static final java.lang.String CONCURRENCY_MANAGER_OBJECT_BUILDING_NO_THREADS
This property control number of threads in semaphore in
ObjectBuilder
If "eclipselink.concurrency.manager.object.building.semaphore" property istrue
default value is 10. Allowed values are: int If "eclipselink.concurrency.manager.object.building.semaphore" property isfalse
(DEFAULT) number of threads is unlimited.- See Also:
- Constant Field Values
-
CONCURRENCY_MANAGER_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS_NO_THREADS
public static final java.lang.String CONCURRENCY_MANAGER_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS_NO_THREADS
This property control number of threads in semaphore in
WriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
If "eclipselink.concurrency.manager.write.lock.manager.semaphore" property istrue
default value is 2. Allowed values are: int If "eclipselink.concurrency.manager.write.lock.manager.semaphore" property isfalse
(DEFAULT) number of threads is unlimited.- See Also:
- Constant Field Values
-
CONCURRENCY_SEMAPHORE_MAX_TIME_PERMIT
public static final java.lang.String CONCURRENCY_SEMAPHORE_MAX_TIME_PERMIT
This property control semaphore the maximum time to wait for a permit in
ConcurrencySemaphore.acquireSemaphoreIfAppropriate(boolean)
It's passed toSemaphore.tryAcquire(long, TimeUnit)
Default value is 2000 (unit is ms). Allowed values are: long- See Also:
- Constant Field Values
-
CONCURRENCY_SEMAPHORE_LOG_TIMEOUT
public static final java.lang.String CONCURRENCY_SEMAPHORE_LOG_TIMEOUT
This property control timeout between log messages in
ConcurrencySemaphore.acquireSemaphoreIfAppropriate(boolean)
when method/thread tries to get permit for the execution. Default value is 10000 (unit is ms). Allowed values are: long- See Also:
- Constant Field Values
-
-