The following configuration files were in place during the CGIN benchmark tests:

config_variables

#Tue Jun 26 09:28:32 NZST 2012
SAVANNA_MCAST_END=224.0.253.8
RHINO_SERVER_STORE_PASS=changeit
SNAPSHOT_BASEPORT=42000
MAX_NEW_SIZE=256m
RHINO_SSL_PORT=1203
RHINO_CLIENT_STORE_PASS=changeit
RHINO_PASSWORD=password
JAVA_HOME=/opt/hudson/tools/jdk1.6.0_18
LOCALIPS="127.0.0.1 [0\:0\:0\:0\:0\:0\:0\:1%1] [fe80\:0\:0\:0\:225\:22ff\:fe61\:f9ad%2] 192.168.0.97 192.168.122.1"
MANAGEMENT_DATABASE_HOST=volcano1
MANAGEMENT_DATABASE_PASSWORD=rhino
JVM_ARCH=64
RHINO_CLIENT_KEY_PASS=changeit
SAVANNA_MCAST_START=224.0.253.1
RHINO_BASE=/home/pburrowes/remagent_253/rhino
SAVANNA_CLUSTER_ADDR=224.0.253.1
RHINO_SERVER_KEY_PASS=changeit
RHINO_WATCHDOG_THREADS_THRESHOLD=50
NEW_SIZE=256m
MANAGEMENT_DATABASE_NAME=cgin_perf
RMI_MBEAN_REGISTRY_PORT=1199
MANAGEMENT_DATABASE_USER=postgres
HEAP_SIZE=8192m
RHINO_WATCHDOG_DUMPTHREADS=/home/pburrowes/remagent_253/rhino/node-102/dumpthreads.sh
JMX_SERVICE_PORT=1202
RHINO_USERNAME=admin
RHINO_CLUSTERING=/home/pburrowes/remagent_253/rhino/node-102/clustering.sh
NODE_ID=102
RHINO_WATCHDOG_STUCK_INTERVAL=45000
SAVANNA_CLUSTER_ID=253
RHINO_WORK_DIR=/home/pburrowes/remagent_253/rhino/node-102/work
RHINO_HOME=/home/pburrowes/remagent_253/rhino/node-102
FILE_URL=file\:
MANAGEMENT_DATABASE_PORT=5432

