Top Description Fields Constructors Methods
org.eclipse.persistence.config

public Class SystemProperties

extends Object
Class Inheritance
Imports
java.util.concurrent.TimeUnit

This class provides the list of System properties that are recognized by EclipseLink.
Author
tware

Field Summary

Modifier and TypeField and Description
public static final 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

public static final String
ASM_SERVICE

This property control which ASM implementation is used for classes bytecode modification.

public static final String
CONCURRENCY_MANAGER_ACQUIRE_WAIT_TIME

This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.

public static final String
CONCURRENCY_MANAGER_ALLOW_CONCURRENCY_EXCEPTION

This property control (enable/disable) if ConcurrencyException fired when dead-lock diagnostic is enabled.

public static final String
CONCURRENCY_MANAGER_ALLOW_INTERRUPTED_EXCEPTION

This property control (enable/disable) if InterruptedException fired when dead-lock diagnostic is enabled.

public static final 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.

public static final String
CONCURRENCY_MANAGER_BUILD_OBJECT_COMPLETE_WAIT_TIME

This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.

public static final 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.

public static final 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.

public static final String
CONCURRENCY_MANAGER_MAX_SLEEP_TIME

This system property in milliseconds can control thread management in org.eclipse.persistence.internal.helper.ConcurrencyManager.

public static final String
CONCURRENCY_MANAGER_OBJECT_BUILDING_NO_THREADS

This property control number of threads in semaphore in org.eclipse.persistence.internal.descriptors.ObjectBuilder If "eclipselink.concurrency.manager.object.building.semaphore" property is true default value is 10.

public static final String
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING

This property control (enable/disable) semaphore in org.eclipse.persistence.internal.descriptors.ObjectBuilder Object building see org.eclipse.persistence.internal.descriptors.ObjectBuilder could be one of the primary sources pressure on concurrency manager.

public static final String
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS

This property control (enable/disable) semaphore in org.eclipse.persistence.internal.helper.WriteLockManager#acquireRequiredLocks This algorithm org.eclipse.persistence.internal.helper.WriteLockManager#acquireRequiredLocks is being used when a transaction is committing and it is acquire locks to merge the change set.

public static final String
CONCURRENCY_MANAGER_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS_NO_THREADS

This property control number of threads in semaphore in org.eclipse.persistence.internal.helper.WriteLockManager#acquireRequiredLocks If "eclipselink.concurrency.manager.write.lock.manager.semaphore" property is true default value is 2.

public static final String
CONCURRENCY_SEMAPHORE_LOG_TIMEOUT

This property control timeout between log messages in org.eclipse.persistence.internal.helper.ConcurrencySemaphore#acquireSemaphoreIfAppropriate(boolean) when method/thread tries to get permit for the execution.

public static final String
public static final 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.

public static final String
CONVERSION_USE_TIMEZONE

This system property can be set the specific time zone used by ConversionManager to convert LocalDateTime, OffsetDateTime, and OffsetTime types.

public static final 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.

public static final 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.

public static final 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.

public static final String
RECORD_STACK_ON_LOCK

This property is used in conjunction with org.eclipse.persistence.sessions.IdentityMapAccessor.printIdentityMapLocks().

public static final String
WEAVING_OUTPUT_PATH

This property is used to debug weaving issues.

public static final String
WEAVING_REFLECTIVE_INTROSPECTION

This property can be used to tell EclipseLink to process classes in the ASM Default manner.

public static final String
WEAVING_SHOULD_OVERWRITE

This property is used in conjunction with WEAVING_OUTPUT_PATH.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ARCHIVE_FACTORYback to summary
public static final 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

ASM_SERVICEback to summary
public static final String ASM_SERVICE

This property control which ASM implementation is used for classes bytecode modification.

Allowed Values (case sensitive String):

  • "eclipselink" (DEFAULT) - use ASM implementation from org.eclipse.persistence.asm project.
  • "ow2" - use ASM implementation from org.ow2.asm project.
CONCURRENCY_MANAGER_ACQUIRE_WAIT_TIMEback to summary
public static final 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

