Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

...

These instructions are out of date. They are for the prototype. There is currently a Terracotta plugin for Geronimo written by Jeff Genender, but the docs haven't been prepared for it. Those are coming soon. —Orion Letizi, March 12, 2008

...

  • Application developers no longer needs to write their application for a clustered environment
  • Clustering is transparently done at runtime via JVM level clustering (byte code instrumentation of JVM)
  • The Terracotta Sever is responsible for transparently replicating/maintaining state across all application servers in the cluster
  • Cluster Members appear to be part of one large Global JVM
  • Terracotta Clustering does not require "Data Serialization"
  • Developers define (in xml configuration file) which objects are to clustered. For the Terracotta Sessions package this includes identifying which context-roots are to be clustered as well as the data types that are to be placed in the HttpSession
  • Terracotta supports ACID (Atomic, Consistent, Isolated, Durable) Compliance (transactional behavior between cluster members)
  • Open Terracotta supports lazy loading across cluster members

...



...

Note that Open Terracotta is not an Apache project and is not currently available under the Apache license but rather under the Terracotta Public License. You should determine if the licensing is correct for your needs.

...

More information on the Open Terracotta project available at: http://wiki.terracotta.org/confluence/display/orgsite/Home

...

Install Terracotta Server Anchor installterracottainstallterracotta

Terracotta needs to be installed on one machine that will serve as the Terracotta Server. The Terracotta server will be responsible for maintaining session state and assuring that it is accurately reflected in each of the Geronimo cluster members.

Download the Terracotta Sessions bundle and run the Installer. This example requires "Open Terracotta 2.2.1 Stable 2" or higher.

Install Geronimo Server Anchorinstallgeronimoinstallgeronimo

The Geronimo Application Server needs to be installed on each machine that is to be clustered. The example in this article will install Geronimo on two separate machines (cluster members).

Download the Geronimo image that includes the Tomcat web container from the Geronimo Website and unpack it on each of the cluster members. This example requires Geronimo 1.1.1 with the Tomcat web container. The Jetty web container is not yet supported by Terracotta.

...

...

Note that the same version release of Geronimo must be installed on each machine to be clustered. Mixing versions of Geronimo is not currently supported by Terracotta.

...

Install Terracotta Client Anchorinstallterracottaclientinstallterracottaclient

The Terracotta client needs to be installed on each machine that contains a Geronimo cluster member. Currently, the same install bundle includes both the Terracotta server and client. So, it is possible to run the Terracotta Server and Terracotta Client on the same machine with a common installation .

...

Update Terracotta configuration file Anchorconfigtcconfigtc

The tc-config.xml file identifies which context-roots are to be clustered as well as the data types that are to be placed in the HttpSession.

...

Change the tc-config.xml file to look similar to the following example. Note that the tc-config.xml example below only shows the xml items that are to be updated. Other portions of that xml file should remain unchanged. Remember to change the IP address in the example below to the address of the Terracotta Server.

...

...

Start Terracotta Server Anchorstarttcstarttc

Start the Terracotta server specifying the location of the tc-config.xml file that you just updated.

...

Start Terracotta Client and Geronimo Server Anchorstartgeronimostartgeronimo

Open Terracotta supports a variety of JVMs and each one requires a unique boot jar be present in the bootclasspath when launching the Geronimo server. The example below is using the Windows JVM that is present in the Terracotta Sessions Package. It is possible to use other JVMs, though a different boot jar will likely need to be created. Also some of the launch arguments in the script below were obtained by issuing the dso-env script in c:\Terracotta\terracotta-2.2.1\sessions\bin\ directory. You should issue this command on your system to find the arguments that are appropriate for your environment.

...

Here is an example startup on a Windows Machine:

...

...

Install Web Application on each Geronimo cluster member Anchorinstallappinstallapp

Use the Geronimo admin console to install the appropriate example application to each of the Geronimo installations.

...

Setup Load Balancing and Failover Anchorinstallwebserverinstallwebserver

Now you are ready to setup the Load Balancer. We recommend using Apache HTTP server and mod_jk for this example.

...

Testing Load Balancing and Failover Anchortesttest

Once you get Apache HTPP Server and mod_jk setup correctly. You can test load balancing and failover by requesting the following URL with your favorite Web browser. Of course, replace YourHost with the actual host name or IP address.

...

Note that the output page contains the ID of the server that is servicing the request. In your browser window, fill in the appropriate input fields and hit the submit button. Add a few more items to your shopping cart. Notice that the browser indicates which server (Server1 or Server2) is servicing your request. Without Sticky Session support, you may see the load balancer alternately route the requests between the two cluster members. If you have setup everything correctly, then the shopping cart data should be present in the session after the browser request moves between the two servers. For Sticky Session, you can test failover by stopping the geronimo server that is currently servicing the session and seeing that the next http request will failover into the remaining cluster member. The httpsession data from the previous request should be recovered and displayed in the refreshed browser window.

...

...

When testing using a web browser, make sure that you erase cookies and cached pages between test cases. Browser caching can cause confusion when testing.

...

Use the Terracotta admin console Anchortcadmintcadmin

The Terracotta Admin console can also be used to verify that session data is being properly replicated in the Terracotta Server.

...