public class SystemProperties
extends java.lang.Object
Modifier and Type | Field and 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 Archive
|
static 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) if
ConcurrencyException fired when dead-lock diagnostic is enabled. |
static java.lang.String |
CONCURRENCY_MANAGER_ALLOW_INTERRUPTED_EXCEPTION
This property control (enable/disable) if
InterruptedException 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 in
ObjectBuilder
If "eclipselink.concurrency.manager.object.building.semaphore" property is true default value is 10. |
static java.lang.String |
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING
This property control (enable/disable) semaphore in
ObjectBuilder
Object building see ObjectBuilder could be one of the
primary sources pressure on concurrency manager. |
static java.lang.String |
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS
This property control (enable/disable) semaphore in
WriteLockManager.acquireRequiredLocks(org.eclipse.persistence.internal.sessions.MergeManager, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)
This algorithm
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. |
static 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 is true default value is 2. |
static 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. |
static 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 to Semaphore.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 to
false 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 and Description |
---|
SystemProperties() |
public static final java.lang.String ARCHIVE_FACTORY
public static final java.lang.String WEAVING_OUTPUT_PATH
public static final java.lang.String WEAVING_SHOULD_OVERWRITE
public static final java.lang.String WEAVING_REFLECTIVE_INTROSPECTION
public static final java.lang.String RECORD_STACK_ON_LOCK
public static final java.lang.String DO_NOT_PROCESS_XTOMANY_FOR_QBE
public static final java.lang.String ONETOMANY_DEFER_INSERTS
false
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.public static final java.lang.String ENFORCE_TARGET_SERVER
public static final java.lang.String CONVERSION_USE_TIMEZONE
public static final java.lang.String CONVERSION_USE_DEFAULT_TIMEZONE
public static final java.lang.String CONCURRENCY_MANAGER_ACQUIRE_WAIT_TIME
public static final java.lang.String CONCURRENCY_MANAGER_BUILD_OBJECT_COMPLETE_WAIT_TIME
public static final java.lang.String CONCURRENCY_MANAGER_MAX_SLEEP_TIME
public static final java.lang.String CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_TINY_MESSAGE
public static final java.lang.String CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_MASSIVE_MESSAGE
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.
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.
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.
public static final java.lang.String CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING
This property control (enable/disable) semaphore in ObjectBuilder
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.
Enable true
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).
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 WriteLockManager.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).
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 is true
default value is 10. Allowed values are: int
If "eclipselink.concurrency.manager.object.building.semaphore" property is false
(DEFAULT) number of threads is unlimited.
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 is true
default value is 2. Allowed values are: int
If "eclipselink.concurrency.manager.write.lock.manager.semaphore" property is false
(DEFAULT) number of threads is unlimited.
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 to Semaphore.tryAcquire(long, TimeUnit)
Default value is 2000 (unit is ms). Allowed values are: long
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