Setting Up the HTTP Module for Tomcat

To use the Tanzu GemFire HTTP module with Tomcat application servers, you will need to modify Tomcat’s server.xml and context.xml files.

Configuration is slightly different depending on the topology you are setting up. Refer to Common Topologies for HTTP Session Management for more information.

Peer-to-Peer Setup

To run Tanzu GemFire in a peer-to-peer configuration, add the following line to Tomcat’s $CATALINA_HOME$/conf/server.xml within the <Server> tag:

<Listener className="org.apache.geode.modules.session.catalina.
                         PeerToPeerCacheLifecycleListener"
        locators="localhost[10334]" />

Depending on the version of Tomcat you are using, add one of the following lines to $CATALINA_HOME$/conf/context.xml within the <Context> tag:

For Tomcat 6.0:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat6DeltaSessionManager"/> 

For Tomcat 7.0:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat7DeltaSessionManager"/> 

For Tomcat 8.0 and 8.5:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat8DeltaSessionManager"/> 

For Tomcat 9.0:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat9DeltaSessionManager"/> 

Client/Server Setup

To run Tanzu GemFire in a client/server configuration, the application server will operate as a Tanzu GemFire client. To do this, add the following line to $CATALINA_HOME$/conf/server.xml within the <Server> tag:

<Listener className="org.apache.geode.modules.session.catalina.
                         ClientServerCacheLifecycleListener"/>

Depending on the version of Tomcat you are using, add one of the following lines to $CATALINA_HOME$/conf/context.xml within the <Context> tag:

For Tomcat 6.0:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat6DeltaSessionManager"/> 

For Tomcat 7.0:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat7DeltaSessionManager"/> 

For Tomcat 8.0 and 8.5:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat8DeltaSessionManager"/> 

For Tomcat 9.0:

<Manager className="org.apache.geode.modules.session.catalina.
                         Tomcat9DeltaSessionManager"/> 

The application server operates as a Tanzu GemFire client in this configuration. With a similar environment to this example that is for a client/server set up,

CLASSPATH=$PWD/lib/geode-modules-9.10.0.jar:\
$PWD/lib/geode-modules-tomcat8-9.10.0.jar:\
$PWD/lib/servlet-api.jar:\
$PWD/lib/catalina.jar:\
$PWD/lib/tomcat-util.jar:\
$PWD/bin/tomcat-juli.jar

Start the locator and server using gfsh:

$ gfsh start locator --name=locator1 --classpath=$CLASSPATH
$ gfsh start server --name=server1 --locators=localhost[10334] --server-port=0 \
  --classpath=$CLASSPATH

Starting the Application Server

Once you’ve updated the configuration, you are now ready to start your tc Server or Tomcat instance. Refer to your application server documentation for starting the application server. Once started, Tanzu GemFire will automatically launch within the application server process.

Note: Tanzu GemFire session state management provides its own clustering functionality. If you are using Tanzu GemFire, you should NOT turn on Tomcat clustering as well.

Verifying that Tanzu GemFire Started

You can verify that Tanzu GemFire has successfully started by inspecting the Tomcat log file. For example:

Nov 8, 2010 12:12:12 PM
org.apache.geode.modules.session.catalina.ClientServerCacheLifecycleListener
createOrRetrieveCache
INFO: Created GemFireCache[id = 2066231378; isClosing = false; 
   created = Mon Nov 08 12:12:12 PDT 2010; server = false; 
   copyOnRead = false; lockLease = 120; lockTimeout = 60]

Information is also logged within the Tanzu GemFire log file, which by default is named gemfire_modules.log.