CONCURRENCY_MANAGER_ALLOW_CONCURRENCY_EXCEPTIONback to summary
public static final 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.
CONCURRENCY_MANAGER_ALLOW_INTERRUPTED_EXCEPTIONback to summary
public static final 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.
CONCURRENCY_MANAGER_ALLOW_STACK_TRACE_READ_LOCKback to summary
public static final 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.
CONCURRENCY_MANAGER_BUILD_OBJECT_COMPLETE_WAIT_TIMEback to summary
public static final 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

CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_MASSIVE_MESSAGEback to summary
public static final 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

CONCURRENCY_MANAGER_MAX_FREQUENCY_DUMP_TINY_MESSAGEback to summary
public static final 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

CONCURRENCY_MANAGER_MAX_SLEEP_TIMEback to summary
public static final 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

CONCURRENCY_MANAGER_OBJECT_BUILDING_NO_THREADSback to summary
public static final String CONCURRENCY_MANAGER_OBJECT_BUILDING_NO_THREADS

This property control number of threads in semaphore in org.eclipse.persistence.internal.descriptors.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.

CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDINGback to summary
public static final String CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_OBJECT_BUILDING

This property control (enable/disable) semaphore in org.eclipse.persistence.internal.descriptors.ObjectBuilder

Object building see org.eclipse.persistence.internal.descriptors.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).
CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKSback to summary
public static final String CONCURRENCY_MANAGER_USE_SEMAPHORE_TO_SLOW_DOWN_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS

This property control (enable/disable) semaphore in org.eclipse.persistence.internal.helper.WriteLockManager#acquireRequiredLocks

This algorithm org.eclipse.persistence.internal.helper.WriteLockManager#acquireRequiredLocks 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).
CONCURRENCY_MANAGER_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS_NO_THREADSback to summary
public static final String CONCURRENCY_MANAGER_WRITE_LOCK_MANAGER_ACQUIRE_REQUIRED_LOCKS_NO_THREADS

This property control number of threads in semaphore in org.eclipse.persistence.internal.helper.WriteLockManager#acquireRequiredLocks 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.

CONCURRENCY_SEMAPHORE_LOG_TIMEOUTback to summary
public static final String CONCURRENCY_SEMAPHORE_LOG_TIMEOUT

This property control timeout between log messages in org.eclipse.persistence.internal.helper.ConcurrencySemaphore#acquireSemaphoreIfAppropriate(boolean) when method/thread tries to get permit for the execution. Default value is 10000 (unit is ms). Allowed values are: long

CONCURRENCY_SEMAPHORE_MAX_TIME_PERMITback to summary
public static final String CONCURRENCY_SEMAPHORE_MAX_TIME_PERMIT

This property control semaphore the maximum time to wait for a permit in org.eclipse.persistence.internal.helper.ConcurrencySemaphore#acquireSemaphoreIfAppropriate(boolean) It's passed to java.util.concurrent.Semaphore#tryAcquire(long, TimeUnit) Default value is 2000 (unit is ms). Allowed values are: long

CONVERSION_USE_DEFAULT_TIMEZONEback to summary
public static final 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.

CONVERSION_USE_TIMEZONEback to summary
public static final String CONVERSION_USE_TIMEZONE

This system property can be set the specific time zone used by ConversionManager to convert LocalDateTime, OffsetDateTime, and OffsetTime types.

DO_NOT_PROCESS_XTOMANY_FOR_QBEback to summary
public static final 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.

ENFORCE_TARGET_SERVERback to summary
public static final 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.

ONETOMANY_DEFER_INSERTSback to summary
public static final 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. In previous versions of EclipseLink this was the default behaviour. Allowed values are: true/false.

RECORD_STACK_ON_LOCKback to summary
public static final 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)

WEAVING_OUTPUT_PATHback to summary
public static final 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

WEAVING_REFLECTIVE_INTROSPECTIONback to summary
public static final 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

WEAVING_SHOULD_OVERWRITEback to summary
public static final 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

Constructor Detail

SystemPropertiesback to summary
public SystemProperties()