rhino-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rhino-config PUBLIC "-//Open Cloud Ltd.//DTD Rhino Config 2.3.1//EN" "http://www.opencloud.com/dtd/rhino-config_2_3_1.dtd">
<rhino-config>
  <file-locations>
    <temp-dir>${RHINO_WORK_DIR}/tmp</temp-dir>
    <deployment-dir save="False">${RHINO_WORK_DIR}/deployments</deployment-dir>
    <state-dir>${RHINO_WORK_DIR}/state</state-dir>
    <per-machine-mlet-conf>file:${RHINO_CONFIG_DIR}/permachine-mlet.conf</per-machine-mlet-conf>
    <per-node-mlet-conf>file:${RHINO_CONFIG_DIR}/pernode-mlet.conf</per-node-mlet-conf>
    <savanna-base-url>file:${RHINO_CONFIG_DIR}/savanna/cluster.properties</savanna-base-url>
    <security-policy-file>${RHINO_CONFIG_DIR}/rhino.policy</security-policy-file>
  </file-locations>

  <cluster-group>rhino-cluster</cluster-group>
  <admin-group>rhino-admin</admin-group>

  <!-- State exchange configuration. This may be different on each node if
       desired. -->
  <state-exchange>
        <!-- TCP port range to accept state-exchange connections on. Ports are
             tried in order until one is successfully bound, so this range can
             safely be the same on all nodes even when there are multiple nodes
             per physical machine) -->
        <min-port>6000</min-port>
        <max-port>6099</max-port>

        <!-- Maximum bandwidth per node for state exchange during initial
             cluster boot. This defaults to 8MB/s to avoid completely
             saturating a 100Mbit connection. If you are using 1000Mbit,
             consider increasing this. -->
        <boot-rate-limit>8000000</boot-rate-limit>

        <!-- Maximum bandwidth per node for state exchange when the cluster is
             active. This defaults to 4MB/s to avoid interfering with the
             extracting node's normal operation, but can be increased.-->
        <active-rate-limit>4000000</active-rate-limit>

        <!-- Optional address to bind to. If omitted, determined automatically by Savanna -->
        <!-- <override-address>1.2.3.4</override-address> -->
  </state-exchange>

  <activity-handler>
    <group-name>rhino-ah</group-name>
    <message-id>10000</message-id>
    <resync-rate>100000</resync-rate>
  </activity-handler>

  <persistence-resources>
    <replicated-sbbs>DomainedMemoryDatabase</replicated-sbbs>
    <non-replicated-sbbs>LocalMemoryDatabase</non-replicated-sbbs>
    <profiles>ProfileDatabase</profiles>
    <resource-adaptors>DomainedMemoryDatabase</resource-adaptors>
    <default-shutdown-flush-timeout>60000</default-shutdown-flush-timeout>
  </persistence-resources>

  <!--
    Example replication domain configuration.

    This example splits the cluster into several 2-node domain pairs for the purposes of
    service state replication. This example does not cover replication domaining for writeable
    profiles.
  -->
  <!--
  <domain name="domain-1" nodes="101,102">
    <memdb-resource>DomainedMemoryDatabase</memdb-resource>
    <ah-resource>rhino-ah</ah-resource>
  </domain>
  <domain name="domain-2" nodes="201,202">
    <memdb-resource>DomainedMemoryDatabase</memdb-resource>
    <ah-resource>rhino-ah</ah-resource>
  </domain>
  <domain name="domain-3" nodes="301,302">
    <memdb-resource>DomainedMemoryDatabase</memdb-resource>
    <ah-resource>rhino-ah</ah-resource>
  </domain>
  <domain name="domain-4" nodes="401,402">
    <memdb-resource>DomainedMemoryDatabase</memdb-resource>
    <ah-resource>rhino-ah</ah-resource>
  </domain>
  -->

  <rhino-monitoring>
    <group-name>rhino-monitoring</group-name>
    <message-id>19999</message-id>
    <sample-generations>6</sample-generations>
    <sample-generation-rollover>5000</sample-generation-rollover>
    <stats-session-timer>20000</stats-session-timer>
    <heartbeat-period>5000</heartbeat-period>
    <direct-min-port>17400</direct-min-port>
    <direct-max-port>17699</direct-max-port>
  </rhino-monitoring>

  <query-is-alive>
    <scan-period>180000</scan-period>
    <threshold>150000</threshold>
    <maximum-batch-size>128</maximum-batch-size>
  </query-is-alive>

  <timer-facility>
    <timer-resolution>250</timer-resolution>
    <timer-common-duration>32000</timer-common-duration>
    <timer-max-duration>180000</timer-max-duration>
    <timer-default-timeout>1000</timer-default-timeout>
  </timer-facility>

  <default-component-log4j-include>
    <sbb-log4j-include included="False"/>
    <ra-log4j-include included="True"/>
    <library-log4j-include included="True"/>
  </default-component-log4j-include>

  <ocbb-resources>
    <!--
      Note: the names of the following resources must not be changed as the
      core system depends on their presence:
        LocalMemoryDatabase
        ReplicatedMemoryDatabase
        ManagementDatabase

      Additionally, the SIP example services depend on the presence of the
      JDBCResource resource.

      Other resource names are referenced only by other elements in this
      configuration file and so may be modified as needed.
    -->


    <memdb-local>
      <jndi-name>LocalMemoryDatabase</jndi-name>
      <committed-size>200m</committed-size>
    </memdb-local>

    <memdb>
      <jndi-name>ReplicatedMemoryDatabase</jndi-name>
      <message-id>10002</message-id>
      <group-name>rhino-db</group-name>
      <committed-size>100M</committed-size>
      <resync-rate>100000</resync-rate>
    </memdb>

    <memdb>
      <jndi-name>DomainedMemoryDatabase</jndi-name>
      <message-id>10005</message-id>
      <group-name>rhino-db</group-name>
      <committed-size>100M</committed-size>
      <resync-rate>100000</resync-rate>
    </memdb>

    <!-- Begin PostgreSQL configuration.
         To use Oracle Database rather than PostgreSQL, comment out this
         section and uncomment the Oracle Database section below. -->
    <memdb>
      <jndi-name>ManagementDatabase</jndi-name>
      <message-id>10003</message-id>
      <group-name>rhino-management</group-name>
      <committed-size>150M</committed-size>
      <resync-rate>100000</resync-rate>
      <persistence>
        <persistence-instance>
          <datasource-class>org.postgresql.ds.PGSimpleDataSource</datasource-class>
          <dbid>rhino_management</dbid>
          <parameter>
            <param-name>serverName</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_HOST}</param-value>
          </parameter>
          <parameter>
            <param-name>portNumber</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>${MANAGEMENT_DATABASE_PORT}</param-value>
          </parameter>
          <parameter>
            <param-name>databaseName</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_NAME}</param-value>
          </parameter>
          <parameter>
            <param-name>user</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_USER}</param-value>
          </parameter>
          <parameter>
            <param-name>password</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_PASSWORD}</param-value>
          </parameter>
          <parameter>
            <param-name>loginTimeout</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>30</param-value>
          </parameter>
          <parameter>
            <param-name>prepareThreshold</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>1</param-value>
          </parameter>
        </persistence-instance>
      </persistence>
    </memdb>

    <memdb>
      <jndi-name>ProfileDatabase</jndi-name>
      <message-id>10004</message-id>
      <group-name>rhino-db</group-name>
      <committed-size>100M</committed-size>
      <resync-rate>100000</resync-rate>
      <persistence>
        <persistence-instance>
          <datasource-class>org.postgresql.ds.PGSimpleDataSource</datasource-class>
          <dbid>rhino_profiles</dbid>
          <parameter>
            <param-name>serverName</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_HOST}</param-value>
          </parameter>
          <parameter>
            <param-name>portNumber</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>${MANAGEMENT_DATABASE_PORT}</param-value>
          </parameter>
          <parameter>
            <param-name>databaseName</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_NAME}</param-value>
          </parameter>
          <parameter>
            <param-name>user</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_USER}</param-value>
          </parameter>
          <parameter>
            <param-name>password</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_PASSWORD}</param-value>
          </parameter>
          <parameter>
            <param-name>loginTimeout</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>30</param-value>
          </parameter>
          <parameter>
            <param-name>prepareThreshold</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>1</param-value>
          </parameter>
        </persistence-instance>
      </persistence>
    </memdb>

    <jdbc>
      <jndi-name>JDBCResource</jndi-name>
      <datasource-class>org.postgresql.ds.PGSimpleDataSource</datasource-class>
      <parameter>
        <param-name>serverName</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>${MANAGEMENT_DATABASE_HOST}</param-value>
      </parameter>
      <parameter>
        <param-name>portNumber</param-name>
        <param-type>java.lang.Integer</param-type>
        <param-value>${MANAGEMENT_DATABASE_PORT}</param-value>
      </parameter>
      <parameter>
        <param-name>databaseName</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>${MANAGEMENT_DATABASE_NAME}</param-value>
      </parameter>
      <parameter>
        <param-name>user</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>${MANAGEMENT_DATABASE_USER}</param-value>
      </parameter>
      <parameter>
        <param-name>password</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>${MANAGEMENT_DATABASE_PASSWORD}</param-value>
      </parameter>
      <parameter>
        <param-name>loginTimeout</param-name>
        <param-type>java.lang.Integer</param-type>
        <param-value>30</param-value>
      </parameter>
      <parameter>
        <param-name>prepareThreshold</param-name>
        <param-type>java.lang.Integer</param-type>
        <param-value>5</param-value>
      </parameter>
      <connection-pool>
        <max-connections>15</max-connections>
        <max-pool-size>15</max-pool-size>
        <max-idle-time>600</max-idle-time>
        <idle-check-interval>30</idle-check-interval>
        <connection-pool-timeout>5000</connection-pool-timeout>
      </connection-pool>
    </jdbc>
    <!-- End of PostgreSQL configuration. -->


    <!-- Begin Oracle Database configuration.
         To use Oracle Database rather than PostgreSQL, comment out the
         PostgreSQL section above and uncomment the section below. -->
    <!--
    <memdb>
      <jndi-name>ManagementDatabase</jndi-name>
      <message-id>10003</message-id>
      <group-name>rhino-management</group-name>
      <committed-size>150M</committed-size>
      <resync-rate>100000</resync-rate>
      <persistence>
        <persistence-instance>
          <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
          <dbid>rhino_management</dbid>
          <parameter>
            <param-name>URL</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>jdbc:oracle:thin:@${MANAGEMENT_DATABASE_HOST}:${MANAGEMENT_DATABASE_PORT}:${MANAGEMENT_DATABASE_NAME}</param-value>
          </parameter>
          <parameter>
            <param-name>user</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_USER}</param-value>
          </parameter>
          <parameter>
            <param-name>password</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_PASSWORD}</param-value>
          </parameter>
          <parameter>
            <param-name>loginTimeout</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>30</param-value>
          </parameter>
        </persistence-instance>
      </persistence>
    </memdb>

    <memdb>
      <jndi-name>ProfileDatabase</jndi-name>
      <message-id>10004</message-id>
      <group-name>rhino-db</group-name>
      <committed-size>100M</committed-size>
      <resync-rate>100000</resync-rate>
      <persistence>
        <persistence-instance>
          <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
          <dbid>rhino_profiles</dbid>
          <parameter>
            <param-name>URL</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>jdbc:oracle:thin:@${MANAGEMENT_DATABASE_HOST}:${MANAGEMENT_DATABASE_PORT}:${MANAGEMENT_DATABASE_NAME}</param-value>
          </parameter>
          <parameter>
            <param-name>user</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_USER}</param-value>
          </parameter>
          <parameter>
            <param-name>password</param-name>
            <param-type>java.lang.String</param-type>
            <param-value>${MANAGEMENT_DATABASE_PASSWORD}</param-value>
          </parameter>
          <parameter>
            <param-name>loginTimeout</param-name>
            <param-type>java.lang.Integer</param-type>
            <param-value>30</param-value>
          </parameter>
        </persistence-instance>
      </persistence>
    </memdb>

    <jdbc>
      <jndi-name>JDBCResource</jndi-name>
      <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
      <parameter>
        <param-name>URL</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>jdbc:oracle:thin:@${MANAGEMENT_DATABASE_HOST}:${MANAGEMENT_DATABASE_PORT}:${MANAGEMENT_DATABASE_NAME}</param-value>
      </parameter>
      <parameter>
        <param-name>user</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>${MANAGEMENT_DATABASE_USER}</param-value>
      </parameter>
      <parameter>
        <param-name>password</param-name>
        <param-type>java.lang.String</param-type>
        <param-value>${MANAGEMENT_DATABASE_PASSWORD}</param-value>
      </parameter>
      <parameter>
        <param-name>loginTimeout</param-name>
        <param-type>java.lang.Integer</param-type>
        <param-value>30</param-value>
      </parameter>
      <connection-pool>
        <max-connections>15</max-connections>
        <max-pool-size>15</max-pool-size>
        <max-idle-time>600</max-idle-time>
        <idle-check-interval>30</idle-check-interval>
        <connection-pool-timeout>5000</connection-pool-timeout>
      </connection-pool>
    </jdbc>
    -->
    <!-- End of Oracle Database configuration. -->
  </ocbb-resources>

  <ejb-resources>
  </ejb-resources>
