Class SystemProperties
- Author:
- tware
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
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 final String
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.static final String
This property control (enable/disable) ifConcurrencyException
fired when dead-lock diagnostic is enabled.static final String
This property control (enable/disable) ifInterruptedException
fired when dead-lock diagnostic is enabled.static final String
This property control (enable/disable) collection debug/trace information during ReadLock acquisition, when dead-lock diagnostic is enabled.static final String
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.static final String
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager and org.eclipse.persistence.internal.helper.ConcurrencyUtil.static final String
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager and org.eclipse.persistence.internal.helper.ConcurrencyUtil.static final String
This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.static final String
This property control number of threads in semaphore inObjectBuilder
If "eclipselink.concurrency.manager.object.building.semaphore" property istrue
default value is 10.static final String
This property control (enable/disable) semaphore inObjectBuilder
static final String
This property control (enable/disable) semaphore inWriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
static final String
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 final String
This property control timeout between log messages inConcurrencySemaphore.acquireSemaphoreIfAppropriate(boolean)
when method/thread tries to get permit for the execution.static final String
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 final String
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 final String
This system property can be set the specific time zone used by ConversionManager to convert LocalDateTime, OffsetDateTime, and OffsetTime types.static final String
This property can be set to disable processing of X-Many relationship attributes for Query By Example objects.static final String
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 final String
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 final String
This property is used in conjunction with org.eclipse.persistence.sessions.IdentityMapAccessor.printIdentityMapLocks().static final String
This property is used to debug weaving issues.static final String
This property can be used to tell EclipseLink to process classes in the ASM Default manner.static final String
This property is used in conjunction with WEAVING_OUTPUT_PATH. -
Constructor Summary
-
Method Summary
-
Field Details
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
- "
-
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:
- "
-
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:
- "
-
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:
- "
-
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS
public static final String CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKSThis 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:
- "
-
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:
-
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:
-
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:
-
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:
-
-
Constructor Details
-
SystemProperties
public SystemProperties()
-