[
https://issues.apache.org/jira/browse/DERBY-6220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13673223#comment-13673223
]
Rick Hillegas commented on DERBY-6220:
--------------------------------------
Here is an attempt to distill the information from the previous analysis.
The derby.* properties live in several property sets:
JVM - Properties set on the JVM boot command line (mentioned in the Developer's
Guide).
DB - Properties set in the database (mentioned in the Developer's Guide).
DERBY - Properties set in derby.properties (mentioned in the Developer's Guide).
SERVICE - The service.properties file of the database (not documented).
These sets are searched in several orders, depending on which property is
needed. Details of these search orders follow later in this comment:
SYSTEM_ORDER (via the PropertyUtil.getSystem*() methods)
SERVICE_ORDER (via the PropertyUtil.getService*() methods)
BOOT_ORDER (via PropertyUtil.getPropertyFromSet())
DB_ONLY_ORDER (via PropertyUtil.getDatabaseProperty())
PRIVATE_ORDER (what's in service.properties)
INDEX_STATS_ORDER (a special set of rules)
SQL_AUTH_ORDER (a special set of rules)
-------------- SYSTEM_ORDER (via the PropertyUtil.getSystem*() methods)
------------------
look in JVM;
otherwise look in DERBY;
Covers these properties:
LOG_SEVERITY_LEVEL
EXT_DIAG_SEVERITY_LEVEL
LOG_BOOT_TRACE
ERRORLOG_FILE_PROPERTY
ERRORLOG_METHOD_PROPERTY
ERRORLOG_FIELD_PROPERTY
LOG_FILE_APPEND
SYSTEM_HOME_PROPERTY
BOOT_ALL
FORCE_DATABASE_LOCK
STORAGE_TEMP_DIRECTORY
DURABILITY_PROPERTY
REPLICATION_LOG_BUFFER_SIZE
REPLICATION_MIN_SHIPPING_INTERVAL
REPLICATION_MAX_SHIPPING_INTERVAL
REPLICATION_VERBOSE
START_DRDA
DRDA_PROP_LOGCONNECTIONS
DRDA_PROP_TRACEALL
DRDA_PROP_TRACE
DRDA_PROP_TRACEDIRECTORY
DRDA_PROP_MINTHREADS
DRDA_PROP_MAXTHREADS
DRDA_PROP_TIMESLICE
DRDA_PROP_SSL_MODE
DRDA_PROP_SECURITYMECHANISM
DRDA_PROP_PORTNUMBER
DRDA_PROP_HOSTNAME
DRDA_PROP_KEEPALIVE
DRDA_PROP_STREAMOUTBUFFERSIZE
STORAGE_USE_DEFAULT_FILE_PERMISSIONS
-------------- SERVICE_ORDER (via the PropertyUtil.getService*() methods)
------------------
if ( derby.database.propertiesOnly is set in the database )
{
then only look in DB;
}
else
{
look in JVM;
otherwise look in DB;
otherwise look in DERBY;
}
Covers these properties:
LOCKS_ESCALATION_THRESHOLD
PAGE_SIZE_PARAMETER
ROW_LOCKING
LANG_SEQUENCE_PREALLOCATOR
PROP_XA_TRANSACTION_TIMEOUT
READ_ONLY_ACCESS_USERS_PROPERTY
AUTHENTICATION_SERVER_PARAMETER
DEFAULT_CONNECTION_MODE_PROPERTY
FULL_ACCESS_USERS_PROPERTY
DATABASE_CLASSPATH
-------------- BOOT_ORDER (via PropertyUtil.getPropertyFromSet())
------------------
dbOnly = true if derby.database.propertiesOnly=true
if ( !dbOnly ) { look in JVM; }
otherwise look in DB;
otherwise look in SERVICE;
if ( dbOnly ) { not found; }
otherwise look in JVM;
otherwise look in DERBY;
Covers these properties:
DEADLOCK_TIMEOUT
DEADLOCK_MONITOR
DEADLOCK_TRACE
LOCKWAIT_TIMEOUT
STATEMENT_CACHE_SIZE
REQUIRE_AUTHENTICATION_PARAMETER
AUTHENTICATION_PROVIDER_PARAMETER
AUTHENTICATION_NATIVE_PASSWORD_LIFETIME
AUTHENTICATION_PASSWORD_EXPIRATION_THRESHOLD
AUTHENTICATION_BUILTIN_SALT_LENGTH
AUTHENTICATION_BUILTIN_ITERATIONS
AUTHENTICATION_BUILTIN_ALGORITHM
-------------- DB_ONLY_ORDER (via PropertyUtil.getDatabaseProperty())
------------------
look in DB
Covers these properties:
DATABASE_PROPERTIES_ONLY
-------------- PRIVATE_ORDER (what's in service.properties) ------------------
look in SERVICE
Covers these properties:
NO_AUTO_BOOT
-------------- INDEX_STATS_ORDER (a special set of rules) ------------------
This search order covers the properties which control automatic statistics
collection. Some of these properties default to being on and some to being off.
This order is:
look in DB;
otherwise look in JVM;
otherwise look in DERBY;
Covers these properties:
STORAGE_AUTO_INDEX_STATS (default true)
STORAGE_AUTO_INDEX_STATS_LOGGING (default false)
STORAGE_AUTO_INDEX_STATS_TRACING (default "off")
-------------- SQL_AUTH_ORDER (a special set of rules) ------------------
SQL_AUTHORIZATION_PROPERTY is true if either of the following conditions is
true:
SQL_AUTHORIZATION_PROPERTY is true in DB
or the database uses NATIVE authentication
> Provide a way for users to determine the value of a Derby property
> ------------------------------------------------------------------
>
> Key: DERBY-6220
> URL: https://issues.apache.org/jira/browse/DERBY-6220
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 10.11.0.0
> Reporter: Rick Hillegas
> Attachments: derby-6220-01-aa-cleanupProperty.diff
>
>
> Derby properties can be specified as system properties, values stored in
> derby.properties, and values stored in the database via the
> syscs_set_database_property procedure. The rules for how these property sets
> interact are confusing. It would be good to provide users a way to figure out
> what Derby thinks a property is set to. Maybe we could provide a builtin or
> system function for this purpose.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira