Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / MyDerby-10.3 / java / engine / org / apache / derby / iapi / reference / Property.java
diff --git a/JMCR-Stable/real-world application/MyDerby-10.3/java/engine/org/apache/derby/iapi/reference/Property.java b/JMCR-Stable/real-world application/MyDerby-10.3/java/engine/org/apache/derby/iapi/reference/Property.java
new file mode 100644 (file)
index 0000000..e78b908
--- /dev/null
@@ -0,0 +1,937 @@
+/*\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