geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Geronimo v2.1 > Tomcat Native Clustering
Date Mon, 17 May 2010 06:24:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/1/_/styles/combined.css?spaceKey=GMOxDOC21&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/Tomcat+Native+Clustering">Tomcat Native Clustering</a></h2>
    <h4>Page <b>edited</b> by             <a href="http://cwiki.apache.org/confluence/display/~carol%2Bh">Di Hu</a>
    </h4>
        <br/>
                         <h4>Changes (10)</h4>
                                 
    
<div id="page-diffs">
            <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >        &lt;gbean name=&quot;TcpPingInterceptor&quot; class=&quot;org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean&quot;&gt; <br>            &lt;attribute name=&quot;className&quot;&gt;org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor&lt;/attribute&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;attribute <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">name=&quot;initParams&quot;&gt;Interval=60&lt;/attribute&gt;</span> <span class="diff-added-words"style="background-color: #dfd;">name=&quot;initParams&quot;&gt;Interval=240&lt;/attribute&gt;</span> <br></td></tr>
            <tr><td class="diff-unchanged" >            &lt;reference name=&quot;NextInterceptor&quot;&gt; <br>                    &lt;name&gt;TcpFailureDetector&lt;/name&gt;                 <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >To convert this example to a multicast configuration, the DisableMCastInterceptor, StaticMemberInterceptor, and StaticMember definitions need to be removed.  Also, the value for the &quot;address&quot; attribute for the TomcatReceiver definition should be changed to &quot;auto&quot;.  <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >This is an example of setting up unicast clustering with two nodes. If you want to set up unicast clustering with more than two nodes, use a reference <span class="diff-added-words"style="background-color: #dfd;">like</span> &quot;NextStaticMember&quot; in <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">each</span> StaticMemberGBean <span class="diff-added-words"style="background-color: #dfd;">definitions</span> to chain multiple static members. See the following deployment plan snippet as an example. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>{code:XML|borderStyle=solid|title=excerpt from geronimo-web.xml} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > 	 &lt;/gbean&gt; <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">	 &lt;attribute name=&quot;className&quot;&gt;org.apache.catalina.tribes.membership.StaticMember&lt;/attribute&gt; <br></td></tr>
            <tr><td class="diff-unchanged" > 	 &lt;gbean name=&quot;StaticMember2&quot; class=&quot;org.apache.geronimo.tomcat.cluster.StaticMemberGBean&quot;&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;attribute <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">name=&quot;className&quot;&gt;org.apache.catalina.tribes.membership.StaticMember&lt;/attribute&gt;</span> <span class="diff-added-words"style="background-color: #dfd;">name=&quot;initParams&quot;&gt;port=10300</span> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">	  	 &lt;attribute name=&quot;initParams&quot;&gt;port=10300 <br></td></tr>
            <tr><td class="diff-unchanged" >	  	 securePort=-1 <br>	  	 host=127.0.0.1 <br>	  	 domain=test-domain <br>	  	 UniqueId={2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} <br></td></tr>
            <tr><td class="diff-unchanged" >	 &lt;/attribute&gt;
	 &lt;reference name=&quot;NextStaticMember&quot;&gt;
	 &lt;name&gt;StaticMember3&lt;/name&gt;
	 &lt;/reference&gt;
	 &lt;/gbean&gt;  <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">	 &lt;attribute name=&quot;className&quot;&gt;org.apache.catalina.tribes.membership.StaticMember&lt;/attribute&gt; <br></td></tr>
            <tr><td class="diff-unchanged" >	 &lt;gbean name=&quot;StaticMember3&quot; class=&quot;org.apache.geronimo.tomcat.cluster.StaticMemberGBean&quot;&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;attribute <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">name=&quot;className&quot;&gt;org.apache.catalina.tribes.membership.StaticMember&lt;/attribute&gt;</span> <span class="diff-added-words"style="background-color: #dfd;">name=&quot;initParams&quot;&gt;port=10100</span> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">	 	  	 &lt;attribute name=&quot;initParams&quot;&gt;port=10100 <br></td></tr>
            <tr><td class="diff-unchanged" >	 	  	 securePort=-1 <br>	 	  	 host=127.0.0.1 <br>	 	  	 domain=test-domain <br>	 	  	 UniqueId={2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} <br></td></tr>
            <tr><td class="diff-unchanged" >	 &lt;/attribute&gt;
         &lt;/gbean&gt; <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">... <br></td></tr>
            <tr><td class="diff-unchanged" >{code} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;"> <br>Note: Interval=240 in TcpPingInterceptor GBean. Customer confirmed that it is working fine with multiple nodes. <br></td></tr>
        </table>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td class='ScrollbarPrevIcon'><a href="/confluence/display/GMOxDOC21/Farming"><img border='0' align='middle' src='/confluence/images/icons/back_16.gif' width='16' height='16'></a></td><td width='33%' class='ScrollbarPrevName'><a href="/confluence/display/GMOxDOC21/Farming">Farming</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a href="/confluence/display/GMOxDOC21/Clustering"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a href="/confluence/display/GMOxDOC21/Clustering">Clustering</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;<a href="/confluence/display/GMOxDOC21/WADI+Clustering+Support">WADI Clustering Support</a></td><td class='ScrollbarNextIcon'><a href="/confluence/display/GMOxDOC21/WADI+Clustering+Support"><img border='0' align='middle' src='/confluence/images/icons/forwd_16.gif' width='16' height='16'></a></td></tr></table></div>
