File: systemprops.xml

package info (click to toggle)
tomcat9 9.0.115-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 48,140 kB
  • sloc: java: 383,595; xml: 71,225; jsp: 4,682; sh: 1,228; perl: 324; makefile: 18; ansic: 14
file content (698 lines) | stat: -rw-r--r-- 32,302 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
<?xml version="1.0" encoding="UTF-8"?>
<!--
  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="Property replacements">
  <properties>
    <property name="org.apache.tomcat.util.digester. PROPERTY_SOURCE">
      <p>Set this to a comma separated list of fully qualified name of classes
         that implement
         <code>org.apache.tomcat.util.IntrospectionUtils.PropertySource</code>.
         Required to have a public constructor with no arguments.</p>
      <p>Use this to add a property source, that will be invoked when
         <code>${parameter:-default-value}</code> denoted parameters (with
         optional default values) are found in the XML files that Tomcat
         parses.</p>
      <p>Property replacement from the specified property source on the JVM
         system properties can also be done using the
         <code>REPLACE_SYSTEM_PROPERTIES</code> system property.</p>
      <p><code>org.apache.tomcat.util.digester.ServiceBindingPropertySource</code>
        can be used to replace parameters from any Kubernetes service bindings
        that follows the <a href="https://servicebinding.io/">servicebinding.io</a> spec</p>
      <p><code>org.apache.tomcat.util.digester.EnvironmentPropertySource</code>
         can be used to replace parameters from the process' environment
         variables, e.g. injected ConfigMaps or Secret objects in container
         based systems like OpenShift or Kubernetes.</p>
      <p><code>org.apache.tomcat.util.digester.SystemPropertySource</code>
         does replacement with system properties. It is always enabled,
         but can also be specified as part of the property value.</p>
    </property>
    <property name="org.apache.tomcat.util.digester. REPLACE_SYSTEM_PROPERTIES">
      <p>Set this boolean system property to <code>true</code> to cause
         property replacement from the digester property source on the JVM
         system properties.</p>
    </property>
  </properties>

</section>

<section name="Clustering">
  <properties>

    <property name="org.apache.catalina. tribes.dns_lookups">
      <p>This system property is deprecated and will be removed without
      replacement in Apache Tomcat 10 onwards.</p>
      <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. GET_CLASSLOADER_USE_PRIVILEGED">
      <p>Controls whether the EL API classes make use of a privileged block to
      obtain the thread context class loader. When using the EL API within
      Apache Tomcat this does not need to be set as all calls are already
      wrapped in a privileged block further up the stack. It may be required if
      using the EL API under a SecurityManager outside of Apache Tomcat.</p>
      <p>If not specified, the default of <code>false</code> will be used.</p>
    </property>

    <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 <code>null</code>s to objects of
      type Number, Character or Boolean the result will be <code>0</code> for
      Number and Character types and <code>false</code> for Boolean as required
      by the EL 2.2 and earlier specifications. If this property is
      <code>false</code> the result of the coercion will be <code>null</code> as
      required by the EL 3.0 specification.</p>
      <p>If not specified, the default value of <code>false</code> will be
      used.</p>
    </property>

    <property name="org.apache.el.parser. SKIP_IDENTIFIER_CHECK">
      <p>If <code>true</code>, when parsing 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>false</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.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. 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. Parser.STRICT_WHITESPACE">
      <p>If <code>false</code> the requirements for whitespace before an
      attribute name will be relaxed so that the lack of whitespace 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.BUFFER_SIZE">
      <p>The size (in characters) to use when creating a tag buffer.</p>
      <p>If not specified, the default value of
      <code>org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE</code> (512)
      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.runtime.BodyContentImpl.BUFFER_SIZE</code> will be
      destroyed and a new buffer created.</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>&lt;jsp-file&gt;</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>
      <p><strong>Deprecated:</strong> This will be removed in Tomcat 9.0.x
      onwards. It is replaced by the use of the jspFile servlet initialisation
      parameter</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 JSPs.</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>true</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>Use of this system property is deprecated. It will be removed from
      Tomcat 10 onwards.</p>
      <p>If this system property is set to <code>true</code>, the default for
      the <code>encodedSolidusHandling</code> attribute of all Connectors will
      be changed from <code>reject</code> to <code>decode</code>. If decoded, it
      will be treated a path delimiter.</p>
    </property>

  </properties>

</section>


