The scope of this document to to define how Apache TomEE can be configured for HA (High Availability) clustering. | |
The configuration will focus on two local instances, with a view to an open ended remote configuration. | |
It is beyond the scope of this documentation to discuss Tomcat CLustering in depth. | |
Please read the [Apache Tomcat Clustering Howto](http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html) for more information. | |
###Local cluster | |
To test clustering locally (on the same physical machine) the default ports need to be modified on the second TomEE server. | |
You do not need to do this if the second TomEE instance is to run on different machine or virtual host. | |
Note: You cannot test load balancing on a local cluster as they will be running of different ports. | |
This configuration is only useful for testing Session Replication and application deployment. | |
In the [TomEE]/conf/server.xml look for and change the following port definitions to something like: | |
<Server port="9005" shutdown="SHUTDOWN"> | |
<Connector port="9080" protocol="HTTP/1.1" | |
connectionTimeout="20000" | |
redirectPort="9443" /> | |
<!-- | |
<Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true" | |
maxThreads="150" scheme="https" secure="true" | |
clientAuth="false" sslProtocol="TLS" /> | |
--> | |
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" /> | |
###Test Startup | |
Start both TomEE servers together and check for and resolve any errors before proceeding any further. | |
Once you are sure both servers can run without error add the following to the **<Host>** section of both server.xml files: | |
... | |
<Engine name="Catalina" defaultHost="localhost"> | |
... | |
<Host name="localhost" appBase="webapps" | |
unpackWARs="true" autoDeploy="true"> | |
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> | |
Start both TomEE servers together and again check for and resolve any errors before proceeding any further. | |
Basically look in both [TomEE]/logs/catalina.[date].log and search for *"SimpleTcpCluster memberAdded"*. | |
This lets us know that the cluster added a new member. | |
Stop both the servers, as we will need to add some more configuration to the *server.xml*. | |
First create the following directory structure within the TomEE installation (You can change the names later to suit your needs if required). | |
[TomEE]/cluster | |
[TomEE]/cluster/temp | |
[TomEE]/cluster/watch | |
[TomEE]/cluster/webapps | |
We now need to add these paths to the **Host** section of the configuration file: | |
... | |
<Engine name="Catalina" defaultHost="localhost"> | |
... | |
<Host name="localhost" appBase="webapps" | |
unpackWARs="true" autoDeploy="true"> | |
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"> | |
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" | |
tempDir="cluster/temp" | |
deployDir="cluster/webapps" | |
watchDir="cluster/watch" | |
watchEnabled="true"/> | |
</Cluster> | |
... |