<p>The Tomcat Web container provides a native clustering solution that can be configured through Geronimo using gbean definitions within config.xml or your deployment descriptors . This document will go through the available GBeans and how to configure them for clustering in a Geronimo server with a tomcat web container.<br/>
A cluster configuration should be considered when you want to improve the scalability and availability of your Web application. The following sections provide detailed instructions on how to set up your cluster nodes and how to deploy your applications with tomcat clustering enabled.</p>

<h1><a name="TomcatNativeClustering-Settingupaclusteringenvironment"></a>Setting up a clustering environment</h1>
<p>Generally, to set up a small cluster you will need at least 2 nodes and 1 HTTP server. The HTTP server is used to serve requests from clients and ensure well-balanced traffic load among different nodes. Similarly, each node is configured to use the same logical Tomcat engine and enable session affinity.</p>

<h1><a name="TomcatNativeClustering-Planningyourcluster"></a>Planning your cluster</h1>
<p>The Tomcat cluster replicates HTTP session data via memory to memory multicast communication.</p>

<p>Every node transmits its session data to every node in the cluster. This algorithm is only efficient when the clusters are small. If the clusters grow too large, the overhead in storage utilization and network traffic becomes excessive. To avoid excessive overhead, consider dividing your nodes into several smaller clusters.</p>

<p>HTTP session data is replicated among the nodes in the cluster using a multicast broadcast. All nodes in the cluster must be on the same physical subnet and multicast broadcast must be supported by that subnet.</p>

<h1><a name="TomcatNativeClustering-PreparingyourWebapplication"></a>Preparing your Web application</h1>
<p>To participate in a cluster configuration, your Web application must be implemented correctly.</p>

<ul>
	<li>Ensure that every object placed in the HTTP session implements java.io.Serializable. The clustering feature serializes the objects when it distributes them to the other nodes in the cluster.</li>
	<li>The deployment descriptor for your Web application, that is the <tt>web.xml</tt> file in the Web archive, must indicate that your Web application is distributable. To do this, insert the <b>distributable</b> element in the deployment descriptor.
<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>Excerpt from web.xml</b></div><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"ISO-8859-1"</span>?&gt;</span>
&lt;!DOCTYPE web-app
    PUBLIC <span class="code-quote">"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"</span>
    <span class="code-quote">"http://java.sun.com/dtd/web-app_2_3.dtd"</span>&gt;

<span class="code-tag">&lt;web-app&gt;</span>
    <span class="code-tag">&lt;display-name&gt;</span> ... <span class="code-tag">&lt;/display-name&gt;</span>
    <span class="code-tag">&lt;description&gt;</span> ... <span class="code-tag">&lt;/description&gt;</span>
    <span class="code-tag">&lt;distributable&gt;</span> <span class="code-tag">&lt;distributable/&gt;</span>
  ...
<span class="code-tag">&lt;/web-app&gt;</span>
</pre>
</div></div></li>
</ul>