</rhino-config>

read-config-variables

# -*- sh -*-

# Expected and optional variables:
# RHINO_HOME:  required - the base directory of the Rhino installation to load configuration variables from
# POLICY_FILE: optional - the unqualified name of the security policy file to use
# OVERRIDE_HEAP_SIZE: optional - the heap size to use
# OVERRIDE_MAX_NEW_SIZE: optional - the max new size to use
# OVERRIDE_NEW_SIZE: optional - the new size to use

if [ -z "$RHINO_HOME" ]; then
 echo "RHINO_HOME variable not set" >&2
 exit 1
fi

unset CLASSPATH OPTIONS

if [ -z "$VARS" ]; then
    VARS=$RHINO_HOME/config/config_variables
fi
if [ ! -f "$VARS" ]; then
    echo "$VARS does not exist; check your installation." >&2
    exit 1
fi

. $VARS

. $RHINO_BASE/rhino-common

if [ "${OVERRIDE_HEAP_SIZE}" ]; then
  HEAP_SIZE=${OVERRIDE_HEAP_SIZE}
fi

if [ "${OVERRIDE_MAX_NEW_SIZE}" ]; then
  MAX_NEW_SIZE=${OVERRIDE_MAX_NEW_SIZE}
fi

if [ "${OVERRIDE_NEW_SIZE}" ]; then
  NEW_SIZE=${OVERRIDE_NEW_SIZE}
