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"