<ul>
	<li>Do not use stateful session Enterprise JavaBeans (EJBs). The clustering feature does not replicate stateful EJBs among the nodes in the cluster.</li>
	<li>If your Web application uses a database, make sure the database can be accessed from every node in the cluster. Ensure that the proper JDBC drivers are installed on every node and that the datasource objects are defined correctly on every node.</li>
	<li>Do not depend on dynamic updates to the Java Naming and Directory Interface (JNDI). You will need to configure all the JNDI names used by your application in every node of the cluster. The clustering feature does not replicate JNDI changes among the nodes in the cluster.</li>
</ul>


<h1><a name="TomcatNativeClustering-EnableSessionAffinity"></a>Enable Session Affinity</h1>

<p>Support for session affinity, also known as sticky session support, allows a load balancing service to route an HTTP request back to the same node that created the HTTP session associated with that request until that node fails. You must use session affinity if you configure an asynchronous type of session replication. With asynchronous replication, the reply is returned before the HTTP session is replicated so there is always a chance that the next request using that session arrives before the replication is complete. In this case, the only way to ensure that the request is processed using the correct session data is to route the request to the node that sent the reply to the last request and originated the replication.</p>

<p>For every node in the cluster, update config.xml as follows after the server is stopped</p>


<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>Excerpt from config.xml</b></div><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatEngine"</span>&gt;</span>
  <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
    name=geronimo
    jvmRoute=nodeId
  <span class="code-tag">&lt;/attribute&gt;</span>
<span class="code-tag">&lt;/gbean&gt;</span>
</pre>
</div></div>

<h1><a name="TomcatNativeClustering-Engagingloadbalancingandfailover"></a>Engaging load balancing and failover</h1>
<p>Initially, the server configuration includes an AJP connector suitable for exchanging messages with a load balancing service. See <a href="/confluence/display/GMOxDOC21/Configuring+a+remote+Apache+HTTP+server" title="Configuring a remote Apache HTTP server">Configuring a remote Apache HTTP server</a> for more information about the HTTP server configuration.</p>

<h1><a name="TomcatNativeClustering-Deployingyourapplicationtoacluster"></a>Deploying your application to a cluster</h1>

<p>To deploy your application to a cluster and make sure HTTP sessions are replicated successfully, cluster configuration elements of Tomcat Web containers must be configured using GBean definitions within deployment plans.</p>

<p>If you want to deploy your Web application to a cluster, install your WAR files to the appropriate cluster member, assuring that you use the correct deployment plan for each member. Here is the template for your Web application deployment plan</p>

<ul>
	<li>Sample geronimo-web.xml for geronimo 2.1.4 and below
