Building
========
1. Ensure you have a recent release of Openspaces/Gigaspaces installed.
2. Run the installmavenrep script or bat file in $GIGA-HOME/tools/maven.
3. mvn clean install in this directory
Using Openspaces for Session Clustering
=======================================
A. Preparing the DataGrid
----------------------
1. Ensure that you have a recent release of Openspaces and Gigaspaces installed.
2. Start a gsm instance
3. Start as many gsc instances as you need
4. Start a grid-ui instance
5. Using the grid-ui, create an Enterprise Grid called "jettyGrid", clustering
according to your preference.
B. Preparing Jetty
---------------
1. mkdir $JETTY-HOME/lib/ext/openspaces
2. Copy the following files from your gigaspaces lib directory to
$JETTY-HOME/lib/ext/openspaces, maintaining the directory hierarchy:
$GIGA-HOME/lib/JSpaces.jar
$GIGA-HOME/lib/common/commons-logging.jar
$GIGA-HOME/lib/jini/jsk-lib.jar
$GIGA-HOME/lib/jini/jsk-platform.jar
$GIGA-HOME/lib/jini/reggie.jar
$GIGA-HOME/lib/jini/start.jar
$GIGA-HOME/lib/openspaces/openspaces.jar
$GIGA-HOME/lib/ServiceGrid/gs-boot.jar
$GIGA-HOME/lib/ServiceGrid/gs-lib.jar
$GIGA-HOME/lib/spring/spring.jar
$GIGA-HOME/lib/spring/cglib-nodep-2.1_3.jar
3. Edit your $JETTY-HOME/etc/jetty.xml file and configure a
org.mortbay.jetty.openspaces.GigaSessionIdManager:
fred
gigaIdMgr
4. For each webapp you want to use with clustered sessions, create a context
xml configuration file for it and add the following lines:
gigaIdMgr
60
5. Start jetty from the command line, passing in the name of the
Enterprise Data Grid you created in the step A, and the location of
your gigaspaces installation:
java -Dext,default -Dspace.url="jini://*/*/jettyGrid?useLocalCache&updateMode=2" \
-Dcom.gs.home=/usr/local/java/gigaspaces-xap-6.5-rc1 \
-Djava.security.policy=/usr/local/java/gigaspaces-xap-6.5-rc1/policy/policy.all \
-jar start.jar etc/jetty.xml
NOTE: Openspaces uses spring so if you have issues with deploying your webapp into this setup, check if the webapp is using
spring, you might need to do some exclusions or scope settings on your webapp dependencies. For example with the async-webapp
which uses cxf which also uses spring 2.0.8 in many of its artifacts. These need to be excluded so that your webapp doesn't
package another version of spring which will conflict with the one in Step 2 above.