Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added Guide to install a Fedora4 cluster locally with UDP Multicasting

...

Note

This feature is still undergoing development.

Local Fedora 4 cluster on a local machine using the UDP Multicast protocol

A couple of configuration options have to be set in order to have Fedora 4 work as a cluster on a local machine:

  • Xmx1024m Set the Java heap to 1GB 
  • XX:MaxPermSize=256m Set the Java PermGen size to 256MB
  • fcrepo.modeshape.configuration=file:///home/ruckus/dev/tomcat7-8081/repository.json The Modeshape configuration used for clustering
  • java.net.preferIPv4Stack=true Tell Java to use IPv4 rather than IPv6
  • fcrepo.ispn.jgroups.configuration=/home/ruckus/dev/tomcat7-8081/jgroups-fcrepo-udp.xml Set the JGroups configuration file holding the UDP Transport defintions
  • jgroups.udp.mcast_addr=239.42.42.42 Set the UDP multicast address for the JGroups cluster
  • fcrepo.infinispan.cache_configuration=/home/ruckus/dev/tomcat7-8081/infinispan.xml Set the Infinispan configuration file holding the Infinispan cluster configuration
  • jms.port=61617 The port used by ActiveMQ's JMS protocol. This needs to be distinct for every instance of fcrepo4
  • stomp.port=61614 The port used by ActiveMQ Stomp protocol.  This needs to be distinct for every instance of fcrepo4

Step-By-Step Guide using Tomcat7

  1. Build the fcrepo war file or download the prebuilt fcrepo war file
    1. Build the War file as described on this page
    2. Fetch the WAR file from the download page
  1. Get Tomcat
    1. Download Tomcat 7.0.50 and unpack it

      #> wget http://mirror.synyx.de/apache/tomcat/tomcat-7/v7.0.50/bin/apache-tomcat-7.0.50.tar.gz #> tar -zxvf apache-tomcat-7.0.50.tar.gz #> mv apache-tomcat-7.0.50 tomcat7-8080
  2. Put the WAR file into tomcat's webapp directory or create a symbolic link
    1. Copy the fcrepo-webapp-VERSION.war file

      #> cp fcrepo-webapp-VERSION.war tomcat7-8080/webapps/fcrepo.war
  3. Get the Infinispan XML configuration file
    1. Download from github and put it into tomcat7-8080

      #> wget -O infinispan.xml https://gist.github.com/fasseg/8646707/raw #> mv infinispan.xml tomcat7-8080/
  4. Get the Modeshape JSON configuration file
    1. Download from Github and put into tomcat7-8080

      #> wget -O repository.json https://gist.github.com/fasseg/8646727/raw #> mv repository.json tomcat7-8080/
  5. Get the JGroups UDP Transport configuration file
    1. Download from Github and put into tomcat7-8080

      #> wget -O jgroups-fedora-udp.xml https://gist.github.com/fasseg/8646743/raw #> mv jgroups-fedora-udp.xml tomcat7-8080/
  6. Set the send/recv buffer sizes if neccessary
    1. Use the following commands to set the buffer size

      #> sysctl net.core.rmem_max=5242880 #> sysctl net.core.rmem_max=5242880
  7. Copy the whole tomcat folder in order to create a second instance
    1. #> cp -R tomcat7-8080/ tomcat7-8081
  8. Change the connector ports of the second Tomcat instance to 8081, 8006 and 8010
    1.  

       

      #> sed -i 's/8080/8081/g' tomcat7-8081/conf/server.xml #> sed -i 's/8005/8006/g' tomcat7-8081/conf/server.xml #> sed -i 's/8009/8010/g' tomcat7-8081/conf/server.xml
  9. Start the first instance
    1. #> CATALINA_OPTS="-Xmx1024m -XX:MaxPermSize=256m -Dfcrepo.modeshape.configuration=file:///path/to/repository.json -Djava.net.preferIPv4Stack=true -Dfcrepo.ispn.jgroups.configuration=/path/to/jgroups-fcrepo-udp.xml -Djgroups.udp.mcast_addr=239.42.42.42 -Dfcrepo.infinispan.cache_configuration=/path/to/infinispan.xml" tomcat7-8080/bin/catalina.sh run
  10. Start the second instance
    1. #> CATALINA_OPTS="-Xmx1024m -XX:MaxPermSize=256m -Dfcrepo.modeshape.configuration=file:///path/to/repository.json -Djava.net.preferIPv4Stack=true -Dfcrepo.ispn.jgroups.configuration=/path/to/jgroups-fcrepo-udp.xml -Djgroups.udp.mcast_addr=239.42.42.42 -Dfcrepo.infinispan.cache_configuration=/path/to/infinispan.xml" tomcat7-8081/bin/catalina.sh run
  11. Check that the instances are reachable and that the clustersize is '2':
    1. Navigate to http://localhost:8080/fcrepo/rest