<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>geronimo-web.xml</b></div><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;</span>
&lt;web-app xmlns=<span class="code-quote">"http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1"</span>
         <span class="code-keyword">xmlns:dep</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>&gt;

    <span class="code-tag">&lt;dep:environment&gt;</span>
        <span class="code-tag">&lt;dep:moduleId&gt;</span>
        <span class="code-tag">&lt;dep:groupId&gt;</span>org.mygroup<span class="code-tag">&lt;/dep:groupId&gt;</span>
        <span class="code-tag">&lt;dep:artifactId&gt;</span>web-cluster-server1<span class="code-tag">&lt;/dep:artifactId&gt;</span>
        <span class="code-tag">&lt;dep:version&gt;</span>2.1.1.2<span class="code-tag">&lt;/dep:version&gt;</span>
        <span class="code-tag">&lt;dep:type&gt;</span>war<span class="code-tag">&lt;/dep:type&gt;</span>
        <span class="code-tag">&lt;/dep:moduleId&gt;</span>
        <span class="code-tag">&lt;dep:dependencies/&gt;</span>
        <span class="code-tag">&lt;dep:hidden-classes/&gt;</span>
        <span class="code-tag">&lt;dep:non-overridable-classes/&gt;</span>
    <span class="code-tag">&lt;/dep:environment&gt;</span>

    <span class="code-tag">&lt;context-root&gt;</span>/servlet-examples-cluster<span class="code-tag">&lt;/context-root&gt;</span>

    <span class="code-tag">&lt;security-realm-name&gt;</span>geronimo-properties-realm<span class="code-tag">&lt;/security-realm-name&gt;</span>
    <span class="code-tag">&lt;security&gt;</span>
        <span class="code-tag">&lt;default-principal&gt;</span>
        <span class="code-tag">&lt;principal name=<span class="code-quote">"anonymous"</span> class=<span class="code-quote">"org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"</span>/&gt;</span>
      <span class="code-tag">&lt;/default-principal&gt;</span>
      <span class="code-tag">&lt;role-mappings&gt;</span>
        <span class="code-tag">&lt;role role-name=<span class="code-quote">"tomcat"</span>&gt;</span>
          <span class="code-tag">&lt;principal name=<span class="code-quote">"admin"</span> class=<span class="code-quote">"org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"</span>/&gt;</span>
        <span class="code-tag">&lt;/role&gt;</span>
      <span class="code-tag">&lt;/role-mappings&gt;</span>
    <span class="code-tag">&lt;/security&gt;</span>

    <span class="code-tag">&lt;cluster&gt;</span>TomcatCluster<span class="code-tag">&lt;/cluster&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.CatalinaClusterGBean"</span> name=<span class="code-quote">"TomcatCluster"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.SimpleTcpCluster<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            managerClassName=org.apache.catalina.ha.session.DeltaManager
            expireSessionsOnShutdown=false
            useDirtyFlag=true
            notifyListenersOnReplication=true
        <span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"TomcatValveChain"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>ReplicationValve<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"ClusterListenerChain"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>ClusterSessionListener<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Channel"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatGroupChannel<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelGBean"</span> name=<span class="code-quote">"TomcatGroupChannel"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.GroupChannel<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Membership"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatMembership<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Receiver"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatReceiver<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Sender"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatSender<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"ChannelInterceptor"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatChannelInterceptor<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.MembershipServiceGBean"</span> name=<span class="code-quote">"TomcatMembership"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.McastService<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            mcastAddr=228.0.0.4
            mcastPort=45564
            mcastFrequency=500
            mcastDropTime=3000
        <span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ReceiverGBean"</span> name=<span class="code-quote">"TomcatReceiver"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.nio.NioReceiver<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            tcpListenAddress=IPAddressIn
            tcpListenPort=4001
            tcpSelectorTimeout=100
            tcpThreadCount=6
        <span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.SenderGBean"</span> name=<span class="code-quote">"TomcatSender"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.ReplicationTransmitter<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            replicationMode=pooled
            waitForAck=true
        <span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span> name=<span class="code-quote">"ReplicationValve"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.ReplicationValve<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>filter=.*\.gif;.*\.js;.*\.css;.*\.png;.*\.jpeg;.*\.jpg;.*\.htm;.*\.html;.*\.txt;<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"NextValve"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>JvmRouteBinderValve<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span> name=<span class="code-quote">"JvmRouteBinderValve"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.JvmRouteBinderValve<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>enabled=true<span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterListenerGBean"</span> name=<span class="code-quote">"ClusterSessionListener"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.ClusterSessionListener<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"NextListener"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>JvmRouteSessionIDBinderListener<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterListenerGBean"</span> name=<span class="code-quote">"JvmRouteSessionIDBinderListener"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener<span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span> name=<span class="code-quote">"TomcatChannelInterceptor"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector<span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
<span class="code-tag">&lt;/web-app&gt;</span>
</pre>
</div></div></li>
</ul>


<ul>
	<li>Sample geronimo-web.xml for geronimo versions above 2.1.4. This does not include g 2.2<br/>
After applying fix to 2.1 through GERONIMO-4187 there are some modifications which needs to picked up by your configuration through geronimo-web.xml</li>
</ul>


