pero 2005/07/01 11:35:03 Modified: webapps/docs cluster-howto.xml Log: Update docs at engine cluster mode Revision Changes Path 1.10 +123 -30 jakarta-tomcat-catalina/webapps/docs/cluster-howto.xml Index: cluster-howto.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/cluster-howto.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- cluster-howto.xml 26 Jun 2005 21:23:36 -0000 1.9 +++ cluster-howto.xml 1 Jul 2005 18:35:03 -0000 1.10 @@ -218,6 +218,8 @@ Service | Engine + | \ + | --- Cluster --* | Host | @@ -229,27 +231,47 @@ | \ | -- DeltaManager | - --------------------------- - | | | \ - Sender Receiver Membership \ - -- Valve - | \ - | -- ReplicationValve - | -- JvmRouteBinderValve - | - -- LifecycleListener - | - -- ClusterListener - | \ - | -- ClusterSessionListener - | -- JvmRouteSessionIDBinderListener - | - -- Deployer - \ - -- FarmWarDeployer + ----------------------------- + | | | \ + Receiver Sender Membership \ + \ -- Valve + -- SocketReplicationListener | \ + -- ReplicationListener | -- ReplicationValve + | -- JvmRouteBinderValve + | + -- LifecycleListener + | + -- ClusterListener + | \ + | -- ClusterSessionListener + | -- JvmRouteSessionIDBinderListener + | + -- Deployer + \ + -- FarmWarDeployer </source> +<source> + Sender + \ + -- ReplicationTransmitter + | + --------- + \ + IDataSender + \ + | + --- (sync) + | \ + | -- PooledSocketSender (pooled) + | -- SockerSender (synchronous) + | + --- (async) + \ + -- AsyncSocketSender (synchronous) + -- FastAsyncSocketSender (fastasyncqueue) +</source> </p> </section> @@ -375,6 +397,45 @@ </p> </section> +<section name="Simple Engine Cluster Configuration for all hosts"> +<p> +Simple one line engine configuration<br/> +<source> + <Server port="8011" + shutdown="SHUTDOWN" > + <GlobalNamingResources> + <Resource name="UserDatabase" auth="Container" + type="org.apache.catalina.UserDatabase" + description="User database that can be updated and saved" + factory="org.apache.catalina.users.MemoryUserDatabaseFactory" + pathname="conf/tomcat-users.xml" /> + </GlobalNamingResources> + <Service name="Catalina"> + <Connector port="9012" + protocol="AJP/1.3" + <Connector port="9013" + maxThreads="10" + minSpareThreads="4" + maxSpareThreads="4" + /> + <Engine name="Catalina" + defaultHost="localhost" + jvmRoute="node1"> + <Realm className="org.apache.catalina.realm.UserDatabaseRealm" + resourceName="UserDatabase" /> + <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" + defaultMode="true" /> + <Host name="localhost" + appBase="webapps"/> + </Engine> + </Service> +</Server> +</source> +<br/> +See default mode configuration description as simple host cluster example before. +</p> +</section> + <section name="Complex Cluster Configuration"> <p> <br/><b>Example</b> Configure cluster with complete sub elements. Activate this node @@ -477,7 +538,7 @@ <tr> <td>replicationMode</td> - <td>replication mode (synchronous,pooled.asynchronous,fastasyncqueue) + <td>replication mode (<em>synchronous</em>, <em>pooled</em>, <em>asynchronous</em> or <em>fastasyncqueue</em>) </td> <td><code>pooled</code></td> </tr> @@ -863,7 +924,15 @@ keepAliveTimeout="-1" keepAliveMaxRequestCount="-1"/> </source> -</p> +</p> +<p> +<b>Note:</b><br/> +As <em>Cluster.defaultMode=true</em> you can configure the manager attributes with prefix <em>manager.</em>. +<br/> +<b>Note:</b><br/> +With <em>Cluster.setProperty(<String>,<String>)</em> you can modify +attributes for all register managers. The method exists as MBeans operation. +</p> </section> </section> @@ -873,9 +942,10 @@ <p>Monitoring is a very important question when you use a cluster. Some of the cluster objects are JMX MBeans </p> <p>Add the following parameter to your startup script with Java 5: <source> --Dcom.sun.management.jmxremote --Dcom.sun.management.jmxremote.port=%my.jmx.port% --Dcom.sun.management.jmxremote.ssl=false +set CATALINA_OPTS=\ +-Dcom.sun.management.jmxremote \ +-Dcom.sun.management.jmxremote.port=%my.jmx.port% \ +-Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false </source> </p> @@ -899,30 +969,35 @@ <tr> <th align="center" bgcolor="aqua">Name</th> <th align="center" bgcolor="aqua">Description</th> - <th align="center" bgcolor="aqua">MBean ObjectName</th> + <th align="center" bgcolor="aqua">MBean ObjectName - Engine</th> + <th align="center" bgcolor="aqua">MBean ObjectName - Host</th> </tr> <tr> <td>Cluster</td> <td>The complete cluster element</td> + <td><code>type=Cluster</code></td> <td><code>type=Cluster,host=${HOST}</code></td> </tr> <tr> <td>ClusterSender</td> <td>Configuration and stats of the sender infrastructure</td> + <td><code>type=ClusterSender</code></td> <td><code>type=ClusterSender,host=${HOST}</code></td> </tr> <tr> <td>ClusterReceiver</td> <td>Configuration and stats of the recevier infrastructure</td> + <td><code>type=ClusterReceiver</code></td> <td><code>type=ClusterReceiver,host=${HOST}</code></td> </tr> <tr> <td>ClusterMembership</td> <td>Configuration and stats of the membership infrastructure</td> + <td><code>type=ClusterMembership</code></td> <td><code>type=ClusterMembership,host=${HOST}</code></td> </tr> @@ -930,6 +1005,9 @@ <td>IDataSender</td> <td>For every cluster member it exist a sender mbeans. It exists speziall MBeans to all replication modes</td> + <td><code>type=IDataSender, + senderAddress=${MEMBER.SENDER.IP}, + senderPort=${MEMBER.SENDER.PORT}</code></td> <td><code>type=IDataSender,host=${HOST}, senderAddress=${MEMBER.SENDER.IP}, senderPort=${MEMBER.SENDER.PORT}</code></td> @@ -939,17 +1017,21 @@ <td>DeltaManager</td> <td>This manager control the sessions and handle session replication </td> <td><code>type=Manager,path=${APP.CONTEXT.PATH},host=${HOST}</code></td> + <td><code>type=Manager,path=${APP.CONTEXT.PATH},host=${HOST}</code></td> </tr> <tr> <td>ReplicationValve</td> <td>This valve control the replication to the backup nodes</td> + <td><code>type=Valve,name=ReplicationValve</code></td> <td><code>type=Valve,name=ReplicationValve,host=${HOST}</code></td> </tr> <tr> <td>JvmRouteBinderValve</td> <td>This is a cluster fallback valve to change the Session ID to the current tomcat jvmroute.</td> + <td><code>type=Valve,name=JvmRouteBinderValve, + path=${APP.CONTEXT.PATH}</code></td> <td><code>type=Valve,name=JvmRouteBinderValve,host=${HOST}, path=${APP.CONTEXT.PATH}</code></td> </tr> @@ -961,13 +1043,15 @@ <section name="FAQ"> <p>To be completed once we receive questions about session replication:</p> <ol> -<li>Q: What happens when I pull the network cable?<p></p> +<li>Q: Can I configure as engine level?<p></p> - A: Well, the other members will remove the instance from the cluster, - but when you insert the cable again, the Tomcat instance might have completely flipped out. - This is because the OS might start going 100% CPU when a multicast message is sent. - There has not yet been a good solution for this, I will let you know when I have come up with one. - (pero: I test this and I works correct with java 5 and exists when you use the cluster with JDK 1.4.x) + A: Since Tomcat 5.5.10 you can configure a cluster as engine and host level. + This helps to support clustering at a web hosting szenario. + <p></p> + </li> +<li>Q: What is the simples cluster config?<p></p> + + A: Since Tomcat 5.5.10 you can configure a cluster with following: <code><Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" defaultMode="true" /></code> <p></p> </li> <li>Q: How can I activated transparent logging?<p></p> @@ -997,6 +1081,15 @@ <code>25</code> sockets to transfer more parallel messages. <p></p> </li> +<li>Q: What happens when I pull the network cable?<p></p> + + A: Well, the other members will remove the instance from the cluster, + but when you insert the cable again, the Tomcat instance might have completely flipped out. + This is because the OS might start going 100% CPU when a multicast message is sent. + There has not yet been a good solution for this, I will let you know when I have come up with one. + (pero: I test this and I works correct with java 5 and exists when you use the cluster with JDK 1.4.x) + <p></p> + </li> <li>Q: At my windows laptop without network my cluster doesn't work?<p></p> A: The Membership attribute <code>mcastBindAddress="127.0.0.1"</code> must be set!
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]