<section name="Specifications">

  <properties>

    <property name="org.apache.catalina. STRICT_SERVLET_COMPLIANCE">
      <p>The default value of this system property is <code>false</code>.</p>
      <p>If this is <code>true</code> the default values will be changed for:</p>
      <ul>
      <li><code>org.apache.catalina.core.<br/>ApplicationContext.GET_RESOURCE_REQUIRE_SLASH</code></li>
      <li><code>org.apache.catalina.core.<br/>ApplicationDispatcher.WRAP_SAME_OBJECT</code></li>
      <li><code>org.apache.catalina.core.<br/>StandardHostValve.ACCESS_SESSION</code></li>
      <li><code>org.apache.catalina.session.<br/>StandardSession.ACTIVITY_CHECK</code></li>
      <li><code>org.apache.catalina.session.<br/>StandardSession.LAST_ACCESS_AT_START</code></li>
      <li><code>org.apache.tomcat.util.http.<br/>ServerCookie.STRICT_NAMING</code></li>
      <li>The <code>resourceOnlyServlets</code> attribute of any
          <a href="context.html">Context</a> element.</li>
      <li>The <code>tldValidation</code> attribute of any
          <a href="context.html">Context</a> element.</li>
      <li>The <code>useRelativeRedirects</code> attribute of any
          <a href="context.html">Context</a> element.</li>
      <li>The <code>xmlNamespaceAware</code> attribute of any
          <a href="context.html">Context</a> element.</li>
      <li>The <code>xmlValidation</code> attribute of any
          <a href="context.html">Context</a> element.</li>
      </ul>
    </property>

    <property name="org.apache.catalina.connector. Response.ENFORCE_ENCODING_IN_GET_WRITER">
      <p>If this is <code>true</code> then
      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)</p>
      <p>If not specified, the default specification compliant value of
      <code>true</code> will be used.</p>
    </property>

    <property name="org.apache.catalina.core.ApplicationContext .GET_RESOURCE_REQUIRE_SLASH">
      <p>If this is <code>true</code> then the path passed to
      <code>ServletContext.getResource()</code> or
      <code>ServletContext.getResourceAsStream()</code> must start with
      &quot;/&quot;. If <code>false</code>, code like
      <code>getResource("myfolder/myresource.txt")</code> will work as Tomcat
      will prepend &quot;/&quot; to the provided path.</p>
      <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
      <code>true</code>, the default of this setting will be <code>true</code>,
      else the default value will be <code>false</code>.</p>
    </property>

    <property name="org.apache.catalina.core. ApplicationDispatcher.WRAP_SAME_OBJECT">
      <p>If this is <code>true</code> then 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.</p>
      <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
      <code>true</code>, the default of this setting will be <code>true</code>,
      else the default value will be <code>false</code>.</p>
    </property>

    <property name="org.apache.tomcat.websocket. STRICT_SPEC_COMPLIANCE">
      <p>The default value of this system property is <code>false</code>.</p>
      <p>If this is <code>true</code> the default values will be changed for:</p>
      <ul>
        <li><code>org.apache.tomcat.websocket.server#isEnforceNoAddAfterHandshake</code>
        (default changes from <code>false</code> to <code>true</code>)</li>
      </ul>
      <p>This system property is deprecated and will be removed in Tomcat
      10.1.</p>
    </property>

    <property name="org.apache.tomcat.util.http. ServerCookie.STRICT_NAMING">
      <p> If this is <code>true</code> then the requirements of the Servlet specification
      that Cookie names must adhere to RFC2109 will be enforced. If this is
      <code>false</code> the naming rules specified in RFC6265 (allow the leading "$")
      will be used.</p>
      <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
      <code>true</code>, the default of this setting will be <code>true</code>,
      else the default value will be <code>false</code>.</p>
    </property>

  </properties>

</section>


<section name="Sessions">

  <properties>

    <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>

    <property name="org.apache.catalina.core. StandardHostValve.ACCESS_SESSION">
      <p>If this is <code>true</code>, 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.</p>
      <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
      <code>true</code>, the default of this setting will be <code>true</code>,
      else the default value will be <code>false</code>.</p>
    </property>

    <property
    name="org.apache.catalina.session. StandardSession.ACTIVITY_CHECK">
      <p>If this 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 <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
      <code>true</code>, the default of this setting will be <code>true</code>,
      else the default value will be <code>false</code>.</p>
    </property>

    <property
    name="org.apache.catalina.session. StandardSession.LAST_ACCESS_AT_START">
      <p>If this is <code>true</code>, the last accessed time for sessions will
      be calculated from the beginning of the previous request. If
      <code>false</code>, the last accessed time for sessions will be calculated
      from the end of the previous request. This also affects how the idle time
      is calculated.</p>
      <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
      <code>true</code>, the default of this setting will be <code>true</code>,
      else the default value will be <code>false</code>.</p>
    </property>

  </properties>