<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>geronimo-web.xml</b></div><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;</span>
&lt;web-app xmlns=<span class="code-quote">"http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1"</span>
         <span class="code-keyword">xmlns:dep</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>&gt;

    <span class="code-tag">&lt;dep:environment&gt;</span>
        <span class="code-tag">&lt;dep:moduleId&gt;</span>
        <span class="code-tag">&lt;dep:groupId&gt;</span>org.mygroup<span class="code-tag">&lt;/dep:groupId&gt;</span>
        <span class="code-tag">&lt;dep:artifactId&gt;</span>web-cluster-server1<span class="code-tag">&lt;/dep:artifactId&gt;</span>
        <span class="code-tag">&lt;dep:version&gt;</span>2.1.1.2<span class="code-tag">&lt;/dep:version&gt;</span>
        <span class="code-tag">&lt;dep:type&gt;</span>war<span class="code-tag">&lt;/dep:type&gt;</span>
        <span class="code-tag">&lt;/dep:moduleId&gt;</span>
        <span class="code-tag">&lt;dep:dependencies/&gt;</span>
        <span class="code-tag">&lt;dep:hidden-classes/&gt;</span>
        <span class="code-tag">&lt;dep:non-overridable-classes/&gt;</span>
    <span class="code-tag">&lt;/dep:environment&gt;</span>

    <span class="code-tag">&lt;context-root&gt;</span>/servlet-examples-cluster<span class="code-tag">&lt;/context-root&gt;</span>

    <span class="code-tag">&lt;security-realm-name&gt;</span>geronimo-properties-realm<span class="code-tag">&lt;/security-realm-name&gt;</span>
    <span class="code-tag">&lt;security&gt;</span>
        <span class="code-tag">&lt;default-principal&gt;</span>
        <span class="code-tag">&lt;principal name=<span class="code-quote">"anonymous"</span> class=<span class="code-quote">"org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"</span>/&gt;</span>
      <span class="code-tag">&lt;/default-principal&gt;</span>
      <span class="code-tag">&lt;role-mappings&gt;</span>
        <span class="code-tag">&lt;role role-name=<span class="code-quote">"tomcat"</span>&gt;</span>
          <span class="code-tag">&lt;principal name=<span class="code-quote">"admin"</span> class=<span class="code-quote">"org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"</span>/&gt;</span>
        <span class="code-tag">&lt;/role&gt;</span>
      <span class="code-tag">&lt;/role-mappings&gt;</span>
    <span class="code-tag">&lt;/security&gt;</span>

    <span class="code-tag">&lt;cluster&gt;</span>TomcatCluster<span class="code-tag">&lt;/cluster&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.CatalinaClusterGBean"</span> name=<span class="code-quote">"TomcatCluster"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.SimpleTcpCluster<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"TomcatValveChain"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>ReplicationValve<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"ClusterListenerChain"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>ClusterSessionListener<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Channel"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatGroupChannel<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"ClusterManager"</span>&gt;</span>                 
                 <span class="code-tag">&lt;name&gt;</span>TomcatClusterManager<span class="code-tag">&lt;/name&gt;</span>
         <span class="code-tag">&lt;/reference&gt;</span>                             
    <span class="code-tag">&lt;/gbean&gt;</span>
&lt;gbean name=<span class="code-quote">"TomcatClusterManager"</span>                                   
class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterManagerGBean"</span>&gt;         
            &lt;attribute                                                  