fi

if [ "$VERBOSE" = "1" ]; then
  echo "Using RHINO_BASE:                 ${RHINO_BASE:?not set}"
  echo "Using RHINO_HOME:                 ${RHINO_HOME:?not set}"
  echo "Using RHINO_WORK_DIR:             ${RHINO_WORK_DIR:?not set}"
  echo "Using VARS:                       ${VARS:?not set}"
  echo "Using JAVA_HOME:                  ${JAVA_HOME:?JAVA_HOME not set}"
  echo "Using MANAGEMENT_DATABASE_HOST:   ${MANAGEMENT_DATABASE_HOST:?not set}"
  echo "Using MANAGEMENT_DATABASE_PORT:   ${MANAGEMENT_DATABASE_PORT:?not set}"
  echo "Using MANAGEMENT_DATABASE_USER:   ${MANAGEMENT_DATABASE_USER:?not set}"
  echo "Using MANAGEMENT_DATABASE_NAME:   ${MANAGEMENT_DATABASE_NAME:?not set}"
  echo "Using HEAP_SIZE:                  ${HEAP_SIZE:?not set}"
  echo "Using MAX_NEW_SIZE:               ${MAX_NEW_SIZE:?not set}"
  echo "Using NEW_SIZE:                   ${NEW_SIZE:?not set}"
  echo "Using RMI_MBEAN_REGISTRY_PORT:    ${RMI_MBEAN_REGISTRY_PORT:?not set}"