</section>

<section name="Logging">

  <properties>

    <property name="org.apache.juli.formatter">
      <p>If no logging configuration file is specified and no logging configuration class is specified
         using the <code>java.util.logging.config.class</code> and <code>java.util.logging.config.file</code>
         properties the default logging framework <code>org.apache.juli</code> will use the default
         <code>java.util.logging.SimpleFormatter</code> for all console output.
         To simply override the console output formatter, one can use the described property. Example:
         <code>-Dorg.apache.juli.formatter=org.apache.juli.OneLineFormatter</code></p>
    </property>

    <property name="org.apache.juli. AsyncMaxRecordCount">
      <p>The maximum number of log records that the JULI AsyncFileHandler will queue in memory.
         New records are added to the queue and get asynchronously removed from the queue
         and written to the files by a single writer thread.
         When the queue is full and a new record is being logged
         the log record will be handled based on the <code>org.apache.juli.AsyncOverflowDropType</code> setting.</p>
      <p>The default value is <code>10000</code> records.
         This number represents the global number of records, not on a per handler basis.
      </p>
    </property>

    <property name="org.apache.juli. AsyncOverflowDropType">
      <p>When the queue of log records of the JULI AsyncFileHandler is full,
         new log records are handled according to the following setting:
      </p>
         <ul>
           <li><code>1</code> - the newest record in the queue will be dropped and not logged</li>
           <li><code>2</code> - the oldest record in the queue will be dropped and not logged</li>
           <li><code>3</code> - suspend the logging thread until older records got written to the log file and the queue is no longer full.
                                This is the only setting that ensures that no messages get lost.</li>
           <li><code>4</code> - drop the current log record</li>
         </ul>
      <p>The default value is <code>1</code> (drop the newest record in the queue).</p>
    </property>

    <property name="org.apache.juli.logging. UserDataHelper.CONFIG">
      <p>The type of logging to use for errors generated by invalid input data.
         The options are: <code>DEBUG_ALL</code>, <code>INFO_THEN_DEBUG</code>,
         <code>INFO_ALL</code> and <code>NONE</code>. When
         <code>INFO_THEN_DEBUG</code> is used, the period for which errors are
         logged at DEBUG rather than INFO is controlled by the system property
         <code>org.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME</code>.
         </p>
      <p>The default value is <code>INFO_THEN_DEBUG</code>.</p>
      <p>The errors currently logged using this system are:</p>
         <ul>
         <li>invalid cookies;</li>
         <li>invalid parameters;</li>
         <li>too many headers, too many parameters (hitting
           <code>maxHeaderCount</code> or <code>maxParameterCount</code> limits
           of a <a href="http.html">connector</a>).</li>
         <li>invalid host names</li>
         <li>HTTP/2 stream closures</li>
         </ul>
         <p>Other errors triggered by invalid input data may be added to this
         system in later versions.</p>
    </property>

    <property name="org.apache.juli.logging. UserDataHelper.SUPPRESSION_TIME">
      <p>When using <code>INFO_THEN_DEBUG</code> for
         <code>org.apache.juli.logging.UserDataHelper.CONFIG</code> this system
         property controls how long messages are logged at DEBUG after a message
         has been logged at INFO. Once this period has elapsed, the next message
         will be logged at INFO followed by a new suppression period where
         messages are logged at DEBUG and so on. The value is measured
         in seconds.</p>
      <p>A value of <code>0</code> is equivalent to using <code>INFO_ALL</code>
         for <code>org.apache.juli.logging.UserDataHelper.CONFIG</code>.</p>
      <p>A negative value means an infinite suppression period.</p>
      <p>The default value is <code>86400</code> (24 hours).</p>
    </property>
  </properties>

</section>