name=<span class="code-quote">"className"</span>&gt;org.apache.catalina.ha.session.DeltaManager<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>name=somename                  
                                        expireSessionsOnShutdown=false                                
                                         useDirtyFlag=true              
                                         notifyListenersOnReplication=true                                       
            <span class="code-tag">&lt;/attribute&gt;</span>                                                
        <span class="code-tag">&lt;/gbean&gt;</span>                                                        

    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelGBean"</span> name=<span class="code-quote">"TomcatGroupChannel"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.GroupChannel<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Membership"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatMembership<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Receiver"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatReceiver<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"Sender"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatSender<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"ChannelInterceptor"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>TomcatChannelInterceptor<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.MembershipServiceGBean"</span> name=<span class="code-quote">"TomcatMembership"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.McastService<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            mcastAddr=228.0.0.4
            mcastPort=45564
            mcastFrequency=500
            mcastDropTime=3000
        <span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ReceiverGBean"</span> name=<span class="code-quote">"TomcatReceiver"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.nio.NioReceiver<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            tcpListenAddress=IPAddressIn
            tcpListenPort=4001
            tcpSelectorTimeout=100
            tcpThreadCount=6
        <span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.SenderGBean"</span> name=<span class="code-quote">"TomcatSender"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.ReplicationTransmitter<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>
            replicationMode=pooled
            waitForAck=true
        <span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span> name=<span class="code-quote">"ReplicationValve"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.ReplicationValve<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>filter=.*\.gif;.*\.js;.*\.css;.*\.png;.*\.jpeg;.*\.jpg;.*\.htm;.*\.html;.*\.txt;<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"NextValve"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>JvmRouteBinderValve<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span> name=<span class="code-quote">"JvmRouteBinderValve"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.JvmRouteBinderValve<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>enabled=true<span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterListenerGBean"</span> name=<span class="code-quote">"ClusterSessionListener"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.ClusterSessionListener<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;reference name=<span class="code-quote">"NextListener"</span>&gt;</span>
            <span class="code-tag">&lt;name&gt;</span>JvmRouteSessionIDBinderListener<span class="code-tag">&lt;/name&gt;</span>
        <span class="code-tag">&lt;/reference&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterListenerGBean"</span> name=<span class="code-quote">"JvmRouteSessionIDBinderListener"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener<span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
    <span class="code-tag">&lt;gbean class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span> name=<span class="code-quote">"TomcatChannelInterceptor"</span>&gt;</span>
        <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector<span class="code-tag">&lt;/attribute&gt;</span>
    <span class="code-tag">&lt;/gbean&gt;</span>
<span class="code-tag">&lt;/web-app&gt;</span>
</pre>
</div></div>

<p>where </p>
<ul>
	<li><em>web-cluster-server1</em> should match the WAR file name. It can be different for each node in the cluster.</li>
</ul>


<p>On each node, deploy your Web application, either via admin console or <b>deploy</b> command, following this syntax:</p>
<div class="panel" style="border-style: solid;border-width: 1px;"><div class="panelContent">
<p><tt>deploy --user <em>name</em> --password <em>word</em> deploy <em>archive</em> <em>plan</em></tt></p>
</div></div>
<p>where </p>
<ul>
	<li><em>name</em> is replaced with a user name authorized to manage the server. If you omit this option, you will be prompted to enter a user name.</li>
	<li><em>word</em> is replaced with the password used to authenticate the user. If you omit this option, you will be prompted to enter a password.</li>
	<li><em>archive</em> is replaced with a file specification to your Web application WAR file.</li>
	<li><em>plan</em> is replaced with a file specification to your deployment plan.</li>
</ul>


<p>Note: After server installation, the default user name is initially <b>system</b>, and the default password is <b>manager</b>.</p>

<h1><a name="TomcatNativeClustering-SampleTomcatclusteringwithunicastconfiguration"></a>Sample Tomcat clustering with unicast configuration</h1>

<p>The following code snippet is part of a clustering example that uses unicast configuration. Static members are defined using <tt>org.apache.geronimo.tomcat.cluster.StaticMemberGBean</tt>. You have to define each static member within your deployment plan to make sure your application is clustered successfully, and make sure that TCP ports for session replication are defined consistently on each node.</p>

