Multiple JVMs Winter 2006 Production

Multiple JVMs Winter 2006 Production

Assumptions:

  • Having a working single Tomcat/Sakai instance installation

    • /ucd/pkg/apache-tomcat-5.5.12 (soft linked via: /ucd/opt/tomcat)

Create a second instance

  • Make sure that tomcat is NOT running. If it is running stop tomcat

  • Create a directory where the Sakai user can store content and archive. Make sure that these directories are owned by the tomcat/sakai user and that it has read/write access

    • mkdir /var/sakai

    • chown sakai.sakai /var/sakai

  • Move the initial content and archive directories

    • mv /ucd/pkg/apache-tomcat-5.5.12/sakai/content /var/sakai/

    • mv /ucd/pkg/apache-tomcat-5.5.12/sakai/archive /var/sakai/

    • chown -R sakai.sakai /var/sakai

  • Remove the soft link /ucd/opt/tomcat

    • rm /ucd/opt/tomcat

  • Adjust sakai.properties to match the new archive and content location. Edit the following lines:

    • sakai.properties is located at: /ucd/pkg/apache-tomcat-5.5.12/sakai/sakai.properties

      From: storagePath@org.sakaiproject.service.legacy.archive.ArchiveService = ${sakai.home}/archive/ bodyPath@org.sakaiproject.service.legacy.content.ContentHostingService = ${sakai.home}/content/ To: storagePath@org.sakaiproject.service.legacy.archive.ArchiveService = /var/sakai/archive/ bodyPath@org.sakaiproject.service.legacy.content.ContentHostingService = /var/sakai/content/
  • Rename apache-tomcat-5.5.12 to apache-tomcat-5.5.12-tc1

    • mv apache-tomcat-5.5.12 apache-tomcat-5.5.12-tc1

  • Copy apache-tomcat-5.5.12-tc1 to apache-tomcat-5.5.12-tc2

    • cp -R apache-tomcat-5.5.12-tc1 apache-tomcat-5.5.12-tc2

  • Adjust both apache-tomcat-5.5.12-tc1's and apache-tomcat-5.5.12-tc2's server.xml so that we don't have port conflicts

    • server.xml is located at:

    • /ucd/pkg/apache-tomcat-5.5.12-tc1/conf/server.xml and /ucd/pkg/apache-tomcat-5.5.12-tc2/conf/server.xml

    • Make the following port number changes for apache-tomcat-5.5.12-tc1:

      8005 to 8105 8080 to 8180 8443 to 8543 8009 to 8109
    • Make the following port number changes for apache-tomcat-5.5.12-tc2:

      8005 to 8205 8080 to 8280 8443 to 8643 8009 to 8209
  • Change the serverId in sakai.properties for both apache-tomcat-5.5.12-tc1 and apache-tomcat-5.5.12-tc2

    • Edit /ucd/pkg/apache-tomcat-5.5.12-tc1/sakai/sakai.properties

      From: serverId=stubing To: serverId=stubing1
    • Edit /ucd/pkg/apache-tomcat-5.5.12-tc2/sakai/sakai.properties

      From: serverId=stubing To: serverId=stubing2
  • Adjust serverUrl in /ucd/pkg/apache-tomcat-5.5.12-tc1/sakai/sakai.properties and /ucd/pkg/apache-tomcat-5.5.12-tc2/sakai/sakai.properties

    serverUrl=http://sakai2.ucdavis.edu:8080 Note: Adjust the above port (8080) for http, https, or port 80 forwarding, etc.
  • We only run James on apache-tomcat-5.5.12-tc1, so we need to disable it on apache-tomcat-5.5.12-tc2

    • Change the following line in: /ucd/pkg/apache-tomcat-5.5.12-tc2/sakai/sakai.properties

      From: smtp.enabled = true To: smtp.enabled = false
  • Make sure that you adjust JAVA_OPTS so that both JVMs have enough memory. In our case this will be:

    setenv JAVA_OPTS "-d64 -Xmx1500m -Xms1500m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveSizePolicy -XX:NewSize=256m -XX:MaxPermSize=200m -XX:PermSize=64m -XX:MaxTenuringThreshold=3 -XX:CMSInitiatingOccupancyFraction=75 -XX:MinHeapFreeRatio=18"
  • When starting either tomcat instance, we have to make sure that we use specific CATALINA_HOME settings for each instance.

    • Note that we set JAVA_HOME to Java v5 to run it in 64bit

      JAVA_HOME=/ucd/opt/java5 export JAVA_HOME CATALINA_HOME=/ucd/pkg/apache-tomcat-5.5.12-tc1 export CATALINA_HOME /ucd/pkg/apache-tomcat-5.5.12-tc1/bin/startup.sh CATALINA_HOME=/ucd/pkg/apache-tomcat-5.5.12-tc2 export CATALINA_HOME /ucd/pkg/apache-tomcat-5.5.12-tc2/bin/startup.sh
  • Adjust "iptables" to allow traffic for both port 8180 as well as 8280

    • Adjust port-forwarding from "80 --> 8080" to "80 --> 8180" if necessary

    • Maybe restrict access to 8180 and 8280 only form the load balancer

  • Make sure that you adjust /etc/rc.d/rc.local to not just start one tomcat