<section name="JAR Scanning">

  <properties>
    <property name="tomcat.util.scan. StandardJarScanFilter.jarsToSkip">
      <p>A list of comma-separated file name patterns that is used as the default
         value for <code>pluggabilitySkip</code> and <code>tldSkip</code>
         attributes of the standard
         <a href="jar-scan-filter.html">JarScanFilter</a> implementation.</p>
      <p>The coded default is empty, however the system property is set in
         a default Tomcat installation via the
         <code>$CATALINA_BASE/conf/catalina.properties</code> file.</p>
    </property>

    <property name="tomcat.util.scan. StandardJarScanFilter.jarsToScan">
      <p>A list of comma-separated file name patterns that is used as the default
         value for <code>pluggabilityScan</code> and <code>tldScan</code>
         attributes of the standard
         <a href="jar-scan-filter.html">JarScanFilter</a> implementation.</p>
      <p>The coded default is empty, however the system property is set in
         a default Tomcat installation via the
         <code>$CATALINA_BASE/conf/catalina.properties</code> file.</p>
    </property>

  </properties>

</section>

<section name="Websockets">

  <properties>

    <property name="org.apache.tomcat. websocket.ALLOW_UNSUPPORTED_EXTENSIONS">
      <p>If <code>true</code>, allow unknown extensions to be declared by
      the user.</p>
      <p>The default value is <code>false</code>.</p>
    </property>

    <property name="org.apache.tomcat. websocket.DEFAULT_BUFFER_SIZE">
      <p>The default size for buffers used in the Websockets container.</p>
      <p>The default value is <code>8192</code> which corresponds to 8 KiB.</p>
    </property>

    <property name="org.apache.tomcat. websocket.DEFAULT_ORIGIN_HEADER_VALUE">
      <p>Default value of the origin header that will be sent by the client
         during the upgrade handshake.</p>
      <p>The default is null so that no origin header is sent.</p>
    </property>

    <property name="org.apache.tomcat. websocket.DEFAULT_PROCESS_PERIOD">
      <p>The number of periodic ticks between periodic processing which
         involves in particular session expiration checks.</p>
      <p>The default value is <code>10</code> which corresponds to 10
         seconds.</p>
    </property>

    <property name="org.apache.tomcat. websocket.DISABLE_BUILTIN_EXTENSIONS">
      <p>If <code>true</code>, disable all built-in extensions provided by the
         server, such as message compression.</p>
      <p>The default value is <code>false</code>.</p>
    </property>

  </properties>

</section>

<section name="Other">

  <properties>

    <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="javax.sql.DataSource.Factory">
      <p>The class name of the factory to use to create resources of type
      <code>javax.sql.DataSource</code>. If not specified the default of
      <code>org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory</code> is used
      which is a package renamed (to avoid conflicts) copy of
      <a href="https://commons.apache.org/dbcp">Apache Commons DBCP 2</a>.</p>
    </property>

    <property name="javax.mail.Session.Factory">
      <p>The class name of the factory to use to create resources of type
      <code>javax.mail.Session</code>. If not specified the default of
      <code>org.apache.naming.factory.MailSessionFactory</code> is used.</p>
    </property>

    <property name="jvmRoute">
      <p>Deprecated. Use the <code>jvmRoute</code> attribute of the
      <a href="engine.html">Engine</a> element. This will be removed in Tomcat
      10.1.</p>
      <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="catalina.config">
      <p>The location from which to load the catalina.properties configuration
      file. This may be an absolute URL, a relative (to the current working
      directory) URL or an alternative file name in which case Tomcat will
      attempt to load the file from the default location of
      <code>$CATALINA_BASE/conf/</code>.</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="org.apache.tomcat.util.buf.UriUtil. WAR_SEPARATOR">
      <p>The character to use to separate the WAR file and WAR content parts of
      a WAR URL using the custom WAR scheme provided by Tomcat. This is
      equivalent to how <code>!</code> is used in JAR URLs.</p>
      <p>If not specified, the default value of <code>*</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. To support this feature, this
      system property is used as the default for the
      <strong>throwOnFailure</strong> attribute of a Connector.</p>
      <p>If not specified, the default value of <code>false</code> will be
      used.</p>
    </property>

    <property name="org.apache.catalina.startup. RealmRuleSet.MAX_NESTED_REALM_LEVELS">
      <p>The CombinedRealm allows nested Realms. This property controls the
      maximum permitted number of levels of nesting.</p>
      <p>If not specified, the default value of <code>3</code> will be used.</p>
    </property>

    <property name="org.apache.catalina.startup. CredentialHandlerRuleSet.MAX_NESTED_LEVELS">
      <p>The NestedCredentialHandler allows nested CredentialHandlers. This
      property controls the maximum permitted number of levels of nesting.</p>
      <p>If not specified, the default value of <code>3</code> will be used.</p>
    </property>

  </properties>

</section>


</body>
</document>