<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>excerpt from geronimo-web.xml</b></div><div class="codeContent panelContent">
<pre class="code-xml">
...
    <span class="code-tag">&lt;cluster&gt;</span>TomcatCluster<span class="code-tag">&lt;/cluster&gt;</span>
        <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatCluster"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.CatalinaClusterGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.SimpleTcpCluster<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"ClusterListenerChain"</span>&gt;</span> 
                    <span class="code-tag">&lt;name&gt;</span>TomcatClusterListenerChain<span class="code-tag">&lt;/name&gt;</span>
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"TomcatValveChain"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>ReplicationValve<span class="code-tag">&lt;/name&gt;</span>  
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"Channel"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>TomcatChannel<span class="code-tag">&lt;/name&gt;</span>
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"ClusterManager"</span>&gt;</span> 
                    <span class="code-tag">&lt;name&gt;</span>TomcatClusterManager<span class="code-tag">&lt;/name&gt;</span>
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatClusterListenerChain"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterListenerGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.ClusterSessionListener<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"ReplicationValve"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.ReplicationValve<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"NextValve"</span>&gt;</span>
        			<span class="code-tag">&lt;type&gt;</span>TomcatValve<span class="code-tag">&lt;/type&gt;</span>
            	                <span class="code-tag">&lt;name&gt;</span>JvmRouteBinderValve<span class="code-tag">&lt;/name&gt;</span>
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"JvmRouteBinderValve"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.JvmRouteBinderValve<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>enabled=true<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatClusterManager"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterManagerGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.DeltaManager<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>name=${clusterName}
                                         channelSendOptions=6
                                         expireSessionsOnShutdown=false
                                         notifyListenersOnReplication=true
                                         mapSendOptions=6
            <span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatChannel"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.GroupChannel<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"Membership"</span>&gt;</span> 
                    <span class="code-tag">&lt;name&gt;</span>ClusterMembership<span class="code-tag">&lt;/name&gt;</span>
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"Receiver"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>ClusterReceiver<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"Sender"</span>&gt;</span>                
                    <span class="code-tag">&lt;name&gt;</span>ClusterSender<span class="code-tag">&lt;/name&gt;</span>
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"ChannelInterceptor"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>DisableMcastInterceptor<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"ClusterMembership"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.MembershipServiceGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.McastService<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>address=228.0.0.4
                                         port=45564
                                         frequency=500
                                         dropTime=3000
            <span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"ClusterReceiver"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ReceiverGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.nio.NioReceiver<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>address=IPAddress1
                                         port=TCP_port1
                                         selectorTimeout=100
                                         maxThreads=6
            <span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"ClusterSender"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.SenderGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.ReplicationTransmitter<span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"DisableMcastInterceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.geronimo.tomcat.interceptor.DisableMcastInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>TcpPingInterceptor<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"TcpPingInterceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>Interval=240<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>TcpFailureDetector<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"TcpFailureDetector"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>                
                    <span class="code-tag">&lt;name&gt;</span>StaticMember1Interceptor<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"StaticMember1Interceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"StaticMember"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>StaticMember2<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>                
                    <span class="code-tag">&lt;name&gt;</span>MessageDispatch15Interceptor<span class="code-tag">&lt;/name&gt;</span> 
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"MessageDispatch15Interceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
            <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
                    <span class="code-tag">&lt;name&gt;</span>ThroughputInterceptor<span class="code-tag">&lt;/name&gt;</span>                
            <span class="code-tag">&lt;/reference&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"ThroughputInterceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>

        <span class="code-tag">&lt;gbean name=<span class="code-quote">"StaticMember2"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.StaticMemberGBean"</span>&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.StaticMember<span class="code-tag">&lt;/attribute&gt;</span>
            <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>port=TCP_port2
                                         securePort=-1
                                         host=IPAddress2
                                         domain=test-domain
                                         UniqueId={2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
            <span class="code-tag">&lt;/attribute&gt;</span>
        <span class="code-tag">&lt;/gbean&gt;</span>
...
</pre>
</div></div>

<p>Where</p>
<ul>
	<li><em>IPAddress1</em> is the IP address or host name of current static member.</li>
	<li><em>TCP_port1</em> is the TCP port on the current node to listen for session replication data from other static members.</li>
	<li><em>IPAddress2</em> is the IP address or host name of the second static member.</li>
	<li><em>TCP_port2</em> is the TCP port on the second static member to listen for session replication data from other static members</li>
	<li><em>DisableMcastInterceptor</em> disables the multicast cluster configurations.</li>
</ul>


<p>To convert this example to a multicast configuration, the DisableMCastInterceptor, StaticMemberInterceptor, and StaticMember definitions need to be removed.  Also, the value for the "address" attribute for the TomcatReceiver definition should be changed to "auto". </p>

<p>This is an example of setting up unicast clustering with two nodes. If you want to set up unicast clustering with more than two nodes, use a reference like "NextStaticMember" in StaticMemberGBean definitions to chain multiple static members. See the following deployment plan snippet as an example.</p>

<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>excerpt from geronimo-web.xml</b></div><div class="codeContent panelContent">
<pre class="code-xml">
...
 	 <span class="code-tag">&lt;cluster&gt;</span>TomcatCluster<span class="code-tag">&lt;/cluster&gt;</span>
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatCluster"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.CatalinaClusterGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.SimpleTcpCluster<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>managerClassName=org.apache.catalina.ha.session.DeltaManager
 	 expireSessionsOnShutdown=false
 	 useDirtyFlag=true
 	 notifyListenersOnReplication=true
 	 <span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"ClusterListenerChain"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>TomcatClusterListenerChain<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"TomcatValveChain"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>ReplicationValve<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"Channel"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>TomcatChannel<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatClusterListenerChain"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ClusterListenerGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.ClusterSessionListener<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"ReplicationValve"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.tcp.ReplicationValve<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextValve"</span>&gt;</span>
 	 <span class="code-tag">&lt;type&gt;</span>TomcatValve<span class="code-tag">&lt;/type&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>JvmRouteBinderValve<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"JvmRouteBinderValve"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.ValveGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.ha.session.JvmRouteBinderValve<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>enabled=true<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"TomcatChannel"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.GroupChannel<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"Membership"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>ClusterMembership<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"Receiver"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>ClusterReceiver<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"Sender"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>ClusterSender<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"ChannelInterceptor"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>DisableMcastInterceptor<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"ClusterMembership"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.MembershipServiceGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.McastService<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>address=228.0.0.4
 	 port=45564
 	 frequency=500
 	 dropTime=3000
 	 <span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>

 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"ClusterReceiver"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ReceiverGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.nio.NioReceiver<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>address=127.0.0.1
 	 port=10200
 	 selectorTimeout=100
 	 maxThreads=6
 	 <span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"ClusterSender"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.SenderGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.transport.ReplicationTransmitter<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"DisableMcastInterceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.geronimo.tomcat.interceptor.DisableMcastInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>TcpPingInterceptor<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"TcpPingInterceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>Interval=240<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>TcpFailureDetector<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"TcpFailureDetector"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>StaticMember1Interceptor<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"StaticMember1Interceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"StaticMember"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>StaticMember2<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>MessageDispatch15Interceptor<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"MessageDispatch15Interceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextInterceptor"</span>&gt;</span>
 	 <span class="code-tag">&lt;name&gt;</span>ThroughputInterceptor<span class="code-tag">&lt;/name&gt;</span>
 	 <span class="code-tag">&lt;/reference&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"ThroughputInterceptor"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.ChannelInterceptorGBean"</span>&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor<span class="code-tag">&lt;/attribute&gt;</span>
 	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>/&gt;</span>
 	 <span class="code-tag">&lt;/gbean&gt;</span>
 	 
 	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"StaticMember2"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.StaticMemberGBean"</span>&gt;</span>
	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.StaticMember<span class="code-tag">&lt;/attribute&gt;</span>
	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>port=10300
	  	 securePort=-1
	  	 host=127.0.0.1
	  	 domain=test-domain
	  	 UniqueId={2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
	 <span class="code-tag">&lt;/attribute&gt;</span>
	 <span class="code-tag">&lt;reference name=<span class="code-quote">"NextStaticMember"</span>&gt;</span>
	 <span class="code-tag">&lt;name&gt;</span>StaticMember3<span class="code-tag">&lt;/name&gt;</span>
	 <span class="code-tag">&lt;/reference&gt;</span>
	 <span class="code-tag">&lt;/gbean&gt;</span> 
	  	 
	 <span class="code-tag">&lt;gbean name=<span class="code-quote">"StaticMember3"</span> class=<span class="code-quote">"org.apache.geronimo.tomcat.cluster.StaticMemberGBean"</span>&gt;</span>
	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"className"</span>&gt;</span>org.apache.catalina.tribes.membership.StaticMember<span class="code-tag">&lt;/attribute&gt;</span>
	 <span class="code-tag">&lt;attribute name=<span class="code-quote">"initParams"</span>&gt;</span>port=10100
	 	  	 securePort=-1
	 	  	 host=127.0.0.1
	 	  	 domain=test-domain
	 	  	 UniqueId={2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
	 <span class="code-tag">&lt;/attribute&gt;</span>
         <span class="code-tag">&lt;/gbean&gt;</span>
...
</pre>
</div></div>


    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/Tomcat+Native+Clustering">View Online</a>
        |
        <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=9797868&revisedVersion=9&originalVersion=8">View Changes</a>
                |
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/Tomcat+Native+Clustering?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message