fi

if [ -z "${MANAGEMENT_DATABASE_PASSWORD}" ]; then
   echo "MANAGEMENT_DATABASE_PASSWORD not set" >&2
   exit 1
fi

# Get a working directory for information generated by the script
SCRIPT=`basename $0`
SCRIPT_WORK_DIR=$RHINO_WORK_DIR/$SCRIPT

# Set classpath
LIB=$RHINO_BASE/lib
CLASSPATH="${CLASSPATH:+${CLASSPATH}:}$LIB/RhinoBoot.jar"
RUNTIME_CLASSPATH="$LIB/postgresql.jar:$LIB/ojdbc6.jar"

# Load platform hooks if they are available.
if [ -f "$LIB/platform-hooks.jar" ]; then
  CLASSPATH="$CLASSPATH:$LIB/platform-hooks.jar"
fi


if [ "$VERBOSE" = "1" ]; then
  echo "Using CLASSPATH:                  ${CLASSPATH:?not set}"
fi

JVM_VERSION=`check_java_version "${JAVA_HOME}/bin/java"`

LD_LIBRARY_PATH_UNCHANGED=$LD_LIBRARY_PATH
unset OSOPTIONS

if [ "$JVM_ARCH" != "64" -a "$JVM_ARCH" != "32" ]; then
  echo "Please specific either 32 or 64 for JVM_ARCH in ${RHINO_HOME}/config/config_variable file"
  exit 1
fi

osname="`uname -s`"
htname="`uname -m`"

case "$osname,$htname" in
  Linux,i[3456]86)  OS_TYPE="linux" ;;
  Linux,x86_64)     OS_TYPE="linux" ;;
  SunOS,i86pc)      OS_TYPE="solaris_i386" ;;
  SunOS,sun4*)      OS_TYPE="solaris" ;;
  Darwin,i386)      OS_TYPE="darwin_i386"
                    JVM_ARCH_OPTION=""
                    export OSOPTIONS="-Djava.library.path=${RHINO_BASE}/lib/${OS_TYPE}";;
  *)   echo "Unsupported Architecture $osname"
       exit 1;;
esac

if [ "`uname -s`" != "Darwin" ]; then
  case "$JVM_ARCH-$JVM_VERSION" in
    32-*1.4.*) JVM_ARCH_OPTION="" ;;  # 1.4.x does not understand -d32
    *)         JVM_ARCH_OPTION="-d$JVM_ARCH" ;;
  esac
