--- /dev/null
+/*\r
+\r
+ Derby - Class org.apache.derby.iapi.reference.Property\r
+\r
+ Licensed to the Apache Software Foundation (ASF) under one or more\r
+ contributor license agreements. See the NOTICE file distributed with\r
+ this work for additional information regarding copyright ownership.\r
+ The ASF licenses this file to you under the Apache License, Version 2.0\r
+ (the "License"); you may not use this file except in compliance with\r
+ the License. You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+\r
+ */\r
+\r
+package org.apache.derby.iapi.reference;\r
+\r
+/**\r
+ List of all properties understood by the system. It also has some other static fields.\r
+\r
+\r
+ <P>\r
+ This class exists for two reasons\r
+ <Ol>\r
+ <LI> To act as the internal documentation for the properties. \r
+ <LI> To remove the need to declare a java static field for the property\r
+ name in the protocol/implementation class. This reduces the footprint as\r
+ the string is final and thus can be included simply as a String constant pool entry.\r
+ </OL>\r
+ <P>\r
+ This class should not be shipped with the product.\r
+\r
+ <P>\r
+ This class has no methods, all it contains are String's which by\r
+ are public, static and final since they are declared in an interface.\r
+*/\r
+\r
+public interface Property { \r
+\r
+ /**\r
+ * Name of the file that contains system wide properties. Has to be located\r
+ * in ${derby.system.home} if set, otherwise ${user.dir}\r
+ */\r
+ public static final String PROPERTIES_FILE = "derby.properties";\r
+\r
+\r
+ /**\r
+ By convention properties that must not be stored any persistent form of\r
+ service properties start with this prefix.\r
+ */\r
+ public static final String PROPERTY_RUNTIME_PREFIX = "derby.__rt.";\r
+\r
+ /*\r
+ ** derby.service.* and related properties\r
+ */\r
+\r
+\r
+ /*\r
+ ** derby.stream.* and related properties\r
+ */\r
+ \r
+ /**\r
+ derby.stream.error.logSeverityLevel=integerValue\r
+ <BR>\r
+ Indicates the minimum level of severity for errors that are reported to the error stream.\r
+ Default to 0 in a "sane" server, and SESSION_SEVERITY in the insane (and product) server.\r
+\r
+ @see org.apache.derby.iapi.error.ExceptionSeverity#SESSION_SEVERITY\r
+ */\r
+ String LOG_SEVERITY_LEVEL = "derby.stream.error.logSeverityLevel";\r
+\r
+ /**\r
+ derby.stream.error.file=<b>absolute or relative error log filename</b>\r
+ Takes precendence over derby.stream.error.method.\r
+ Takes precendence over derby.stream.error.field\r
+ */\r
+ \r
+ String ERRORLOG_FILE_PROPERTY = "derby.stream.error.file";\r
+\r
+ /**\r
+ derby.stream.error.method=\r
+ <className>.<methodName> returning an OutputStream or Writer object\r
+ Takes precendence over derby.stream.error.field\r
+ */\r
+ \r
+ String ERRORLOG_METHOD_PROPERTY = "derby.stream.error.method";\r
+\r
+ /**\r
+ derby.stream.error.field=\r
+ <className>.<fieldName> returning an OutputStream or Writer object>\r
+ */\r
+ \r
+ String ERRORLOG_FIELD_PROPERTY = "derby.stream.error.field";\r
+\r
+ /** \r
+ derby.infolog.append={true,false}\r
+ <BR>\r
+ * If the info stream goes to a file and the file already exist, it can\r
+ * either delete the existing file or append to it. User can specifiy\r
+ * whether info log file should append or not by setting\r
+ * derby.infolog.append={true/false}\r
+ *\r
+ * The default behavior is that the exiting file will be deleted when a new\r
+ * info stream is started. \r
+ */\r
+ String LOG_FILE_APPEND = "derby.infolog.append";\r
+\r
+ /*\r
+ ** derby.service.* and related properties\r
+ */\r
+ /**\r
+ derby.system.home\r
+ <BR>\r
+ Property name for the home directory. Any relative path in the\r
+ system should be accessed though this property\r
+ */\r
+ String SYSTEM_HOME_PROPERTY = "derby.system.home";\r
+\r
+ /**\r
+ derby.system.bootAll\r
+ <BR>\r
+ Automatically boot any services at start up time. When set to true\r
+ this services will be booted at startup, otherwise services\r
+ will be booted on demand.\r
+ */\r
+ String BOOT_ALL = "derby.system.bootAll";\r
+\r
+ /**\r
+ derby.database.noAutoBoot\r
+ <BR>\r
+ Don't automatically boot this service at start up time. When set to true\r
+ this service will only be booted on demand, otherwise the service\r
+ will be booted at startup time if possible.\r
+ */\r
+ String NO_AUTO_BOOT = "derby.database.noAutoBoot";\r
+ \r
+ /**\r
+ derby.__deleteOnCreate\r
+ <BR>\r
+ Before creating this service delete any remenants (e.g. the directory)\r
+ of a previous service at the same location.\r
+\r
+ <P>\r
+ <B>INTERNAL USE ONLY</B> \r
+ */\r
+ String DELETE_ON_CREATE = "derby.__deleteOnCreate";\r
+\r
+ /**\r
+ derby.database.forceDatabaseLock\r
+ <BR>\r
+ Derby attempts to prevent two instances of Derby from booting\r
+ the same database with the use of a file called db.lck inside the \r
+ database directory.\r
+\r
+ On some platforms, Derby can successfully prevent a second \r
+ instance of Derby from booting the database, and thus prevents \r
+ corruption. If this is the case, you will see an SQLException like the\r
+ following:\r
+\r
+ ERROR XJ040: Failed to start database 'toursDB', see the next exception\r
+ for details.\r
+ ERROR XSDB6: Another instance of Derby may have already booted the\r
+ database C:\databases\toursDB.\r
+\r
+ The error is also written to the information log.\r
+\r
+ On other platforms, Derby issues a warning message if an instance\r
+ of Derby attempts to boot a database that may already have a\r
+ running instance of Derby attached to it.\r
+ However, it does not prevent the second instance from booting, and thus\r
+ potentially corrupting, the database.\r
+\r
+ If a warning message has been issued, corruption may already have \r
+ occurred.\r
+\r
+\r
+ The warning message looks like this:\r
+\r
+ WARNING: Derby (instance 80000000-00d2-3265-de92-000a0a0a0200) is\r
+ attempting to boot the database /export/home/sky/wombat even though\r
+ Derby (instance 80000000-00d2-3265-8abf-000a0a0a0200) may still be\r
+ active. Only one instance of Derby \r
+ should boot a database at a time. Severe and non-recoverable corruption\r
+ can result and may have already occurred.\r
+\r
+ The warning is also written to the information log.\r
+\r
+ This warning is primarily a Technical Support aid to determine the \r
+ cause of corruption. However, if you see this warning, your best \r
+ choice is to close the connection and exit the JVM. This minimizes the\r
+ risk of a corruption. Close all instances of Derby, then restart\r
+ one instance of Derby and shut down the database properly so that\r
+ the db.lck file can be removed. The warning message continues to appear\r
+ until a proper shutdown of the Derby system can delete the db.lck\r
+ file.\r
+\r
+ If the "derby.database.forceDatabaseLock" property is set to true\r
+ then this default behavior is altered on systems where Derby cannot\r
+ prevent this dual booting. If the to true, then if the platform does\r
+ not provide the ability for Derby to guarantee no double boot, and\r
+ if Derby finds a db.lck file when it boots, it will throw an \r
+ exception (TODO - mikem - add what exception), leave the db.lck file\r
+ in place and not boot the system. At this point the system will not \r
+ boot until the db.lck file is removed by hand. Note that this \r
+ situation can arise even when 2 VM's are not accessing the same\r
+ Derby system. Also note that if the db.lck file is removed by \r
+ hand while a VM is still accessing a derby.database, then there \r
+ is no way for Derby to prevent a second VM from starting up and \r
+ possibly corrupting the database. In this situation no warning \r
+ message will be logged to the error log.\r
+\r
+ To disable the default behavior of the db.lck file set property as \r
+ follows:\r
+\r
+ derby.database.forceDatabaseLock=true\r
+\r
+ */\r
+ String FORCE_DATABASE_LOCK = "derby.database.forceDatabaseLock";\r
+\r
+\r
+ /*\r
+ ** derby.locks.* and related properties\r
+ */\r
+\r
+ String LOCKS_INTRO = "derby.locks.";\r
+\r
+ /**\r
+ derby.locks.escalationThreshold\r
+ <BR>\r
+ The number of row locks on a table after which we escalate to\r
+ table locking. Also used by the optimizer to decide when to\r
+ start with table locking. The String value must be convertible\r
+ to an int.\r
+ */\r
+ String LOCKS_ESCALATION_THRESHOLD = "derby.locks.escalationThreshold";\r
+\r
+ /**\r
+ The default value for LOCKS_ESCALATION_THRESHOLD\r
+ */\r
+ int DEFAULT_LOCKS_ESCALATION_THRESHOLD = 5000;\r
+\r
+ /**\r
+ The minimum value for LOCKS_ESCALATION_THRESHOLD\r
+ */\r
+ int MIN_LOCKS_ESCALATION_THRESHOLD = 100;\r
+\r
+ /**\r
+ Configuration parameter for deadlock timeouts, set in seconds.\r
+ */\r
+ public static final String DEADLOCK_TIMEOUT = "derby.locks.deadlockTimeout";\r
+\r
+ /**\r
+ Default value for deadlock timesouts (20 seconds)\r
+ */\r
+ public static final int DEADLOCK_TIMEOUT_DEFAULT = 20;\r
+\r
+ /**\r
+ Default value for wait timeouts (60 seconds)\r
+ */\r
+ public static final int WAIT_TIMEOUT_DEFAULT = 60;\r
+\r
+ /**\r
+ Turn on lock monitor to help debug deadlocks. Default value is OFF.\r
+ With this property turned on, all deadlocks will cause a tracing to be\r
+ output to the db2j.LOG file.\r
+ <BR>\r
+ This property takes effect dynamically.\r
+ */\r
+ public static final String DEADLOCK_MONITOR = "derby.locks.monitor";\r
+\r
+ /**\r
+ Turn on deadlock trace to help debug deadlocks.\r
+ \r
+ Effect 1: This property only takes effect if DEADLOCK_MONITOR is turned\r
+ ON for deadlock trace. With this property turned on, each lock object\r
+ involved in a deadlock will output its stack trace to db2j.LOG.\r
+ \r
+ Effect 2: When a timeout occurs, a lockTable dump will also be output\r
+ to db2j.LOG. This acts independent of DEADLOCK_MONITOR.\r
+ <BR>\r
+ This property takes effect dynamically.\r
+ */\r
+ public static final String DEADLOCK_TRACE = "derby.locks.deadlockTrace";\r
+\r
+ /**\r
+ Configuration parameter for lock wait timeouts, set in seconds.\r
+ */\r
+ public static final String LOCKWAIT_TIMEOUT = "derby.locks.waitTimeout";\r
+\r
+ /*\r
+ ** db2j.database.*\r
+ */\r
+ \r
+ /**\r
+ derby.database.classpath\r
+ <BR>\r
+ Consists of a series of two part jar names.\r
+ */\r
+ String DATABASE_CLASSPATH = "derby.database.classpath";\r
+\r
+ /**\r
+ internal use only, passes the database classpathinto the class manager\r
+ */\r
+ String BOOT_DB_CLASSPATH = PROPERTY_RUNTIME_PREFIX + "database.classpath";\r
+\r
+\r
+\r
+ /**\r
+ derby.database.propertiesOnly\r
+ */\r
+ String DATABASE_PROPERTIES_ONLY = "derby.database.propertiesOnly";\r
+\r
+ /**\r
+ * Ths property is private to Derby.\r
+ * This property is forcibly set by the Network Server to override\r
+ * any values which the user may have set. This property is only used to\r
+ * parameterize the Basic security policy used by the Network Server.\r
+ * This property is the location of the derby jars.\r
+ **/\r
+ public static final String DERBY_INSTALL_URL = "derby.install.url";\r
+\r
+ /**\r
+ * Ths property is private to Derby.\r
+ * This property is forcibly set by the Network Server to override\r
+ * any values which the user may have set. This property is only used to\r
+ * parameterize the Basic security policy used by the Network Server.\r
+ * This property is the hostname which the server uses.\r
+ **/\r
+ public static final String DERBY_SECURITY_HOST = "derby.security.host";\r
+\r
+ /*\r
+ ** derby.storage.*\r
+ */\r
+\r
+ /**\r
+ * Creation of an access factory should be done with no logging.\r
+ * This is a run-time property that should not make it to disk\r
+ * in the service.properties file.\r
+ **/\r
+ public static final String CREATE_WITH_NO_LOG =\r
+ PROPERTY_RUNTIME_PREFIX + "storage.createWithNoLog";\r
+\r
+ /**\r
+ * The page size to create a table or index with. Must be a multiple\r
+ * of 2k, usual choices are: 2k, 4k, 8k, 16k, 32k, 64k. The default\r
+ * if property is not set is 4k.\r
+ **/\r
+ public static final String PAGE_SIZE_PARAMETER = "derby.storage.pageSize";\r
+\r
+ /**\r
+ * The default page size to use for tables that contain a long column.\r
+ **/\r
+ public static final String PAGE_SIZE_DEFAULT_LONG = "32768";\r
+\r
+ /**\r
+ * The bump threshold for pages sizes for create tables\r
+ * If the approximate column sizes of a table is greater than this\r
+ * threshold, the page size for the tbl is bumped to PAGE_SIZE_DEFAULT_LONG\r
+ * provided the page size is not already specified as a property\r
+ **/\r
+ public static final int TBL_PAGE_SIZE_BUMP_THRESHOLD = 4096;\r
+\r
+ /**\r
+ * The bump threshold for pages size for index.\r
+ * If the approximate key columns of an index is greater than this\r
+ * threshold, the page size for the index is bumped to PAGE_SIZE_DEFAULT_LONG\r
+ * provided the page size is not already specified as a property\r
+ **/\r
+ public static final int IDX_PAGE_SIZE_BUMP_THRESHOLD = 1024;\r
+\r
+ /**\r
+ * Derby supports Row Level Locking (rll), but you can use this \r
+ * property to disable rll. Applications which use rll will use more \r
+ * system resources, so if an application knows that it does not need rll \r
+ * then it can use this system property to force all locking in the system \r
+ * to lock at the table level.\r
+ * \r
+ * This property can be set to the boolean values "true" or "false". \r
+ * Setting the property to true is the same as not setting the property at \r
+ * all, and will result in rll being enabled. Setting the property to \r
+ * false disables rll.\r
+ *\r
+ **/\r
+ public static final String ROW_LOCKING = "derby.storage.rowLocking";\r
+\r
+ /**\r
+ derby.storage.propertiesId\r
+ <BR>\r
+ Stores the id of the conglomerate that holds the per-database\r
+ properties. Is stored in the service.properties file.\r
+\r
+ <P>\r
+ <B>INTERNAL USE ONLY</B> \r
+ */\r
+ String PROPERTIES_CONGLOM_ID = "derby.storage.propertiesId";\r
+\r
+ /**\r
+ derby.storage.tempDirectory\r
+ <BR>\r
+ Sets the temp directory for a database.\r
+ <P>\r
+ */\r
+ String STORAGE_TEMP_DIRECTORY = "derby.storage.tempDirectory";\r
+ \r
+ /**\r
+ * derby.system.durability\r
+ * <p>\r
+ * Currently the only valid supported case insensitive value is 'test' \r
+ * Note, if this property is set to any other value other than 'test', this \r
+ * property setting is ignored\r
+ * \r
+ * In the future, this property can be used to set different modes - for \r
+ * example a form of relaxed durability where database can recover to a \r
+ * consistent state, or to enable some kind of in-memory mode.\r
+ * <BR>\r
+ * When set to 'test', the store system will not force sync calls in the \r
+ * following cases \r
+ * - for the log file at each commit\r
+ * - for the log file before data page is forced to disk\r
+ * - for page allocation when file is grown\r
+ * - for data writes during checkpoint\r
+ * \r
+ * That means\r
+ * - a commit no longer guarantees that the transaction's modification\r
+ * will survive a system crash or JVM termination\r
+ * - the database may not recover successfully upon restart\r
+ * - a near full disk at runtime may cause unexpected errors\r
+ * - database can be in an inconsistent state\r
+ * <p>\r
+ * This setting is provided for performance reasons and should ideally\r
+ * only be used when the system can withstand the above consequences.\r
+ * <BR> \r
+ * One sample use would be to use this mode (derby.system.durability=test)\r
+ * when using Derby as a test database, where high performance is required\r
+ * and the data is not very important\r
+ * <BR>\r
+ * Valid supported values are test\r
+ * <BR>\r
+ * Example\r
+ * derby.system.durability=test\r
+ * One can set this as a command line option to the JVM when starting the\r
+ * application or in the derby.properties file. It is a system level \r
+ * property.\r
+ * <BR>\r
+ * This property is static; if you change it while Derby is running, \r
+ * the change does not take effect until you reboot. \r
+ */\r
+ public static final String DURABILITY_PROPERTY = \r
+ "derby.system.durability";\r
+ \r
+ /**\r
+ * This is a value supported for derby.system.durability\r
+ * When derby.system.durability=test, the storage system does not\r
+ * force syncs and the system may not recover. It is also possible that\r
+ * the database might be in an inconsistent state\r
+ * @see #DURABILITY_PROPERTY\r
+ */\r
+ public static final String DURABILITY_TESTMODE_NO_SYNC = "test";\r
+ \r
+ /**\r
+ * derby.storage.fileSyncTransactionLog\r
+ * <p>\r
+ * When set, the store system will use sync() call on the log at \r
+ * commit instead of doing a write sync on all writes to the log;\r
+ * even if the write sync mode (rws) is supported in the JVM. \r
+ * <p>\r
+ *\r
+ **/\r
+ public static final String FILESYNC_TRANSACTION_LOG = \r
+ "derby.storage.fileSyncTransactionLog";\r
+\r
+\r
+ /**\r
+ * derby.storage.logArchiveMode\r
+ *<BR>\r
+ *used to identify whether the log is being archived for the database or not.\r
+ * It Is stored in the service.properties file.\r
+ * \r
+ * This property can be set to the boolean values "true" or "false". \r
+ * Setting the property to true means log is being archived, which could be \r
+ * used for roll-forward recovery. Setting the property to \r
+ * false disables log archive mode.\r
+ *<P>\r
+ *<B>INTERNAL USE ONLY</B> \r
+ */\r
+ String LOG_ARCHIVE_MODE = "derby.storage.logArchiveMode";\r
+\r
+\r
+ /**\r
+ * derby.storage.logDeviceWhenBackedUp\r
+ *<BR>\r
+ * This property indicates the logDevice location(path) when the backup was \r
+ * taken, used to restore the log to the same location while restoring from\r
+ * backup.\r
+ *<P>\r
+ *<B>INTERNAL USE ONLY</B> \r
+ */\r
+ String LOG_DEVICE_AT_BACKUP = "derby.storage.logDeviceWhenBackedUp";\r
+ \r
+ /**\r
+ * derby.module.modulename\r
+ * <P>\r
+ * Defines a new module. Modulename is a name used when loading the definition\r
+ * of a module, it provides the linkage to other properties used to define the\r
+ * module, derby.env.jdk.modulename and derby.env.classes.modulename.\r
+ * \r
+ * The value is a Java class name that implements functionality required by\r
+ * the other parts of a Derby system or database. The class can optionally implement\r
+ * these classes to control its use and startup.\r
+ * <UL>\r
+ * <LI> org.apache.derby.iapi.services.monitor.ModuleControl\r
+ * <LI> org.apache.derby.iapi.services.monitor.ModuleSupportable\r
+ * </UL>\r
+ */\r
+ String MODULE_PREFIX = "derby.module.";\r
+\r
+ /**\r
+ * derby.subSubProtocol.xxx\r
+ *<p>\r
+ *\r
+ * A new subsubprotocol can be defined by specifying the class that handles storage for the\r
+ * subsubprotocol by implementing the\r
+ * {@link org.apache.derby.io.StorageFactory StorageFactory} or\r
+ * {@link org.apache.derby.io.WritableStorageFactory WritableStorageFactory} interface. This\r
+ * is done using a property named db2j.subsubprotocol.<i>xxx</i> where <i>xxx</i> is the subsubprotocol name.\r
+ * Subsubprotocol names are case sensitive and must be at least 3 characters in length.\r
+ *<p>\r
+ *\r
+ * For instance:\r
+ *<br>\r
+ * derby.subSubProtocol.mem=com.mycompany.MemStore\r
+ *<br>\r
+ * defines the "mem" subsubprotocol with class com.mycompany.MemStore as its StorageFactory implementation.\r
+ * A database implemented using this subsubprotocol can be opened with the URL "jdbc:derby:mem:myDatabase".\r
+ *<p>\r
+ *\r
+ * Subsubprotocols "directory", "classpath", "jar", "http", and "https" are built in and may not be overridden.\r
+ */\r
+ String SUB_SUB_PROTOCOL_PREFIX = "derby.subSubProtocol.";\r
+ \r
+ \r
+ /**\r
+ * Declare a minimum JDK level the class for a module or sub sub protocol supports.\r
+ * Set to an integer value from the JVMInfo class to represent a JDK.\r
+ * If the JDK is running at a lower level than the class requires\r
+ * then the class will not be loaded and will not be used.\r
+ * \r
+ * If there are multiple modules classes implementing the same functionality\r
+ * and supported by the JVM, then the one with the highest JDK\r
+ * requirements will be selected. This functionality is not present for\r
+ * sub sub protocol classes yet.\r
+ * \r
+ * See org.apache.derby.iapi.services.info.JVMInfo.JDK_ID\r
+ */\r
+ String MODULE_ENV_JDK_PREFIX = "derby.env.jdk.";\r
+\r
+ /**\r
+ * Declare a set of classes that the class for a module or sub sub protocol requires.\r
+ * Value is a comma separated list of classes. If the classes listed are not\r
+ * loadable by the virtual machine then the module class will not be loaded and will not be used.\r
+ */\r
+ String MODULE_ENV_CLASSES_PREFIX = "derby.env.classes.";\r
+\r
+ /*\r
+ ** derby.language.*\r
+ */\r
+\r
+ /**\r
+ * The size of the table descriptor cache used by the\r
+ * data dictionary. Database. Static.\r
+ * <p>\r
+ * Undocumented.\r
+ */\r
+ String LANG_TD_CACHE_SIZE = "derby.language.tableDescriptorCacheSize";\r
+ int LANG_TD_CACHE_SIZE_DEFAULT = 64;\r
+\r
+ /**\r
+ * The size of the permissions cache used by the data dictionary.\r
+ * Database. Static.\r
+ * <p>\r
+ * Undocumented.\r
+ */\r
+ String LANG_PERMISSIONS_CACHE_SIZE = "derby.language.permissionsCacheSize";\r
+ int LANG_PERMISSIONS_CACHE_SIZE_DEFAULT = 64;\r
+ /**\r
+ * The size of the stored prepared statment descriptor cache \r
+ * used by the data dictionary. Database. Static.\r
+ * <p>\r
+ * Externally visible.\r
+ */\r
+ String LANG_SPS_CACHE_SIZE = "derby.language.spsCacheSize";\r
+ int LANG_SPS_CACHE_SIZE_DEFAULT =32;\r
+\r
+ /**\r
+ derby.language.stalePlanCheckInterval\r
+\r
+ <P>\r
+ This property tells the number of times a prepared statement should\r
+ be executed before checking whether its plan is stale. Database.\r
+ Dynamic.\r
+ <P>\r
+ Externally visible.\r
+ */\r
+ String LANGUAGE_STALE_PLAN_CHECK_INTERVAL =\r
+ "derby.language.stalePlanCheckInterval";\r
+\r
+ \r
+ /** Default value for above */\r
+ int DEFAULT_LANGUAGE_STALE_PLAN_CHECK_INTERVAL = 100;\r
+\r
+ /** Minimum value for above */\r
+ int MIN_LANGUAGE_STALE_PLAN_CHECK_INTERVAL = 5;\r
+\r
+\r
+ /*\r
+ Statement plan cache size\r
+ By default, 100 statements are cached\r
+ */\r
+ String STATEMENT_CACHE_SIZE = "derby.language.statementCacheSize";\r
+ int STATEMENT_CACHE_SIZE_DEFAULT = 100;\r
+\r
+ /*\r
+ ** Transactions\r
+ */\r
+\r
+ /** The property name used to get the default value for XA transaction\r
+ * timeout in seconds. Zero means no timout.\r
+ */\r
+ String PROP_XA_TRANSACTION_TIMEOUT = "derby.jdbc.xaTransactionTimeout";\r
+\r
+ /** The default value for XA transaction timeout if the corresponding\r
+ * property is not found in system properties. Zero means no timeout.\r
+ */\r
+ int DEFAULT_XA_TRANSACTION_TIMEOUT = 0;\r
+\r
+\r
+ /* some static fields */\r
+ public static final String DEFAULT_USER_NAME = "APP";\r
+ public static final String DATABASE_MODULE = "org.apache.derby.database.Database";\r
+\r
+ /*\r
+ Property to enable Grant & Revoke SQL authorization. Introduced in Derby 10.2\r
+ release. New databases and existing databases (in Derby 10.2) still use legacy\r
+ authorization by default and by setting this property to true could request for\r
+ SQL standard authorization model.\r
+ */\r
+ public static final String\r
+ SQL_AUTHORIZATION_PROPERTY = "derby.database.sqlAuthorization";\r
+\r
+ /**\r
+ * Default connection level authorization, set to\r
+ * one of NO_ACCESS, READ_ONLY_ACCESS or FULL_ACCESS.\r
+ * Defaults to FULL_ACCESS if not set.\r
+ */\r
+ public static final String\r
+ DEFAULT_CONNECTION_MODE_PROPERTY = "derby.database.defaultConnectionMode";\r
+\r
+ public static final String NO_ACCESS = "NOACCESS";\r
+ public static final String READ_ONLY_ACCESS = "READONLYACCESS";\r
+ public static final String FULL_ACCESS = "FULLACCESS";\r
+\r
+ /**\r
+ * List of users with read-only connection level authorization.\r
+ */\r
+ public static final String\r
+ READ_ONLY_ACCESS_USERS_PROPERTY = "derby.database.readOnlyAccessUsers";\r
+\r
+ /**\r
+ * List of users with full access connection level authorization.\r
+ */\r
+ public static final String\r
+ FULL_ACCESS_USERS_PROPERTY = "derby.database.fullAccessUsers";\r
+\r
+ /*\r
+ ** Authentication\r
+ */\r
+\r
+ // This is the property that turn on/off authentication\r
+ public static final String REQUIRE_AUTHENTICATION_PARAMETER =\r
+ "derby.connection.requireAuthentication";\r
+\r
+ public static final String AUTHENTICATION_PROVIDER_PARAMETER =\r
+ "derby.authentication.provider";\r
+\r
+ // This is the user property used by Derby and LDAP schemes\r
+ public static final String USER_PROPERTY_PREFIX = "derby.user.";\r
+\r
+ // These are the different built-in providers Derby supports\r
+\r
+ public static final String AUTHENTICATION_PROVIDER_BUILTIN =\r
+ "BUILTIN";\r
+\r
+ public static final String AUTHENTICATION_PROVIDER_LDAP =\r
+ "LDAP";\r
+\r
+ public static final String AUTHENTICATION_SERVER_PARAMETER =\r
+ "derby.authentication.server";\r
+\r
+ /*\r
+ ** Log\r
+ */\r
+\r
+ /**\r
+ Property name for specifying log switch interval\r
+ */\r
+ public static final String LOG_SWITCH_INTERVAL = "derby.storage.logSwitchInterval";\r
+\r
+ /**\r
+ Property name for specifying checkpoint interval\r
+ */\r
+ public static final String CHECKPOINT_INTERVAL = "derby.storage.checkpointInterval";\r
+\r
+ /**\r
+ Property name for specifying log archival location\r
+ */\r
+ public static final String LOG_ARCHIVAL_DIRECTORY = "derby.storage.logArchive";\r
+\r
+ /**\r
+ Property name for specifying log Buffer Size\r
+ */\r
+ public static final String LOG_BUFFER_SIZE = "derby.storage.logBufferSize";\r
+ \r
+ \r
+ /*\r
+ ** Upgrade\r
+ */\r
+ \r
+ /**\r
+ * Allow database upgrade during alpha/beta time. Only intended\r
+ * to be used to allow Derby developers to test their upgrade code.\r
+ * Only supported as a system/application (derby.properties) property.\r
+ */\r
+ String ALPHA_BETA_ALLOW_UPGRADE = "derby.database.allowPreReleaseUpgrade";\r
+ \r
+ /**\r
+ db2j.inRestore\r
+ <BR>\r
+ This Property is used to indicate that we are in restore mode if\r
+ if the system is doing a restore from backup.\r
+ Used internally to set flags to indicate that service is not booted.\r
+ <P>\r
+ <B>INTERNAL USE ONLY</B> \r
+ */\r
+ String IN_RESTORE_FROM_BACKUP = PROPERTY_RUNTIME_PREFIX + "inRestore";\r
+ \r
+ \r
+ /**\r
+ db2j.deleteRootOnError\r
+ <BR>\r
+ If we a new root is created while doing restore from backup,\r
+ it should be deleted if a error occur before we could complete restore \r
+ successfully.\r
+ <P>\r
+ <B>INTERNAL USE ONLY</B> \r
+ */\r
+ String DELETE_ROOT_ON_ERROR = PROPERTY_RUNTIME_PREFIX + "deleteRootOnError";\r
+ \r
+ public static final String HTTP_DB_FILE_OFFSET = "db2j.http.file.offset";\r
+ public static final String HTTP_DB_FILE_LENGTH = "db2j.http.file.length";\r
+ public static final String HTTP_DB_FILE_NAME = "db2j.http.file.name";\r
+\r
+ /**\r
+ * derby.drda.startNetworkServer\r
+ *<BR>\r
+ * If true then we will attempt to start a DRDA network server when Derby \r
+ * boots, turning the current JVM into a server.\r
+ *<BR>\r
+ * Default: false\r
+ */\r
+ public static final String START_DRDA = "derby.drda.startNetworkServer";\r
+\r
+ /**\r
+ * derby.drda.logConnections\r
+ *<BR>\r
+ * Indicates whether to log connections and disconnections.\r
+ *<BR>\r
+ * Default: false\r
+ */\r
+ public final static String DRDA_PROP_LOGCONNECTIONS = "derby.drda.logConnections";\r
+ /**\r
+ * derby.drda.traceAll\r
+ *<BR>\r
+ * Turns tracing on for all sessions.\r
+ *<BR>\r
+ * Default: false\r
+ */\r
+ public final static String DRDA_PROP_TRACEALL = "derby.drda.traceAll";\r
+ public final static String DRDA_PROP_TRACE = "derby.drda.trace";\r
+\r
+ /**\r
+ * derby.drda.traceDirectory\r
+ *<BR>\r
+ * The directory used for network server tracing files.\r
+ *<BR>\r
+ * Default: if the derby.system.home property has been set,\r
+ * it is the default. Otherwise, the default is the current directory.\r
+ */\r
+ public final static String DRDA_PROP_TRACEDIRECTORY = "derby.drda.traceDirectory";\r
+\r
+ public final static String DRDA_PROP_MINTHREADS = "derby.drda.minThreads";\r
+ public final static String DRDA_PROP_MAXTHREADS = "derby.drda.maxThreads";\r
+ public final static String DRDA_PROP_TIMESLICE = "derby.drda.timeSlice";\r
+\r
+\r
+ /**\r
+ * derby.drda.sslMode\r
+ * <BR>\r
+ * This property may be set to one of the following three values\r
+ * off: No Wire encryption\r
+ * basic: Encryption, but no SSL client authentication\r
+ * peerAuthentication: Encryption and with SSL client\r
+ * authentication \r
+ */\r
+\r
+ public final static String DRDA_PROP_SSL_MODE = "derby.drda.sslMode";\r
+\r
+ /**\r
+ * derby.drda.securityMechanism\r
+ *<BR>\r
+ * This property can be set to one of the following values\r
+ * USER_ONLY_SECURITY\r
+ * CLEAR_TEXT_PASSWORD_SECURITY\r
+ * ENCRYPTED_USER_AND_PASSWORD_SECURITY\r
+ * STRONG_PASSWORD_SUBSTITUTE_SECURITY\r
+ * <BR>\r
+ * if derby.drda.securityMechanism is set to a valid mechanism, then\r
+ * the Network Server accepts only connections which use that\r
+ * security mechanism. No other types of connections are accepted.\r
+ * <BR>\r
+ * if the derby.drda.securityMechanism is not set at all, then the\r
+ * Network Server accepts any connection which uses a valid\r
+ * security mechanism.\r
+ * <BR> \r
+ * E.g derby.drda.securityMechanism=USER_ONLY_SECURITY\r
+ * This property is static. Server must be restarted for the property to take effect.\r
+ * Default value for this property is as though it is not set - in which case\r
+ * the server will allow clients with supported security mechanisms to connect\r
+ */\r
+ public final static String DRDA_PROP_SECURITYMECHANISM = "derby.drda.securityMechanism";\r
+\r
+ /**\r
+ * derby.drda.portNumber\r
+ *<BR>\r
+ * The port number used by the network server.\r
+ */\r
+ public final static String DRDA_PROP_PORTNUMBER = "derby.drda.portNumber";\r
+ public final static String DRDA_PROP_HOSTNAME = "derby.drda.host";\r
+\r
+ /**\r
+ * derby.drda.keepAlive\r
+ *\r
+ *<BR>\r
+ * client socket setKeepAlive value\r
+ */\r
+ public final static String DRDA_PROP_KEEPALIVE = "derby.drda.keepAlive";\r
+ \r
+\r
+ /**\r
+ * derby.drda.streamOutBufferSize\r
+ * size of buffer used when stream out for client.\r
+ *\r
+ */\r
+ public final static String DRDA_PROP_STREAMOUTBUFFERSIZE = "derby.drda.streamOutBufferSize";\r
+\r
+ /*\r
+ ** Internal properties, mainly used by Monitor.\r
+ */\r
+ public static final String SERVICE_PROTOCOL = "derby.serviceProtocol";\r
+ public static final String SERVICE_LOCALE = "derby.serviceLocale";\r
+\r
+ public static final String COLLATION = "derby.database.collation";\r
+ // These are the 2 possible values for collation type if the collation \r
+ // derivation is not NONE. If collation derivation is NONE, then collation\r
+ // type should be ignored.\r
+ public static final String UCS_BASIC_COLLATION =\r
+ "UCS_BASIC";\r
+ public static final String TERRITORY_BASED_COLLATION =\r
+ "TERRITORY_BASED";\r
+ // Define a static string for collation derivation NONE\r
+ public static final String COLLATION_NONE =\r
+ "NONE";\r
+\r
+ /**\r
+ * db2j.storage.dataNotSyncedAtCheckPoint\r
+ * <p>\r
+ * When set, the store system will not force a sync() call on the\r
+ * containers during a checkpoint.\r
+ * <p>\r
+ * An internal debug system only flag. The recovery system will not\r
+ * work properly if this flag is enabled, it is provided to do performance\r
+ * debugging to see whether the system is I/O bound based on checkpoint\r
+ * synchronous I/O.\r
+ * <p>\r
+ *\r
+ **/\r
+ public static final String STORAGE_DATA_NOT_SYNCED_AT_CHECKPOINT = \r
+ "db2j.storage.dataNotSyncedAtCheckPoint";\r
+\r
+ /**\r
+ * db2j.storage.dataNotSyncedAtAllocation\r
+ * <p>\r
+ * When set, the store system will not force a sync() call on the\r
+ * containers when pages are allocated.\r
+ * <p>\r
+ * An internal debug system only flag. The recovery system will not\r
+ * work properly if this flag is enabled, it is provided to do performance\r
+ * debugging to see whether the system is I/O bound based on page allocation\r
+ * synchronous I/O.\r
+ * <p>\r
+ *\r
+ **/\r
+ public static final String STORAGE_DATA_NOT_SYNCED_AT_ALLOCATION = \r
+ "db2j.storage.dataNotSyncedAtAllocation";\r
+\r
+ /**\r
+ * db2j.storage.logNotSynced\r
+ * <p>\r
+ * When set, the store system will not force a sync() call on the log at \r
+ * commit.\r
+ * <p>\r
+ * An internal debug system only flag. The recovery system will not\r
+ * work properly if this flag is enabled, it is provided to do performance\r
+ * debugging to see whether the system is I/O bound based on log file\r
+ * synchronous I/O.\r
+ * <p>\r
+ *\r
+ **/\r
+ public static final String STORAGE_LOG_NOT_SYNCED = \r
+ "db2j.storage.logNotSynced";\r
+\r
+}\r