Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6 System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64 User : User ( 0) PHP Version : 7.4.6 Disable Function : NONE Directory : C:/xampp/tomcat/webapps/docs/config/ |
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 7 Configuration Reference (7.0.103) - The Cluster Valve object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print"> .noPrint {display: none;} td#mainBody {width: 100%;} </style><style type="text/css"> code {background-color:rgb(224,255,255);padding:0 0.1em;} code.attributeName, code.propertyName {background-color:transparent;} table { border-collapse: collapse; text-align: left; } table *:not(table) { /* Prevent border-collapsing for table child elements like <div> */ border-collapse: separate; } th { text-align: left; } div.codeBox pre code, code.attributeName, code.propertyName, code.noHighlight, .noHighlight code { background-color: transparent; } div.codeBox { overflow: auto; margin: 1em 0; } div.codeBox pre { margin: 0; padding: 4px; border: 1px solid #999; border-radius: 5px; background-color: #eff8ff; display: table; /* To prevent <pre>s from taking the complete available width. */ /* When it is officially supported, use the following CSS instead of display: table to prevent big <pre>s from exceeding the browser window: max-width: available; width: min-content; */ } div.codeBox pre.wrap { white-space: pre-wrap; } table.defaultTable tr, table.detail-table tr { border: 1px solid #CCC; } table.defaultTable tr:nth-child(even), table.detail-table tr:nth-child(even) { background-color: #FAFBFF; } table.defaultTable tr:nth-child(odd), table.detail-table tr:nth-child(odd) { background-color: #EEEFFF; } table.defaultTable th, table.detail-table th { background-color: #88b; color: #fff; } table.defaultTable th, table.defaultTable td, table.detail-table th, table.detail-table td { padding: 5px 8px; } p.notice { border: 1px solid rgb(255, 0, 0); background-color: rgb(238, 238, 238); color: rgb(0, 51, 102); padding: 0.5em; margin: 1em 2em 1em 1em; } </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="https://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt=" The Apache Tomcat Servlet/JSP Container " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 7</font></h1><font face="arial,helvetica,sanserif">Version 7.0.103, Mar 16 2020</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.svg" align="right" alt="Apache Logo" border="0" style="width: 266px;height: 83px;"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li><li><a href="https://wiki.apache.org/tomcat/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="jar-scanner.html">JarScanner</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="sessionidgenerator.html">SessionIdGenerator</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>web.xml</strong></p><ul><li><a href="filter.html">Filter</a></li></ul><p><strong>Other</strong></p><ul><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>The Cluster Valve object</h1><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote> <ul><li><a href="#Introduction">Introduction</a></li><li><a href="#org.apache.catalina.ha.tcp.ReplicationValve">org.apache.catalina.ha.tcp.ReplicationValve</a><ol><li><a href="#org.apache.catalina.ha.tcp.ReplicationValve/Attributes">Attributes</a></li></ol></li><li><a href="#org.apache.catalina.ha.session.JvmRouteBinderValve">org.apache.catalina.ha.session.JvmRouteBinderValve</a><ol><li><a href="#org.apache.catalina.ha.session.JvmRouteBinderValve/Attributes">Attributes</a></li></ol></li><li><a href="#org.apache.catalina.ha.authenticator.ClusterSingleSignOn">org.apache.catalina.ha.authenticator.ClusterSingleSignOn</a><ol><li><a href="#org.apache.catalina.ha.authenticator.ClusterSingleSignOn/Attributes">Attributes</a></li></ol></li></ul> </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote> <p> A cluster valve is no different from any other <a href="valve.html">Tomcat <code>Valve</code></a>. The cluster valves are interceptors in the invocation chain for HTTP requests, and the clustering implementation uses these valves to make intelligent decision around data and when data should be replicated. </p> <p> A cluster valve must implement the <code>org.apache.catalina.ha.ClusterValve</code> interface. This is a simple interface that extends the <code>org.apache.catalina.Valve</code> interface. </p> </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.tcp.ReplicationValve"><strong>org.apache.catalina.ha.tcp.ReplicationValve</strong></a></font></td></tr><tr><td><blockquote> The <code>ReplicationValve</code> will notify the cluster at the end of an HTTP request so that the cluster can make a decision whether there is data to be replicated or not. <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.tcp.ReplicationValve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote> <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code class="attributeName">className</code></strong></td><td align="left" valign="center"> Set value to <code>org.apache.catalina.ha.tcp.ReplicationValve</code> </td></tr><tr><td align="left" valign="center"><code class="attributeName">filter</code></td><td align="left" valign="center"> For known file extensions or urls, you can use this Valve to notify the cluster that the session has not been modified during this request and the cluster doesn't have to probe the session managers for changes. If the request matches this filter pattern, the cluster assumes there has been no session change. An example filter would look like <code> filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt" </code>. The filter is a regular expression using <code>java.util.regex</code>. </td></tr><tr><td align="left" valign="center"><code class="attributeName">primaryIndicator</code></td><td align="left" valign="center"> Boolean value, so to true, and the replication valve will insert a request attribute with the name defined by the <code>primaryIndicatorName</code> attribute. The value inserted into the request attribute is either <code>Boolean.TRUE</code> or <code>Boolean.FALSE</code> </td></tr><tr><td align="left" valign="center"><code class="attributeName">primaryIndicatorName</code></td><td align="left" valign="center"> Default value is <code>org.apache.catalina.ha.tcp.isPrimarySession</code> The value defined here is the name of the request attribute that contains the boolean value if the session is primary on this server or not. </td></tr><tr><td align="left" valign="center"><code class="attributeName">statistics</code></td><td align="left" valign="center"> Boolean value. Set to <code>true</code> if you want the valve to collect request statistics. Default value is <code>false</code> </td></tr></table> </blockquote></td></tr></table> </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.JvmRouteBinderValve"><strong>org.apache.catalina.ha.session.JvmRouteBinderValve</strong></a></font></td></tr><tr><td><blockquote> In case of a mod_jk failover, the <code>JvmRouteBinderValve</code> will replace the <code>jvmWorker</code> attribute in the session Id, to make future requests stick to this node. If you want fallback capability, don't enable this valve, but if you want your failover to stick, and for mod_jk not to have to keep probing the node that went down, you use this valve. <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.JvmRouteBinderValve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote> <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code class="attributeName">className</code></strong></td><td align="left" valign="center"> <code>org.apache.catalina.ha.session.JvmRouteBinderValve</code> </td></tr><tr><td align="left" valign="center"><code class="attributeName">enabled</code></td><td align="left" valign="center"> Default value is <code>true</code> Runtime attribute to turn on and off turn over of the session's jvmRoute value. </td></tr><tr><td align="left" valign="center"><code class="attributeName">sessionIdAttribute</code></td><td align="left" valign="center"> Old sessionid before failover is registered in request attributes with this attribute. Default attribute name is <code>org.apache.catalina.ha.session.JvmRouteOrignalSessionID</code>. </td></tr></table> </blockquote></td></tr></table> </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.authenticator.ClusterSingleSignOn"><strong>org.apache.catalina.ha.authenticator.ClusterSingleSignOn</strong></a></font></td></tr><tr><td><blockquote> The <code>ClusterSingleSignOn</code> supports feature of single sign on in cluster. By using <code>ClusterSingleSignOn</code>, the security identity authenticated by one web application is recognized by other web applications on the same virtual host, and it is propagated to other nodes in the cluster. <p>See the <a href="host.html#Single_Sign_On">Single Sign On</a> special feature on the <strong>Host</strong> element for more information.</p> <p><strong>Note:</strong> ClusterSingleSignOn can be configured at host level cluster only. </p> <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.authenticator.ClusterSingleSignOn/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote> <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code class="attributeName">className</code></strong></td><td align="left" valign="center"> <p>Java class name of the implementation to use. This MUST be set to <strong>org.apache.catalina.ha.authenticator.ClusterSingleSignOn</strong>.</p> </td></tr><tr><td align="left" valign="center"><code class="attributeName">cookieDomain</code></td><td align="left" valign="center"> <p>Sets the host domain to be used for sso cookies.</p> </td></tr><tr><td align="left" valign="center"><code class="attributeName">mapSendOptions</code></td><td align="left" valign="center"> <p>The Valve uses a replicated map. You can setup the flag for how this map sends messages. The default value is <code>6</code> (synchronous). Note that if you use asynchronous messaging it is possible for update messages to be processed by the receiving node in a different order to the order in which they were sent.</p> </td></tr><tr><td align="left" valign="center"><code class="attributeName">requireReauthentication</code></td><td align="left" valign="center"> <p>Default false. Flag to determine whether each request needs to be reauthenticated to the security <strong>Realm</strong>. If "true", this Valve uses cached security credentials (username and password) to reauthenticate to the <strong>Realm</strong> each request associated with an SSO session. If "false", the Valve can itself authenticate requests based on the presence of a valid SSO cookie, without rechecking with the <strong>Realm</strong>.</p> </td></tr><tr><td align="left" valign="center"><code class="attributeName">rpcTimeout</code></td><td align="left" valign="center"> <p>The Valve uses a replicated map. This is the timeout for messages that transfer state to/from the other nodes in the cluster. If not specified, a default value of <code>15000</code> milliseconds is used. </p> </td></tr><tr><td align="left" valign="center"><code class="attributeName">terminateOnStartFailure</code></td><td align="left" valign="center"> <p>Set to <code>true</code> if you wish this Valve to fail if the underlying replication fails to start. If the Valve fails, then the associated container will fail to start. If you set this attribute to false, and the underlying replications fails to start, the Valve will start and it will attempt to join the cluster and start replication as part of the heartbeat process. If not specified, the default value of <code>false</code> is used.</p> </td></tr><tr><td align="left" valign="center"><code class="attributeName">accessTimeout</code></td><td align="left" valign="center"> The timeout for a ping message. If a remote map does not respond within this timeout period, its regarded as disappeared. Default value is <code>5000</code> milliseconds. </td></tr></table> </blockquote></td></tr></table> </blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em> Copyright © 1999-2020, Apache Software Foundation </em></font></div></td></tr></table></body></html>