<?xml version="1.0"?> <!-- 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. --> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document url="systemprops.html"> &project; <properties> <title>System Properties</title> </properties> <body> <section name="Table of Contents"> <toc/> </section> <section name="Introduction"> <p>The following sections list the system properties that may be set to modify the default Tomcat behaviour.</p> </section> <section name="Clustering"> <properties> <property name="org.apache.catalina. tribes.dns_lookups"> <p>If <code>true</code>, the clustering module will attempt to use DNS to resolve any host names provided in the cluster configuration.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> </properties> </section> <section name="Expression Language"> <properties> <property name="org.apache.el.BeanELResolver. CACHE_SIZE"> <p>The number of javax.el.BeanELResolver.BeanProperties objects that will be cached by the EL Parser.</p> <p>If not specified, the default of <code>1000</code> will be used.</p> </property> <property name="org.apache.el.ExpressionBuilder. CACHE_SIZE"> <p>The number of parsed EL expressions that will be cached by the EL Parser.</p> <p>If not specified, the default of <code>5000</code> will be used.</p> </property> <property name="org.apache.el.parser. COERCE_TO_ZERO"> <p>If <code>true</code>, when coercing EL expressions to numbers <code>""</code> and <code>null</code> will be coerced to zero as required by the specification.</p> <p>If not specified, the default value of <code>true</code> will be used.</p> </property> <property name="org.apache.el.parser. SKIP_IDENTIFIER_CHECK"> <p>If <code>true</code>, when parsing EL expressions, identifiers will not be checked to ensure that they conform to the Java Language Specification for Java identifiers.</p> <p>If not specified, the default value of <code>true</code> will be used.</p> </property> </properties> </section> <section name="Jasper"> <properties> <property name="org.apache.jasper.compiler. Generator.POOL_TAGS_WITH_EXTENDS"> <p>By default, JSPs that use their own base class via the extends attribute of the page directive, will have Tag pooling disabled since Jasper cannot guarantee that the necessary initialisation will have taken place. This can have a negative impact on performance. Providing the alternative base class calls _jspInit() from Servlet.init(), setting this property to <code>true</code> will enable pooling with an alternative base class. If the alternative base class does not call _jspInit() and this property is <code>true</code>, NPEs will occur when attempting to use tags.</p> <p>If not specified, the default value of <code>false</code> will be used. </p> </property> <property name="org.apache.jasper.compiler. Generator.VAR_EXPRESSIONFACTORY"> <p>The name of the variable to use for the expression language expression factory.</p> <p>If not specified, the default value of <code>_el_expressionfactory</code> will be used.</p> </property> <property name="org.apache.jasper.compiler. Generator.VAR_INSTANCEMANAGER"> <p>The name of the variable to use for the instance manager factory.</p> <p>If not specified, the default value of <code>_jsp_instancemanager</code> will be used.</p> </property> <property name="org.apache.jasper.compiler. Generator.STRICT_GET_PROPERTY"> <p>If <code>true</code>, the requirement to have the object referenced in <code>jsp:getProperty</code> action to be previously "introduced" to the JSP processor, as specified in the chapter JSP.5.3 of JSP 2.0 and later specifications, is enforced.</p> <p>If not specified, the specification compliant default of <code>true</code> will be used.</p> </property> <property name="org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING"> <p>If <code>false</code> the requirements for escaping quotes in JSP attributes will be relaxed so that an unescaped quote will not cause an error.</p> <p>If not specified, the specification compliant default of <code>true</code> will be used.</p> </property> <property name="org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER"> <p>If <code>true</code>, any tag buffer that expands beyond <code>org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE</code> will be destroyed and a new buffer created of the default size.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="org.apache.jasper.runtime. JspFactoryImpl.USE_POOL"> <p>If <code>true</code>, a ThreadLocal <code>PageContext</code> pool will be used.</p> <p>If not specified, the default value of <code>true</code> will be used.</p> </property> <property name="org.apache.jasper.runtime. JspFactoryImpl.POOL_SIZE"> <p>The size of the ThreadLocal <code>PageContext</code>.</p> <p>If not specified, the default value of <code>8</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. JSP_SERVLET_BASE"> <p>The base class of the Servlets generated from the JSPs.</p> <p>If not specified, the default value of <code>org.apache.jasper.runtime.HttpJspBase</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. SERVICE_METHOD_NAME"> <p>The name of the service method called by the base class.</p> <p>If not specified, the default value of <code>_jspService</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. SERVLET_CLASSPATH"> <p>The name of the ServletContext attribute that provides the classpath for the JSP.</p> <p>If not specified, the default value of <code>org.apache.catalina.jsp_classpath</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. JSP_FILE"> <p>The name of the request attribute for <code><jsp-file></code> element of a servlet definition. If present on a request, this overrides the value returned by <code>request.getServletPath()</code> to select the JSP page to be executed.</p> <p>If not specified, the default value of <code>org.apache.catalina.jsp_file</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. PRECOMPILE"> <p>The name of the query parameter that causes the JSP engine to just pregenerate the servlet but not invoke it.</p> <p>If not specified, the default value of <code>jsp_precompile</code> will be used, as defined by JSP specification (JSP.11.4.2).</p> </property> <property name="org.apache.jasper.Constants. JSP_PACKAGE_NAME"> <p>The default package name for compiled jsp pages.</p> <p>If not specified, the default value of <code>org.apache.jsp</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. TAG_FILE_PACKAGE_NAME"> <p>The default package name for tag handlers generated from tag files.</p> <p>If not specified, the default value of <code>org.apache.jsp.tag</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. ALT_DD_ATTR"> <p>The servlet context attribute under which the alternate deployment descriptor for this web application is stored.</p> <p>If not specified, the default value of <code>org.apache.catalina.deploy.alt_dd</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. TEMP_VARIABLE_NAME_PREFIX"> <p>Prefix to use for generated temporary variable names.</p> <p>If not specified, the default value of <code>_jspx_temp</code> will be used.</p> </property> <property name="org.apache.jasper.Constants. USE_INSTANCE_MANAGER_FOR_TAGS"> <p>If <code>true</code>, the instance manager is used to obtain tag handler instances.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> </properties> </section> <section name="Security"> <properties> <property name="org.apache.catalina.connector. RECYCLE_FACADES"> <p>If this is <code>true</code> or if a security manager is in use a new facade object will be created for each request.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="org.apache.catalina.connector. CoyoteAdapter.ALLOW_BACKSLASH"> <p>If this is <code>true</code> the '\' character will be permitted as a path delimiter.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="org.apache.tomcat.util.buf. UDecoder.ALLOW_ENCODED_SLASH"> <p>If this is <code>true</code> '%2F' and '%5C' will be permitted as path delimiters.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="org.apache.coyote. USE_CUSTOM_STATUS_MSG_IN_HEADER"><p>If this is <code>true</code>, custom HTTP status messages will be used within HTTP headers. If a custom message is specified that is not valid for use in an HTTP header (as defined by RFC2616) then the custom message will be ignored and the default message used.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> </properties> </section> <section name="Specification"> <properties> <property name="org.apache.catalina. STRICT_SERVLET_COMPLIANCE"> <p>If this is <code>true</code> the following actions will occur: <ul> <li>any wrapped request or response object passed to an application dispatcher will be checked to ensure that it has wrapped the original request or response. (SRV.8.2 / SRV.14.2.5.1) </li> <li>a call to <code>Response.getWriter()</code> if no character encoding has been specified will result in subsequent calls to <code>Response.getCharacterEncoding()</code> returning <code>ISO-8859-1</code> and the <code>Content-Type</code> response header will include a <code>charset=ISO-8859-1</code> component. (SRV.15.2.22.1) </li> <li>every request that is associated with a session will cause the session's last accessed time to be updated regardless of whether or not the request explicitly accesses the session. (SRV.7.6) </li> <li> cookies will be parsed strictly, by default v0 cookies will not work with any invalid characters. <br/>If set to <code>false</code>, any v0 cookie with invalid character will be switched to a v1 cookie and the value will be quoted. </li> <li> the path in <code>ServletContext.getResource</code> / <code>getResourceAsStream</code> calls must start with a "/".<br/> If set to <code>false</code>, code like <code>getResource("myfolder/myresource.txt")</code> will work. </li> </ul> </p> <p>If this is <code>true</code> the default value will be changed for: <ul> <li><code>org.apache.catalina.connector.Request. ALLOW_EMPTY_QUERY_STRING</code> property</li> </ul> </p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="org.apache.catalina.connector. Request.ALLOW_EMPTY_QUERY_STRING"> <p>If this is <code>true</code> Tomcat will return an empty string rather than <code>null</code> for empty query strings - i.e. query strings where only <code>?</code> is present.</p> <p>If not specified, the value of <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> will be used as the default.</p> </property> <property name="org.apache.catalina.session. StandardSession.ACTIVITY_CHECK"> <p>If this is <code>true</code> or if <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is <code>true</code> Tomcat will track the number of active requests for each session. When determining if a session is valid, any session with at least one active request will always be considered valid.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="org.apache.tomcat.util.http. ServerCookie.ALLOW_EQUALS_IN_VALUE"> <p>If this is <code>true</code> Tomcat will allow '<code>=</code>' characters when parsing unquoted cookie values. If <code>false</code>, cookie values containing '<code>=</code>' will be terminated when the '<code>=</code>' is encountered and the remainder of the cookie value will be dropped.</p> <p>If not specified, the default specification compliant value of <code>false</code> will be used.</p> </property> <property name="org.apache.tomcat.util.http. ServerCookie.ALWAYS_ADD_EXPIRES"> <p>If this is <code>true</code> Tomcat will always add an expires parameter to a SetCookie header even for cookies with version greater than zero. This is to work around a known IE6 and IE7 bug that causes IE to ignore the Max-Age parameter in a SetCookie header.</p> <p>If not specified, the default value of <code>true</code> will be used.</p> </property> </properties> </section> <section name="Sessions"> <properties> <property name="org.apache.catalina.SESSION_COOKIE_NAME"> <p>An alternative name for the session cookie. Defaults to <code>JSESSIONID</code>. Note that the Servlet specification requires this to be <code>JSESSIONID</code>. You should not rely on being able to change this.</p> </property> <property name="org.apache.catalina.SESSION_PARAMETER_NAME"> <p>An alternative name for the session path parameter. Defaults to <code>jsessionid</code>. Note that the Servlet specification requires this to be <code>jsessionid</code>. You should not rely on being able to change this.</p> </property> <property name="org.apache.catalina.authenticator. Constants.SSO_SESSION_COOKIE_NAME"> <p>An alternative name for the single sign on session cookie. Defaults to <code>JSESSIONIDSSO</code>.</p> </property> </properties> </section> <section name="Other"> <properties> <property name="org.apache.coyote.MAX_TRAILER_SIZE"> <p>Limits the total length of trailing headers in the last chunk of a chunked HTTP request. If the value is <code>-1</code>, no limit will be imposed.</p> <p>If not specified, the default value of <code>8192</code> will be used.</p> </property> <property name="catalina.useNaming"> <p>If this is <code>false</code> it will override the <code>useNaming</code> attribute for all <a href="context.html"> Context</a> elements.</p> </property> <property name="jvmRoute"> <p>Provides a default value for the <code>jvmRoute</code> attribute of the <a href="engine.html">Engine</a> element. It does not override the value configured on the <a href="engine.html">Engine</a> element.</p> </property> <property name="org.apache.catalina.loader. WebappClassLoader.ENABLE_CLEAR_REFERENCES"> <p>If <code>true</code>, Tomcat attempts to null out any static or final fields from loaded classes when a web application is stopped as a work around for apparent garbage collection bugs and application coding errors. </p> <p>There have been some issues reported with log4j when this option is <code>true</code>.</p> <p>Applications without memory leaks using recent JVMs should operate correctly with this option set to <code>false</code>.</p> <p>If not specified, the default value of <code>true</code> will be used. </p> </property> <property name="catalina.config"> <p>The URL for the catalina.properties configuration file.</p> </property> <property name="tomcat.util.buf.StringCache.byte.enabled"> <p>If <code>true</code>, the String cache is enabled for <code>ByteChunk</code>.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="tomcat.util.buf.StringCache.char.enabled"> <p>If <code>true</code>, the String cache is enabled for <code>CharChunk</code>.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> <property name="tomcat.util.buf.StringCache.trainThreshold"> <p>The number of times <code>toString()</code> must be called before the cache is activated.</p> <p>If not specified, the default value of <code>20000</code> will be used.</p> </property> <property name="tomcat.util.buf.StringCache.cacheSize"> <p>The size of the String cache.</p> <p>If not specified, the default value of <code>200</code> will be used.</p> </property> <property name="tomcat.util.buf.StringCache.maxStringSize"> <p>The maximum length of String that will be cached.</p> <p>If not specified, the default value of <code>128</code> will be used.</p> </property> <property name="org.apache.tomcat.util. http.FastHttpDateFormat.CACHE_SIZE"> <p>The size of the cache to use parsed and formatted date value.</p> <p>If not specified, the default value of <code>1000</code> will be used.</p> </property> <property name="org.apache.tomcat.util. net.NioSelectorShared"> <p>If <code>true</code>, use a shared selector for servlet write/read.</p> <p>If not specified, the default value of <code>true</code> will be used.</p> </property> <property name="org.apache.catalina.startup. EXIT_ON_INIT_FAILURE"> <p>If <code>true</code>, the server will exit if an exception happens during the server initialization phase.</p> <p>If not specified, the default value of <code>false</code> will be used.</p> </property> </properties> </section> </body> </document>