| /* |
| |
| Derby - Class org.apache.derby.iapi.reference.Property |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to you under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| */ |
| |
| package org.apache.derby.iapi.reference; |
| |
| /** |
| List of all properties understood by the system. It also has some other static fields. |
| |
| |
| <P> |
| This class exists for two reasons |
| <Ol> |
| <LI> To act as the internal documentation for the properties. |
| <LI> To remove the need to declare a java static field for the property |
| name in the protocol/implementation class. This reduces the footprint as |
| the string is final and thus can be included simply as a String constant pool entry. |
| </OL> |
| <P> |
| This class should not be shipped with the product. |
| |
| <P> |
| This class has no methods, all it contains are String's which by |
| are public, static and final since they are declared in an interface. |
| */ |
| |
| public interface Property { |
| |
| /** |
| * Name of the file that contains system wide properties. Has to be located |
| * in ${derby.system.home} if set, otherwise ${user.dir} |
| */ |
| public static final String PROPERTIES_FILE = "derby.properties"; |
| |
| |
| /** |
| By convention properties that must not be stored any persistent form of |
| service properties start with this prefix. These properties are not documented. |
| */ |
| public static final String PROPERTY_RUNTIME_PREFIX = "derby.__rt."; |
| |
| /* |
| ** derby.service.* and related properties |
| */ |
| |
| |
| /* |
| ** derby.stream.* and related properties |
| */ |
| |
| /** |
| derby.stream.error.logSeverityLevel=integerValue |
| <BR> |
| Indicates the minimum level of severity for errors that are reported to the error stream. |
| Default to 0 in a "sane" server, and SESSION_SEVERITY in the insane (and product) server. |
| |
| @see org.apache.derby.iapi.error.ExceptionSeverity#SESSION_SEVERITY |
| */ |
| String LOG_SEVERITY_LEVEL = "derby.stream.error.logSeverityLevel"; |
| |
| /** |
| * derby.stream.error.ExtendedDiagSeverityLevel=integerValue |
| * <BR> |
| * Indicates the minimum level of severity for errors that are reported thread dump information |
| * and diagnosis information depends on jvm vender. |
| * Default to SESSION_SEVERITY(40000). |
| * |
| */ |
| String EXT_DIAG_SEVERITY_LEVEL = "derby.stream.error.extendedDiagSeverityLevel"; |
| /** |
| * derby.stream.error.logBootTrace |
| * <BR> |
| * defaults to false. If set to true logs a stack trace to |
| * the error stream on successful boot or shutdown. |
| * This can be useful when trying to debug dual boot |
| * scenarios especially with multiple class loaders. |
| * |
| */ |
| |
| String LOG_BOOT_TRACE = "derby.stream.error.logBootTrace"; |
| |
| /** |
| derby.stream.error.style=<b>The error stream error style.</b> |
| <b>rollingFile<b> is the only file currently supported. |
| Takes precendence over derby.stream.error.file. |
| Takes precendence over derby.stream.error.method. |
| Takes precendence over derby.stream.error.field |
| */ |
| String ERRORLOG_STYLE_PROPERTY = "derby.stream.error.style"; |
| |
| /** |
| derby.stream.error.file=<b>absolute or relative error log filename</b> |
| Takes precendence over derby.stream.error.method. |
| Takes precendence over derby.stream.error.field |
| */ |
| |
| String ERRORLOG_FILE_PROPERTY = "derby.stream.error.file"; |
| |
| /** |
| derby.stream.error.method= |
| <className>.<methodName> returning an OutputStream or Writer object |
| Takes precendence over derby.stream.error.field |
| */ |
| |
| String ERRORLOG_METHOD_PROPERTY = "derby.stream.error.method"; |
| |
| /** |
| derby.stream.error.field= |
| className.fieldName returning an OutputStream or Writer object |
| */ |
| |
| String ERRORLOG_FIELD_PROPERTY = "derby.stream.error.field"; |
| |
| /** |
| derby.stream.error.rollingfile.pattern=<b>the pattern</b> |
| A pattern consists of a string that includes the following special |
| components that will be replaced at runtime: |
| <UL> |
| <LI> "/" the local pathname separator |
| <LI> "%t" the system temporary directory |
| <LI> "%h" the value of the "user.home" system property |
| <LI> "%d" the value of the "derby.system.home" system property |
| <LI> "%g" the generation number to distinguish rotated logs |
| <LI> "%u" a unique number to resolve conflicts |
| <LI> "%%" translates to a single percent sign "%" |
| </UL> |
| If no "%g" field has been specified and the file count is greater |
| than one, then the generation number will be added to the end of |
| the generated filename, after a dot. |
| <P> |
| Thus for example a pattern of "%t/java%g.log" with a count of 2 |
| would typically cause files to be written on Solaris to |
| /var/tmp/java0.log and /var/tmp/java1.log whereas on Windows 95 they |
| would be typically written to C:\TEMP\java0.log and C:\TEMP\java1.log |
| <P> |
| Generation numbers follow the sequence 0, 1, 2, etc. |
| <P> |
| Normally the "%u" unique field is set to 0. However, if the <tt>FileHandler</tt> |
| tries to open the filename and finds the file is currently in use by |
| another process it will increment the unique number field and try |
| again. This will be repeated until <tt>FileHandler</tt> finds a file name that |
| is not currently in use. If there is a conflict and no "%u" field has |
| been specified, it will be added at the end of the filename after a dot. |
| (This will be after any automatically added generation number.) |
| <P> |
| Thus if three processes were all trying to output to fred%u.%g.txt then |
| they might end up using fred0.0.txt, fred1.0.txt, fred2.0.txt as |
| the first file in their rotating sequences. |
| <P> |
| Note that the use of unique ids to avoid conflicts is only guaranteed |
| to work reliably when using a local disk file system. |
| <P> |
| The default pattern is "%d/derby-%g.log" |
| */ |
| String ERRORLOG_ROLLINGFILE_PATTERN_PROPERTY = "derby.stream.error.rollingFile.pattern"; |
| |
| /** |
| derby.stream.error.rollingfile.limit=<b>the rolling file size limit</b> |
| <P> |
| The default limit is 1024000 |
| */ |
| |
| String ERRORLOG_ROLLINGFILE_LIMIT_PROPERTY = "derby.stream.error.rollingFile.limit"; |
| |
| /** |
| derby.stream.error.rollingfile.count=<b>the rolling file count</b> |
| <P> |
| The default count is 10 |
| */ |
| |
| String ERRORLOG_ROLLINGFILE_COUNT_PROPERTY = "derby.stream.error.rollingFile.count"; |
| |
| |
| /** |
| derby.infolog.append={true,false} |
| <BR> |
| * If the info stream goes to a file and the file already exist, it can |
| * either delete the existing file or append to it. User can specifiy |
| * whether info log file should append or not by setting |
| * derby.infolog.append={true/false} |
| * |
| * The default behavior is that the exiting file will be deleted when a new |
| * info stream is started. |
| */ |
| String LOG_FILE_APPEND = "derby.infolog.append"; |
| |
| /* |
| ** derby.service.* and related properties |
| */ |
| /** |
| derby.system.home |
| <BR> |
| Property name for the home directory. Any relative path in the |
| system should be accessed though this property |
| */ |
| String SYSTEM_HOME_PROPERTY = "derby.system.home"; |
| |
| /** |
| derby.system.bootAll |
| <BR> |
| Automatically boot any services at start up time. When set to true |
| this services will be booted at startup, otherwise services |
| will be booted on demand. |
| */ |
| String BOOT_ALL = "derby.system.bootAll"; |
| |
| /** |
| derby.database.noAutoBoot |
| <BR> |
| Don't automatically boot this service at start up time. When set to true |
| this service will only be booted on demand, otherwise the service |
| will be booted at startup time if possible. |
| */ |
| String NO_AUTO_BOOT = "derby.database.noAutoBoot"; |
| |
| /** |
| derby.__deleteOnCreate |
| <BR> |
| Before creating this service delete any remenants (e.g. the directory) |
| of a previous service at the same location. |
| |
| <P> |
| <B>INTERNAL USE ONLY</B> |
| */ |
| String DELETE_ON_CREATE = "derby.__deleteOnCreate"; |
| |
| /** |
| derby.database.forceDatabaseLock |
| <BR> |
| Derby attempts to prevent two instances of Derby from booting |
| the same database with the use of a file called db.lck inside the |
| database directory. |
| |
| On some platforms, Derby can successfully prevent a second |
| instance of Derby from booting the database, and thus prevents |
| corruption. If this is the case, you will see an SQLException like the |
| following: |
| |
| ERROR XJ040: Failed to start database 'toursDB', see the next exception |
| for details. |
| ERROR XSDB6: Another instance of Derby may have already booted the |
| database C:\databases\toursDB. |
| |
| The error is also written to the information log. |
| |
| On other platforms, Derby issues a warning message if an instance |
| of Derby attempts to boot a database that may already have a |
| running instance of Derby attached to it. |
| However, it does not prevent the second instance from booting, and thus |
| potentially corrupting, the database. |
| |
| If a warning message has been issued, corruption may already have |
| occurred. |
| |
| |
| The warning message looks like this: |
| |
| WARNING: Derby (instance 80000000-00d2-3265-de92-000a0a0a0200) is |
| attempting to boot the database /export/home/sky/wombat even though |
| Derby (instance 80000000-00d2-3265-8abf-000a0a0a0200) may still be |
| active. Only one instance of Derby |
| should boot a database at a time. Severe and non-recoverable corruption |
| can result and may have already occurred. |
| |
| The warning is also written to the information log. |
| |
| This warning is primarily a Technical Support aid to determine the |
| cause of corruption. However, if you see this warning, your best |
| choice is to close the connection and exit the JVM. This minimizes the |
| risk of a corruption. Close all instances of Derby, then restart |
| one instance of Derby and shut down the database properly so that |
| the db.lck file can be removed. The warning message continues to appear |
| until a proper shutdown of the Derby system can delete the db.lck |
| file. |
| |
| If the "derby.database.forceDatabaseLock" property is set to true |
| then this default behavior is altered on systems where Derby cannot |
| prevent this dual booting. If the to true, then if the platform does |
| not provide the ability for Derby to guarantee no double boot, and |
| if Derby finds a db.lck file when it boots, it will throw an |
| exception (TODO - mikem - add what exception), leave the db.lck file |
| in place and not boot the system. At this point the system will not |
| boot until the db.lck file is removed by hand. Note that this |
| situation can arise even when 2 VM's are not accessing the same |
| Derby system. Also note that if the db.lck file is removed by |
| hand while a VM is still accessing a derby.database, then there |
| is no way for Derby to prevent a second VM from starting up and |
| possibly corrupting the database. In this situation no warning |
| message will be logged to the error log. |
| |
| To disable the default behavior of the db.lck file set property as |
| follows: |
| |
| derby.database.forceDatabaseLock=true |
| |
| */ |
| String FORCE_DATABASE_LOCK = "derby.database.forceDatabaseLock"; |
| |
| |
| /* |
| ** derby.locks.* and related properties |
| */ |
| |
| String LOCKS_INTRO = "derby.locks."; |
| |
| /** |
| derby.locks.escalationThreshold |
| <BR> |
| The number of row locks on a table after which we escalate to |
| table locking. Also used by the optimizer to decide when to |
| start with table locking. The String value must be convertible |
| to an int. |
| */ |
| String LOCKS_ESCALATION_THRESHOLD = "derby.locks.escalationThreshold"; |
| |
| /** |
| The default value for LOCKS_ESCALATION_THRESHOLD |
| */ |
| int DEFAULT_LOCKS_ESCALATION_THRESHOLD = 5000; |
| |
| /** |
| The minimum value for LOCKS_ESCALATION_THRESHOLD |
| */ |
| int MIN_LOCKS_ESCALATION_THRESHOLD = 100; |
| |
| /** |
| Configuration parameter for deadlock timeouts, set in seconds. |
| */ |
| public static final String DEADLOCK_TIMEOUT = "derby.locks.deadlockTimeout"; |
| |
| /** |
| Default value for deadlock timesouts (20 seconds) |
| */ |
| public static final int DEADLOCK_TIMEOUT_DEFAULT = 20; |
| |
| /** |
| Default value for wait timeouts (60 seconds) |
| */ |
| public static final int WAIT_TIMEOUT_DEFAULT = 60; |
| |
| /** |
| Turn on lock monitor to help debug deadlocks. Default value is OFF. |
| With this property turned on, all deadlocks will cause a tracing to be |
| output to the db2j.LOG file. |
| <BR> |
| This property takes effect dynamically. |
| */ |
| public static final String DEADLOCK_MONITOR = "derby.locks.monitor"; |
| |
| /** |
| Turn on deadlock trace to help debug deadlocks. |
| |
| Effect 1: This property only takes effect if DEADLOCK_MONITOR is turned |
| ON for deadlock trace. With this property turned on, each lock object |
| involved in a deadlock will output its stack trace to db2j.LOG. |
| |
| Effect 2: When a timeout occurs, a lockTable dump will also be output |
| to db2j.LOG. This acts independent of DEADLOCK_MONITOR. |
| <BR> |
| This property takes effect dynamically. |
| */ |
| public static final String DEADLOCK_TRACE = "derby.locks.deadlockTrace"; |
| |
| /** |
| Configuration parameter for lock wait timeouts, set in seconds. |
| */ |
| public static final String LOCKWAIT_TIMEOUT = "derby.locks.waitTimeout"; |
| |
| /* |
| ** db2j.database.* |
| */ |
| |
| /** |
| derby.database.classpath |
| <BR> |
| Consists of a series of two part jar names. |
| */ |
| String DATABASE_CLASSPATH = "derby.database.classpath"; |
| |
| /** |
| internal use only, passes the database classpathinto the class manager |
| |
| Undocumented. |
| */ |
| String BOOT_DB_CLASSPATH = PROPERTY_RUNTIME_PREFIX + "database.classpath"; |
| |
| |
| |
| /** |
| derby.database.propertiesOnly |
| */ |
| String DATABASE_PROPERTIES_ONLY = "derby.database.propertiesOnly"; |
| |
| /** |
| * This property is private to Derby. |
| * This property is forcibly set by the Network Server to override |
| * any values which the user may have set. This property is only used to |
| * parameterize the Basic security policy used by the Network Server. |
| * This property is the location of the derby jars. |
| **/ |
| public static final String DERBY_INSTALL_URL = "derby.install.url"; |
| |
| /** |
| * This property is private to Derby. |
| * This property is forcibly set by the Network Server to override |
| * any values which the user may have set. This property is only used to |
| * parameterize the Basic security policy used by the Network Server. |
| * This property is the hostname which the server uses. |
| **/ |
| public static final String DERBY_SECURITY_HOST = "derby.security.host"; |
| |
| /** |
| * This property is private to Derby. |
| * This property is forcibly set by the Network Server to override |
| * any values which the user may have set. This property is only used to |
| * parameterize the Basic security policy used by the Network Server. |
| * This property is the port number which the server listens to. |
| */ |
| public static final String DERBY_SECURITY_PORT = "derby.security.port"; |
| |
| /* |
| ** derby.storage.* |
| */ |
| |
| /** |
| * <p> |
| * Creation of an access factory should be done with no logging. |
| * This is a run-time property that should not make it to disk |
| * in the service.properties file. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| **/ |
| public static final String CREATE_WITH_NO_LOG = |
| PROPERTY_RUNTIME_PREFIX + "storage.createWithNoLog"; |
| |
| /** |
| * The page size to create a table or index with. Must be a multiple |
| * of 2k, usual choices are: 2k, 4k, 8k, 16k, 32k, 64k. The default |
| * if property is not set is 4k. |
| **/ |
| public static final String PAGE_SIZE_PARAMETER = "derby.storage.pageSize"; |
| |
| /** |
| * The default page size to use for tables that contain a long column. |
| **/ |
| public static final String PAGE_SIZE_DEFAULT_LONG = "32768"; |
| |
| /** |
| * The bump threshold for pages sizes for create tables |
| * If the approximate column sizes of a table is greater than this |
| * threshold, the page size for the tbl is bumped to PAGE_SIZE_DEFAULT_LONG |
| * provided the page size is not already specified as a property |
| **/ |
| public static final int TBL_PAGE_SIZE_BUMP_THRESHOLD = 4096; |
| |
| /** |
| * The bump threshold for pages size for index. |
| * If the approximate key columns of an index is greater than this |
| * threshold, the page size for the index is bumped to PAGE_SIZE_DEFAULT_LONG |
| * provided the page size is not already specified as a property |
| **/ |
| public static final int IDX_PAGE_SIZE_BUMP_THRESHOLD = 1024; |
| |
| /** |
| * Derby supports Row Level Locking (rll), but you can use this |
| * property to disable rll. Applications which use rll will use more |
| * system resources, so if an application knows that it does not need rll |
| * then it can use this system property to force all locking in the system |
| * to lock at the table level. |
| * |
| * This property can be set to the boolean values "true" or "false". |
| * Setting the property to true is the same as not setting the property at |
| * all, and will result in rll being enabled. Setting the property to |
| * false disables rll. |
| * |
| **/ |
| public static final String ROW_LOCKING = "derby.storage.rowLocking"; |
| |
| /** |
| derby.storage.propertiesId |
| <BR> |
| Stores the id of the conglomerate that holds the per-database |
| properties. Is stored in the service.properties file. |
| |
| <P> |
| <B>INTERNAL USE ONLY</B> |
| */ |
| String PROPERTIES_CONGLOM_ID = "derby.storage.propertiesId"; |
| |
| /** |
| derby.storage.tempDirectory |
| <BR> |
| Sets the temp directory for a database. |
| <P> |
| */ |
| String STORAGE_TEMP_DIRECTORY = "derby.storage.tempDirectory"; |
| |
| /** |
| * derby.system.durability |
| * <p> |
| * Currently the only valid supported case insensitive value is 'test' |
| * Note, if this property is set to any other value other than 'test', this |
| * property setting is ignored |
| * |
| * In the future, this property can be used to set different modes - for |
| * example a form of relaxed durability where database can recover to a |
| * consistent state, or to enable some kind of in-memory mode. |
| * <BR> |
| * When set to 'test', the store system will not force sync calls in the |
| * following cases |
| * - for the log file at each commit |
| * - for the log file before data page is forced to disk |
| * - for page allocation when file is grown |
| * - for data writes during checkpoint |
| * |
| * That means |
| * - a commit no longer guarantees that the transaction's modification |
| * will survive a system crash or JVM termination |
| * - the database may not recover successfully upon restart |
| * - a near full disk at runtime may cause unexpected errors |
| * - database can be in an inconsistent state |
| * <p> |
| * This setting is provided for performance reasons and should ideally |
| * only be used when the system can withstand the above consequences. |
| * <BR> |
| * One sample use would be to use this mode (derby.system.durability=test) |
| * when using Derby as a test database, where high performance is required |
| * and the data is not very important |
| * <BR> |
| * Valid supported values are test |
| * <BR> |
| * Example |
| * derby.system.durability=test |
| * One can set this as a command line option to the JVM when starting the |
| * application or in the derby.properties file. It is a system level |
| * property. |
| * <BR> |
| * This property is static; if you change it while Derby is running, |
| * the change does not take effect until you reboot. |
| */ |
| public static final String DURABILITY_PROPERTY = |
| "derby.system.durability"; |
| |
| /** |
| * This is a value supported for derby.system.durability |
| * When derby.system.durability=test, the storage system does not |
| * force syncs and the system may not recover. It is also possible that |
| * the database might be in an inconsistent state |
| * @see #DURABILITY_PROPERTY |
| */ |
| public static final String DURABILITY_TESTMODE_NO_SYNC = "test"; |
| |
| /** |
| * derby.storage.fileSyncTransactionLog |
| * <p> |
| * When set, the store system will use sync() call on the log at |
| * commit instead of doing a write sync on all writes to the log; |
| * even if the write sync mode (rws) is supported in the JVM. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| * |
| **/ |
| public static final String FILESYNC_TRANSACTION_LOG = |
| "derby.storage.fileSyncTransactionLog"; |
| |
| |
| /** |
| * derby.storage.logArchiveMode |
| *<BR> |
| *used to identify whether the log is being archived for the database or not. |
| * It Is stored in the service.properties file. |
| * |
| * This property can be set to the boolean values "true" or "false". |
| * Setting the property to true means log is being archived, which could be |
| * used for roll-forward recovery. Setting the property to |
| * false disables log archive mode. |
| *<P> |
| *<B>INTERNAL USE ONLY</B> |
| */ |
| String LOG_ARCHIVE_MODE = "derby.storage.logArchiveMode"; |
| |
| |
| /** |
| * derby.storage.logDeviceWhenBackedUp |
| *<BR> |
| * This property indicates the logDevice location(path) when the backup was |
| * taken, used to restore the log to the same location while restoring from |
| * backup. |
| *<P> |
| *<B>INTERNAL USE ONLY</B> |
| */ |
| String LOG_DEVICE_AT_BACKUP = "derby.storage.logDeviceWhenBackedUp"; |
| |
| /** |
| * derby.module.modulename |
| * <P> |
| * Defines a new module. Modulename is a name used when loading the definition |
| * of a module, it provides the linkage to other properties used to define the |
| * module, derby.env.jdk.modulename and derby.env.classes.modulename. |
| * |
| * The value is a Java class name that implements functionality required by |
| * the other parts of a Derby system or database. The class can optionally implement |
| * these classes to control its use and startup. |
| * <UL> |
| * <LI> org.apache.derby.iapi.services.monitor.ModuleControl |
| * <LI> org.apache.derby.iapi.services.monitor.ModuleSupportable |
| * </UL> |
| */ |
| String MODULE_PREFIX = "derby.module."; |
| |
| /** |
| * derby.subSubProtocol.xxx |
| *<p> |
| * |
| * A new subsubprotocol can be defined by specifying the class that handles storage for the |
| * subsubprotocol by implementing the |
| * {@link org.apache.derby.io.StorageFactory StorageFactory} or |
| * {@link org.apache.derby.io.WritableStorageFactory WritableStorageFactory} interface. This |
| * is done using a property named db2j.subsubprotocol.<i>xxx</i> where <i>xxx</i> is the subsubprotocol name. |
| * Subsubprotocol names are case sensitive and must be at least 3 characters in length. |
| *<p> |
| * |
| * For instance: |
| *<br> |
| * derby.subSubProtocol.mem=com.mycompany.MemStore |
| *<br> |
| * defines the "mem" subsubprotocol with class com.mycompany.MemStore as its StorageFactory implementation. |
| * A database implemented using this subsubprotocol can be opened with the URL "jdbc:derby:mem:myDatabase". |
| *<p> |
| * |
| * Subsubprotocols "directory", "classpath", "jar", "http", and "https" are built in and may not be overridden. |
| */ |
| String SUB_SUB_PROTOCOL_PREFIX = "derby.subSubProtocol."; |
| |
| |
| /** |
| * Declare a minimum JDK level the class for a module or sub sub protocol supports. |
| * Set to an integer value from the JVMInfo class to represent a JDK. |
| * If the JDK is running at a lower level than the class requires |
| * then the class will not be loaded and will not be used. |
| * |
| * If there are multiple modules classes implementing the same functionality |
| * and supported by the JVM, then the one with the highest JDK |
| * requirements will be selected. This functionality is not present for |
| * sub sub protocol classes yet. |
| * |
| * See org.apache.derby.iapi.services.info.JVMInfo.JDK_ID |
| */ |
| String MODULE_ENV_JDK_PREFIX = "derby.env.jdk."; |
| |
| /** |
| * Declare a set of classes that the class for a module or sub sub protocol requires. |
| * Value is a comma separated list of classes. If the classes listed are not |
| * loadable by the virtual machine then the module class will not be loaded and will not be used. |
| */ |
| String MODULE_ENV_CLASSES_PREFIX = "derby.env.classes."; |
| |
| /* |
| ** derby.language.* |
| */ |
| |
| /** |
| * The size of the table descriptor cache used by the |
| * data dictionary. Database. Static. |
| * <p> |
| * Undocumented. |
| */ |
| String LANG_TD_CACHE_SIZE = "derby.language.tableDescriptorCacheSize"; |
| int LANG_TD_CACHE_SIZE_DEFAULT = 64; |
| |
| /** |
| * The size of the permissions cache used by the data dictionary. |
| * Database. Static. |
| * <p> |
| * Undocumented. |
| */ |
| String LANG_PERMISSIONS_CACHE_SIZE = "derby.language.permissionsCacheSize"; |
| int LANG_PERMISSIONS_CACHE_SIZE_DEFAULT = 64; |
| /** |
| * <p> |
| * The size of the stored prepared statment descriptor cache |
| * used by the data dictionary. Database. Static. |
| * </p> |
| * |
| * <p> |
| * Externally visible but undocumented. |
| * </p> |
| */ |
| String LANG_SPS_CACHE_SIZE = "derby.language.spsCacheSize"; |
| int LANG_SPS_CACHE_SIZE_DEFAULT =32; |
| |
| /** |
| * The size of the sequence generator cache |
| * used by the data dictionary. Database. Static. |
| * <p> |
| * Externally visible and documented. |
| */ |
| String LANG_SEQGEN_CACHE_SIZE = "derby.language.sequenceGeneratorCacheSize"; |
| int LANG_SEQGEN_CACHE_SIZE_DEFAULT = 1000; |
| |
| /** |
| * Name of the implementation of SequencePreallocator which is used |
| * to tune how many values Derby pre-allocates for identity columns |
| * and sequences. Database. Static. |
| * <p> |
| * Externally visible. |
| */ |
| String LANG_SEQUENCE_PREALLOCATOR = "derby.language.sequence.preallocator"; |
| |
| /** |
| derby.language.stalePlanCheckInterval |
| |
| <P> |
| This property tells the number of times a prepared statement should |
| be executed before checking whether its plan is stale. Database. |
| Dynamic. |
| <P> |
| Externally visible but undocumented. |
| */ |
| String LANGUAGE_STALE_PLAN_CHECK_INTERVAL = |
| "derby.language.stalePlanCheckInterval"; |
| |
| |
| /** Default value for above */ |
| int DEFAULT_LANGUAGE_STALE_PLAN_CHECK_INTERVAL = 100; |
| |
| /** Minimum value for above */ |
| int MIN_LANGUAGE_STALE_PLAN_CHECK_INTERVAL = 5; |
| |
| |
| /* |
| Statement plan cache size |
| By default, 100 statements are cached |
| */ |
| String STATEMENT_CACHE_SIZE = "derby.language.statementCacheSize"; |
| int STATEMENT_CACHE_SIZE_DEFAULT = 100; |
| |
| /** |
| * Tells if automatic index statistics update is enabled (default is true). |
| */ |
| String STORAGE_AUTO_INDEX_STATS = "derby.storage.indexStats.auto"; |
| |
| /** |
| * Tells if activities related to automatic index statistics update should |
| * be written to the Derby system log file (derby.log). |
| */ |
| String STORAGE_AUTO_INDEX_STATS_LOGGING = "derby.storage.indexStats.log"; |
| |
| /** |
| * Tells if more detailed activities related to automatic index statistics |
| * update should be traced. Accepted values are: *off*, stdout, log, both |
| */ |
| String STORAGE_AUTO_INDEX_STATS_TRACING = "derby.storage.indexStats.trace"; |
| |
| /** |
| * <p> |
| * Specifies the lower threshold for the number of rows in a table before |
| * creating statistics for the associated indexes. |
| * </p> |
| * |
| * <p> |
| * <em>NOTE:</em> This is a debug property which will be removed or renamed. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| */ |
| String STORAGE_AUTO_INDEX_STATS_DEBUG_CREATE_THRESHOLD = |
| "derby.storage.indexStats.debug.createThreshold"; |
| int STORAGE_AUTO_INDEX_STATS_DEBUG_CREATE_THRESHOLD_DEFAULT = 100; |
| |
| /** |
| * <p> |
| * Specifies the lower threshold for the absolute difference between the |
| * row estimate for the table and the row estimate for the index before |
| * creating statistics for the associated indexes. |
| * </p> |
| * |
| * <p> |
| * <em>NOTE:</em> This is a debug property which will be removed or renamed. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| */ |
| String STORAGE_AUTO_INDEX_STATS_DEBUG_ABSDIFF_THRESHOLD = |
| "derby.storage.indexStats.debug.absdiffThreshold"; |
| int STORAGE_AUTO_INDEX_STATS_DEBUG_ABSDIFF_THRESHOLD_DEFAULT = 1000; |
| |
| /** |
| * <p> |
| * Specifies the lower threshold for the logarithmical (natural logarithm e) |
| * difference between the row estimate for the table and the row estimate |
| * for the index before creating statistics for the associated indexes. |
| * </p> |
| * |
| * <p> |
| * <em>NOTE:</em> This is a debug property which will be removed or renamed. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| */ |
| String STORAGE_AUTO_INDEX_STATS_DEBUG_LNDIFF_THRESHOLD = |
| "derby.storage.indexStats.debug.lndiffThreshold"; |
| double STORAGE_AUTO_INDEX_STATS_DEBUG_LNDIFF_THRESHOLD_DEFAULT = 1.0; |
| |
| /** |
| * <p> |
| * Specifies the size of the work unit queue in the index statistics update |
| * daemon. |
| * </p> |
| * |
| * <p> |
| * <em>NOTE:</em> This is a debug property which will be removed or renamed. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| */ |
| String STORAGE_AUTO_INDEX_STATS_DEBUG_QUEUE_SIZE = |
| "derby.storage.indexStats.debug.queueSize"; |
| int STORAGE_AUTO_INDEX_STATS_DEBUG_QUEUE_SIZE_DEFAULT = 20; |
| |
| /** |
| * <p> |
| * Specifies whether to revert to 10.8 behavior and keep disposable stats. |
| * </p> |
| * |
| * <p> |
| * <em>NOTE:</em> This is a debug property which will be removed or renamed. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| */ |
| String STORAGE_AUTO_INDEX_STATS_DEBUG_KEEP_DISPOSABLE_STATS = |
| "derby.storage.indexStats.debug.keepDisposableStats"; |
| |
| /* |
| ** Transactions |
| */ |
| |
| /** The property name used to get the default value for XA transaction |
| * timeout in seconds. Zero means no timout. |
| */ |
| String PROP_XA_TRANSACTION_TIMEOUT = "derby.jdbc.xaTransactionTimeout"; |
| |
| /** The default value for XA transaction timeout if the corresponding |
| * property is not found in system properties. Zero means no timeout. |
| */ |
| int DEFAULT_XA_TRANSACTION_TIMEOUT = 0; |
| |
| |
| /* some static fields */ |
| public static final String DEFAULT_USER_NAME = "APP"; |
| public static final String DATABASE_MODULE = "org.apache.derby.database.Database"; |
| |
| /* |
| Property to enable Grant & Revoke SQL authorization. Introduced in Derby 10.2 |
| release. New databases and existing databases (in Derby 10.2) still use legacy |
| authorization by default and by setting this property to true could request for |
| SQL standard authorization model. |
| */ |
| public static final String |
| SQL_AUTHORIZATION_PROPERTY = "derby.database.sqlAuthorization"; |
| |
| /** |
| * Default connection level authorization, set to |
| * one of NO_ACCESS, READ_ONLY_ACCESS or FULL_ACCESS. |
| * Defaults to FULL_ACCESS if not set. |
| */ |
| public static final String |
| DEFAULT_CONNECTION_MODE_PROPERTY = "derby.database.defaultConnectionMode"; |
| |
| public static final String NO_ACCESS = "NOACCESS"; |
| public static final String READ_ONLY_ACCESS = "READONLYACCESS"; |
| public static final String FULL_ACCESS = "FULLACCESS"; |
| |
| /** |
| * List of users with read-only connection level authorization. |
| */ |
| public static final String |
| READ_ONLY_ACCESS_USERS_PROPERTY = "derby.database.readOnlyAccessUsers"; |
| |
| /** |
| * List of users with full access connection level authorization. |
| */ |
| public static final String |
| FULL_ACCESS_USERS_PROPERTY = "derby.database.fullAccessUsers"; |
| |
| /* |
| ** Authentication |
| */ |
| |
| // This is the property that turn on/off authentication |
| public static final String REQUIRE_AUTHENTICATION_PARAMETER = |
| "derby.connection.requireAuthentication"; |
| |
| public static final String AUTHENTICATION_PROVIDER_PARAMETER = |
| "derby.authentication.provider"; |
| |
| // This is the user property used by Derby and LDAP schemes |
| // |
| // Should not be documented any longer. |
| public static final String USER_PROPERTY_PREFIX = "derby.user."; |
| |
| // These are the different built-in providers Derby supports |
| |
| public static final String AUTHENTICATION_PROVIDER_NATIVE = |
| "NATIVE:"; |
| |
| public static final String AUTHENTICATION_PROVIDER_BUILTIN = |
| "BUILTIN"; |
| |
| public static final String AUTHENTICATION_PROVIDER_LDAP = |
| "LDAP"; |
| |
| public static final String AUTHENTICATION_SERVER_PARAMETER = |
| "derby.authentication.server"; |
| |
| // this suffix on the NATIVE authentication provider means that |
| // database operations should be authenticated locally |
| public static final String AUTHENTICATION_PROVIDER_LOCAL_SUFFIX = |
| ":LOCAL"; |
| |
| // when local native authentication is enabled, we store this value for derby.authentication.provider |
| public static final String AUTHENTICATION_PROVIDER_NATIVE_LOCAL = |
| AUTHENTICATION_PROVIDER_NATIVE + AUTHENTICATION_PROVIDER_LOCAL_SUFFIX; |
| |
| // lifetime (in milliseconds) of a NATIVE password. if <= 0, then the password never expires |
| public static final String AUTHENTICATION_NATIVE_PASSWORD_LIFETIME = |
| "derby.authentication.native.passwordLifetimeMillis"; |
| |
| // default lifetime (in milliseconds) of a NATIVE password. 31 days. |
| public static final long MILLISECONDS_IN_DAY = 1000L * 60L * 60L * 24L; |
| public static final long AUTHENTICATION_NATIVE_PASSWORD_LIFETIME_DEFAULT = MILLISECONDS_IN_DAY * 31L; |
| |
| // threshhold for raising a warning that a password is about to expire. |
| // raise a warning if the remaining password lifetime is less than this proportion of the max lifetime. |
| public static final String AUTHENTICATION_PASSWORD_EXPIRATION_THRESHOLD = |
| "derby.authentication.native.passwordLifetimeThreshold"; |
| public static final double AUTHENTICATION_PASSWORD_EXPIRATION_THRESHOLD_DEFAULT = 0.125; |
| |
| |
| /** |
| * <p> |
| * Property that specifies the name of the hash algorithm to use with |
| * the configurable hash authentication scheme. |
| * </p> |
| */ |
| public static final String AUTHENTICATION_BUILTIN_ALGORITHM = |
| "derby.authentication.builtin.algorithm"; |
| |
| /** |
| * Default value for derby.authentication.builtin.algorithm when creating |
| * a new database. |
| */ |
| public static final String AUTHENTICATION_BUILTIN_ALGORITHM_DEFAULT = |
| "SHA-256"; |
| |
| /** |
| * Alternative default value for derby.authentication.builtin.algorithm if |
| * {@link #AUTHENTICATION_BUILTIN_ALGORITHM_DEFAULT} is not available at |
| * database creation time. |
| */ |
| public static final String AUTHENTICATION_BUILTIN_ALGORITHM_FALLBACK = |
| "SHA-1"; |
| |
| /** |
| * <p> |
| * Property that specifies the number of bytes with random salt to use |
| * when hashing credentials using the configurable hash authentication |
| * scheme. |
| * </p> |
| */ |
| public static final String AUTHENTICATION_BUILTIN_SALT_LENGTH = |
| "derby.authentication.builtin.saltLength"; |
| |
| /** |
| * The default value for derby.authentication.builtin.saltLength. |
| */ |
| public static final int AUTHENTICATION_BUILTIN_SALT_LENGTH_DEFAULT = 16; |
| |
| /** |
| * <p> |
| * Property that specifies the number of times to apply the hash |
| * function in the configurable hash authentication scheme. |
| * </p> |
| */ |
| public static final String AUTHENTICATION_BUILTIN_ITERATIONS = |
| "derby.authentication.builtin.iterations"; |
| |
| /** |
| * Default value for derby.authentication.builtin.iterations. |
| */ |
| public static final int AUTHENTICATION_BUILTIN_ITERATIONS_DEFAULT = 1000; |
| |
| /* |
| ** Log |
| */ |
| |
| /** |
| Property name for specifying log switch interval |
| |
| Undocumented. |
| */ |
| public static final String LOG_SWITCH_INTERVAL = "derby.storage.logSwitchInterval"; |
| |
| /** |
| Property name for specifying checkpoint interval |
| |
| Undocumented. |
| */ |
| public static final String CHECKPOINT_INTERVAL = "derby.storage.checkpointInterval"; |
| |
| /** |
| Property name for specifying log Buffer Size |
| |
| Undocumented. |
| */ |
| public static final String LOG_BUFFER_SIZE = "derby.storage.logBufferSize"; |
| |
| |
| /* |
| ** Replication |
| */ |
| |
| /** Property name for specifying the size of the replication log buffers */ |
| public static final String REPLICATION_LOG_BUFFER_SIZE= "derby.replication.logBufferSize"; |
| |
| /** Property name for specifying the minimum log shipping interval*/ |
| public static final String REPLICATION_MIN_SHIPPING_INTERVAL = "derby.replication.minLogShippingInterval"; |
| |
| /** Property name for specifying the maximum log shipping interval*/ |
| public static final String REPLICATION_MAX_SHIPPING_INTERVAL = "derby.replication.maxLogShippingInterval"; |
| |
| /** Property name for specifying whether or not replication messages are |
| * written to the log*/ |
| public static final String REPLICATION_VERBOSE = "derby.replication.verbose"; |
| |
| /* |
| ** Upgrade |
| */ |
| |
| /** |
| * <p> |
| * Allow database upgrade during alpha/beta time. Only intended |
| * to be used to allow Derby developers to test their upgrade code. |
| * Only supported as a system/application (derby.properties) property. |
| * </p> |
| * |
| * <p> |
| * Undocumented. |
| * </p> |
| */ |
| String ALPHA_BETA_ALLOW_UPGRADE = "derby.database.allowPreReleaseUpgrade"; |
| |
| /** |
| db2j.inRestore |
| <BR> |
| This Property is used to indicate that we are in restore mode if |
| if the system is doing a restore from backup. |
| Used internally to set flags to indicate that service is not booted. |
| <P> |
| <B>INTERNAL USE ONLY</B> |
| */ |
| String IN_RESTORE_FROM_BACKUP = PROPERTY_RUNTIME_PREFIX + "inRestore"; |
| |
| |
| /** |
| db2j.deleteRootOnError |
| <BR> |
| If we a new root is created while doing restore from backup, |
| it should be deleted if a error occur before we could complete restore |
| successfully. |
| <P> |
| <B>INTERNAL USE ONLY</B> |
| */ |
| String DELETE_ROOT_ON_ERROR = PROPERTY_RUNTIME_PREFIX + "deleteRootOnError"; |
| |
| public static final String HTTP_DB_FILE_OFFSET = "db2j.http.file.offset"; |
| public static final String HTTP_DB_FILE_LENGTH = "db2j.http.file.length"; |
| public static final String HTTP_DB_FILE_NAME = "db2j.http.file.name"; |
| |
| /** |
| * <p> |
| * derby.drda.startNetworkServer |
| * </p> |
| * |
| *<p> |
| * If true then we will attempt to start a DRDA network server when Derby |
| * boots, turning the current JVM into a server. |
| *</p> |
| * |
| * <p> |
| * Default: false |
| * </p> |
| */ |
| public static final String START_DRDA = "derby.drda.startNetworkServer"; |
| |
| /** |
| * <p> |
| * derby.drda.logConnections |
| *</p> |
| * |
| * <p> |
| * Indicates whether to log connections and disconnections. |
| *</p> |
| * |
| * <p> |
| * Default: false |
| * </p> |
| */ |
| public final static String DRDA_PROP_LOGCONNECTIONS = "derby.drda.logConnections"; |
| |
| /** |
| * <p> |
| * derby.drda.traceAll |
| *</p> |
| * |
| * <p> |
| * Turns tracing on for all sessions. |
| *</p> |
| * Default: false |
| * |
| * <p> |
| * Default: false |
| * </p> |
| */ |
| public final static String DRDA_PROP_TRACEALL = "derby.drda.traceAll"; |
| |
| /** |
| * <p> |
| * derby.drda.trace |
| *</p> |
| */ |
| public final static String DRDA_PROP_TRACE = "derby.drda.trace"; |
| |
| /** |
| * derby.drda.traceDirectory |
| *<BR> |
| * The directory used for network server tracing files. |
| *<BR> |
| * Default: if the derby.system.home property has been set, |
| * it is the default. Otherwise, the default is the current directory. |
| */ |
| public final static String DRDA_PROP_TRACEDIRECTORY = "derby.drda.traceDirectory"; |
| |
| public final static String DRDA_PROP_MINTHREADS = "derby.drda.minThreads"; |
| public final static String DRDA_PROP_MAXTHREADS = "derby.drda.maxThreads"; |
| public final static String DRDA_PROP_TIMESLICE = "derby.drda.timeSlice"; |
| |
| |
| /** |
| * derby.drda.sslMode |
| * <BR> |
| * This property may be set to one of the following three values |
| * off: No Wire encryption |
| * basic: Encryption, but no SSL client authentication |
| * peerAuthentication: Encryption and with SSL client |
| * authentication |
| */ |
| |
| public final static String DRDA_PROP_SSL_MODE = "derby.drda.sslMode"; |
| |
| /** |
| * derby.drda.securityMechanism |
| *<BR> |
| * This property can be set to one of the following values |
| * USER_ONLY_SECURITY |
| * CLEAR_TEXT_PASSWORD_SECURITY |
| * ENCRYPTED_USER_AND_PASSWORD_SECURITY |
| * STRONG_PASSWORD_SUBSTITUTE_SECURITY |
| * <BR> |
| * if derby.drda.securityMechanism is set to a valid mechanism, then |
| * the Network Server accepts only connections which use that |
| * security mechanism. No other types of connections are accepted. |
| * <BR> |
| * if the derby.drda.securityMechanism is not set at all, then the |
| * Network Server accepts any connection which uses a valid |
| * security mechanism. |
| * <BR> |
| * E.g derby.drda.securityMechanism=USER_ONLY_SECURITY |
| * This property is static. Server must be restarted for the property to take effect. |
| * Default value for this property is as though it is not set - in which case |
| * the server will allow clients with supported security mechanisms to connect |
| */ |
| public final static String DRDA_PROP_SECURITYMECHANISM = "derby.drda.securityMechanism"; |
| |
| /** |
| * derby.drda.portNumber |
| *<BR> |
| * The port number used by the network server. |
| */ |
| public final static String DRDA_PROP_PORTNUMBER = "derby.drda.portNumber"; |
| public final static String DRDA_PROP_HOSTNAME = "derby.drda.host"; |
| |
| /** |
| * derby.drda.keepAlive |
| * |
| *<BR> |
| * client socket setKeepAlive value |
| */ |
| public final static String DRDA_PROP_KEEPALIVE = "derby.drda.keepAlive"; |
| |
| |
| /** |
| * derby.drda.streamOutBufferSize |
| * size of buffer used when stream out for client. |
| * |
| */ |
| public final static String DRDA_PROP_STREAMOUTBUFFERSIZE = "derby.drda.streamOutBufferSize"; |
| |
| /* |
| ** Internal properties, mainly used by Monitor. |
| */ |
| public static final String SERVICE_PROTOCOL = "derby.serviceProtocol"; |
| public static final String SERVICE_LOCALE = "derby.serviceLocale"; |
| |
| // Undocumented |
| public static final String COLLATION = "derby.database.collation"; |
| // These are the six possible values for collation type if the collation |
| // derivation is not NONE. If collation derivation is NONE, then collation |
| // type should be ignored. The TERRITORY_BASED collation uses the default |
| // collator strength while the four with a colon uses a specific strength. |
| public static final String UCS_BASIC_COLLATION = |
| "UCS_BASIC"; |
| public static final String TERRITORY_BASED_COLLATION = |
| "TERRITORY_BASED"; |
| public static final String TERRITORY_BASED_PRIMARY_COLLATION = |
| "TERRITORY_BASED:PRIMARY"; |
| public static final String TERRITORY_BASED_SECONDARY_COLLATION = |
| "TERRITORY_BASED:SECONDARY"; |
| public static final String TERRITORY_BASED_TERTIARY_COLLATION = |
| "TERRITORY_BASED:TERTIARY"; |
| public static final String TERRITORY_BASED_IDENTICAL_COLLATION = |
| "TERRITORY_BASED:IDENTICAL"; |
| // Define a static string for collation derivation NONE |
| public static final String COLLATION_NONE = |
| "NONE"; |
| |
| /** |
| * db2j.storage.dataNotSyncedAtCheckPoint |
| * <p> |
| * When set, the store system will not force a sync() call on the |
| * containers during a checkpoint. |
| * <p> |
| * An internal debug system only flag. The recovery system will not |
| * work properly if this flag is enabled, it is provided to do performance |
| * debugging to see whether the system is I/O bound based on checkpoint |
| * synchronous I/O. |
| * <p> |
| * |
| **/ |
| public static final String STORAGE_DATA_NOT_SYNCED_AT_CHECKPOINT = |
| "db2j.storage.dataNotSyncedAtCheckPoint"; |
| |
| /** |
| * db2j.storage.dataNotSyncedAtAllocation |
| * <p> |
| * When set, the store system will not force a sync() call on the |
| * containers when pages are allocated. |
| * <p> |
| * An internal debug system only flag. The recovery system will not |
| * work properly if this flag is enabled, it is provided to do performance |
| * debugging to see whether the system is I/O bound based on page allocation |
| * synchronous I/O. |
| * <p> |
| * |
| **/ |
| public static final String STORAGE_DATA_NOT_SYNCED_AT_ALLOCATION = |
| "db2j.storage.dataNotSyncedAtAllocation"; |
| |
| /** |
| * db2j.storage.logNotSynced |
| * <p> |
| * When set, the store system will not force a sync() call on the log at |
| * commit. |
| * <p> |
| * An internal debug system only flag. The recovery system will not |
| * work properly if this flag is enabled, it is provided to do performance |
| * debugging to see whether the system is I/O bound based on log file |
| * synchronous I/O. |
| * <p> |
| * |
| **/ |
| public static final String STORAGE_LOG_NOT_SYNCED = |
| "db2j.storage.logNotSynced"; |
| |
| |
| /** |
| * <p> |
| * derby.storage.useDefaultFilePermissions = {false,true} |
| * </p> |
| * <p> |
| * When set to true, the store system will not limit file permissions of |
| * files created by Derby to owner, but rely on the current OS default. On |
| * Unix, this is determined by {@code umask(1)}. Only relevant for JVM >= |
| * 6. |
| * </p> |
| * <p> |
| * The default value is {@code true} on embedded, but {@code false} on the |
| * Network server if started from command line, otherwise it is true for |
| * the server, too (i.e. started via API). |
| * </p> |
| */ |
| String STORAGE_USE_DEFAULT_FILE_PERMISSIONS = |
| "derby.storage.useDefaultFilePermissions"; |
| |
| /** |
| * Internal. True if the network server was started from the command line |
| * (not from API). Used to determine whether to narrow file permissions |
| * iff {@code derby.storage.useDefaultFilePermissions} isn't specified. |
| * <B>INTERNAL USE ONLY</B> |
| */ |
| String SERVER_STARTED_FROM_CMD_LINE = |
| "derby.__serverStartedFromCmdLine"; |
| } |