fi

if [ "`uname -s`" != "Darwin" ]; then
  LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$RHINO_BASE/lib/$OS_TYPE/$JVM_ARCH-bit"
fi

if [ "`uname -s`" = "HP-UX" ]; then
  export SHLIB_PATH
  if [ "$VERBOSE" = "1" ]; then
    echo "Using SHLIB_PATH:                 ${SHLIB_PATH:?not set}"
  fi
else
  export LD_LIBRARY_PATH
  if [ "$VERBOSE" = "1" ]; then
    echo "Using LD_LIBRARY_PATH:            ${LD_LIBRARY_PATH:?not set}"
  fi
fi

# Improved OutOfMemoryError handling.
# This will force the Rhino JVM to immediately terminate when it
# encounters an OOME. Only available on 1.6+ JVMs.
OOME_OPTION="-Doome.kill=unsupported"
get_java_version "${JAVA_HOME}/bin/java"
if [ "$java_version_major" -eq "1" ]; then
  if [ "$java_version_minor" -gt "5" ]; then
    OOME_OPTION=-XX:OnOutOfMemoryError="$RHINO_HOME/stop-rhino.sh --terminate"
  fi
fi

# VM garbage collection settings - these are some reasonable defaults
# to minimise GC pause times and keep latency low. Adjust to suit your
# hardware platform.

VERBOSEGC="-verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails"

#INCREMENTALCMSOPTIONS="\
#    -XX:+CMSIncrementalMode \
#    -XX:+CMSIncrementalPacing \
#    -XX:CMSIncrementalDutyCycleMin=10 \
#    -XX:CMSIncrementalDutyCycle=10"

CMSOPTIONS="\
    -XX:+UseConcMarkSweepGC \
    -XX:CMSInitiatingOccupancyFraction=60 \
    ${INCREMENTALCMSOPTIONS}"

# When there are frequent JMX connections made and released these
# options should be enabled. Note. The CMSPermGenSweepingEnabled option
# is not needed for Java6.
CMSOPTIONS="$CMSOPTIONS -XX:+CMSClassUnloadingEnabled"
#CMSOPTIONS="$CMSOPTIONS -XX:+CMSPermGenSweepingEnabled"

GCOPTIONS="\
    -XX:+UseParNewGC \
    -XX:MaxNewSize=${MAX_NEW_SIZE} -XX:NewSize=${NEW_SIZE} \
    -XX:MaxPermSize=192m -XX:PermSize=192m \
    -Xms${HEAP_SIZE} -Xmx${HEAP_SIZE} \
    -XX:SurvivorRatio=128 \
    -XX:MaxTenuringThreshold=0 \
    -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFFE \
    -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFFE \
    -XX:+UseTLAB \
    -XX:+DisableExplicitGC \
    ${VERBOSEGC} \
    ${CMSOPTIONS}"


# This file is written out by Rhino to indicate that the node should not
# restart automatically.
RHINO_HALT_FILE="${RHINO_WORK_DIR}/halt_file"

# Rhino ActivityHandler GC options
AHGC_OPTIONS="-Drhino.ah.gclog=True"
AHGC_OPTIONS="$AHGC_OPTIONS -Drhino.ah.gcchurn=5000"

# Set options
OPTIONS="$OPTIONS $AHGC_OPTIONS"
OPTIONS="$OPTIONS -Drhino.ah.failover.checksum=True"
OPTIONS="$OPTIONS -Djavax.net.ssl.keyStore=${RHINO_BASE}/rhino-server.keystore -Djavax.net.ssl.keyStorePassword=${RHINO_SERVER_STORE_PASS}"
OPTIONS="$OPTIONS -Djavax.net.ssl.trustStore=${RHINO_BASE}/rhino-server.keystore -Djavax.net.ssl.trustStorePassword=${RHINO_SERVER_KEY_PASS}"
OPTIONS="$OPTIONS -Drhino.runtime.classpath=${RUNTIME_CLASSPATH}"
OPTIONS="$OPTIONS -Drhino.watchdog.dumpthreads=${RHINO_WATCHDOG_DUMPTHREADS}"
OPTIONS="$OPTIONS -Drhino.dir.base=${RHINO_BASE} -Drhino.dir.home=${RHINO_HOME} -Drhino.dir.work=${RHINO_WORK_DIR}"
OPTIONS="$OPTIONS -Drhino.haltfile=${RHINO_HALT_FILE}"
OPTIONS="$OPTIONS -Drhino.snapshot.baseport=${SNAPSHOT_BASEPORT}"
OPTIONS="$OPTIONS -Dstaging.live_threads_fraction=${RHINO_WATCHDOG_THREADS_THRESHOLD}"
OPTIONS="$OPTIONS -Dstaging.stuck_interval=${RHINO_WATCHDOG_STUCK_INTERVAL}"

# Options used in conjunction with make-primary.sh logic.
OPTIONS="$OPTIONS -Drhino.primary.makeprimary=${RHINO_WORK_DIR}/make.primary"
OPTIONS="$OPTIONS -Drhino.primary.createnode=${RHINO_WORK_DIR}/make.primary.firstboot"
OPTIONS="$OPTIONS -Drhino.primary.waiting=${RHINO_WORK_DIR}/make.primary.waiting"

# SNMP4J logging integration
OPTIONS="$OPTIONS -Dsnmp4j.LogFactory=com.opencloud.rhino.snmp.SNMP4JLogFactory"

# Force the JVM to include stack trace information in all exceptions.
# Without this option, server JVM optimisations at runtime may result in
# the loss of stack traces for frequently generated exceptions.
OPTIONS="$OPTIONS -XX:-OmitStackTraceInFastThrow"

# This option will force Rhino to use the specified savanna application
# version instead of the default build specific one.
# OPTIONS="$OPTIONS -Dsavanna.appversion=Override version goes here"

# This option (when set to 'true') prevents unauthenticated management access
# through the platform JMX interface (e.g. via a local instance of jconsole).
OPTIONS="$OPTIONS -Drhino.jmx.requireauth=false"

# This option overrides the default trace level (normally 'info') of all
# tracers with the specified level.
# Value values are: off, severe, warning, info, config, fine, finer, finest
# OPTIONS="$OPTIONS -Drhino.tracer.defaultlevel=finest"

# This option will enable automatic heap dumping in the event of
# an OutOfMemoryError. Only available in 1.4.2_12+, 1.5.0_07+,
# and 1.6+ Sun JVMs.
# OPTIONS="$OPTIONS -XX:+HeapDumpOnOutOfMemoryError"

# This option takes a comma seperated list of classes implementing the
# PlatformHooks interface. Classes specified here should also be placed in
# a new jar file at 'lib/platform-hooks.jar'. This feature is not
# intended for general use. Please contact OpenCloud for further details.
# OPTIONS="$OPTIONS -Drhino.platform.hooks=<classname>"



if [ -n "$POLICY_FILE" ]
then
  OPTIONS="$OPTIONS -Djava.security.manager"
  OPTIONS="$OPTIONS -Djava.security.policy==${SCRIPT_WORK_DIR}/config/${POLICY_FILE}"
fi

#OPTIONS="$OPTIONS -Djava.security.debug=access,failure"
OPTIONS="$OPTIONS -Djava.security.auth.login.config=${SCRIPT_WORK_DIR}/config/rhino.jaas"
#OPTIONS="$OPTIONS -Djmx.invoke.getters"
OPTIONS="$OPTIONS -Djava.io.tmpdir=${RHINO_WORK_DIR}/tmp"
OPTIONS="$OPTIONS -ea"
OPTIONS="$OPTIONS $GCOPTIONS"



# Set external command options
OPTIONS="$OPTIONS -Dcom.opencloud.javac.external=${RHINO_HOME}/run-compiler.sh"
OPTIONS="$OPTIONS -Dcom.opencloud.jar.external=${RHINO_HOME}/run-jar.sh"

# Use Rhino's MBeanServer implementation
OPTIONS="$OPTIONS -Djavax.management.builder.initial=com.opencloud.rhino.management.SleeMBeanServerBuilder"

JAVA="${JAVA_HOME}/bin/java $JVM_ARCH_OPTION -server"
Previous page Next page