If you have already created a node directory (using create-node.sh), just editing the configuration file in etc/default/config won’t work.

When you create a node directory, the system copies files from etc/default/config to node-NNN/config. If the environment changes, you should always modify $RHINO_HOME/etc/defaults_config/config_variables. And if node-NNN directories already exist, apply the same changes to the node-NNN/config/config_variables file (for all NNN).

Warning Note also that a Rhino node only reads the configuration file when it starts — so if you change the configuration, the node must be restarted for the changes to take effect.

Follow the instructions below to configure: default variables, ports, usernames and passwords and watchdog.

Default configuration variables

After installation, you can modify the default configuration variables if needed, for each node, by editing node-NNN/config/config_variables. This file includes the following entries:

Entry Description

Absolute path to installation


Absolute path to working directory for node. (present but not meaningful in $RHINO_HOME/etc/defaults)


Absolute path to your installation/node. (installation for $RHINO_HOME/etc/defaults/)


Internal setting, do not change.


Absolute path to the JDK.


Whether to use the default 32-bit JVM (JVM_ARCH=32), or the 64-bit JVM on platforms with 64-bit CPUs (JVM_ARCH=64).


Name of the database where the SLEE stores its state.


TCP/IP host where the database resides.


TCP/IP port that the database listens to.


Username used to connect to the database.


Password used to connect to the database, in plaintext.


Boolean flag used to indicate whether or not the session ownership subsystem should be enabled in the default namespace.


The name of the replicated storage resource (memdb instance) that will be used for the default namespace.


Comma-separated list, surrounded by square brackets, of individually escape-quoted host:port pairs of Cassandra database nodes, for example: [\"cassandra1:9042\",\"cassandra2:9042\"]. Only used if the cassandra persistence resource is used, for example by the Cassandra key/value store or Cassandra session ownership store.


The name of the local datacentre present at the specified Cassandra contact points. Only used where CASSANDRA_CONTACT_POINTS is used.


Port used for RMI connections.


Port used for JMX connections.


Port used for SSL connections.


Port used for creating Rhino snapshots.


Maximum heap size that the JVM may occupy in the local computer’s memory.


Maximum new space size in heap (must be smaller than HEAP_SIZE)


Initial new space size.


Password for the Rhino client keystore


Password for the Rhino server keystore


Password for the Rhino client private key.


Password for the Rhino server private key.


Rhino JMX administrator password


Rhino JMX administrator username


List of IP addresses (delimited by white spaces) that refer to the local host. IPv6 addresses are expressed in square brackets.


The period (in milliseconds) after which a worker thread is presumed to be stuck.


Percentage of alive threads required. (100 means all threads must stay unstuck)


Communication mode to use for cluster membership. Every node in the cluster must have the same mode.


Base port to use in scattercast mode when automatically assigning ports. Every node in the cluster must have the same value.


Offset to use in scattercast mode when automatically assigning ports. Every node in the cluster must have the same value


Integer that must be unique to the entire cluster, but must be the same value for every node in this cluster. Several clusters sharing the same multicast address ranges can co-exist on the same physical network provided that they have unique cluster IDs.


Start of an address range that this cluster uses to communicate with other cluster nodes. (multicast only) Every node on this cluster must have the same settings for SAVANNA_MCAST_START and SAVANNA_MCAST_END.


End of an address range that this cluster uses to communicate with other cluster nodes. (multicast only)


Unique integer identifier, in the range of 0 to 255, that refers to this node. Each node in a cluster must have a unique node ID.


Typically, these values should not need to be changed unless environmental changes occur, for example:

  • If a new JVM is installed, JAVA_HOME will need to be updated to reflect that change.

  • If the IP addresses of the local host change or if a node is moved to a new machine, LOCAL_IPS must be updated.

Configure ports

The ports chosen during installation time can be changed at a later stage by editing the file $RHINO_HOME/etc/defaults/config/config_variables.

Configure usernames and passwords

The default usernames and passwords for remote JMX access can be changed by editing the file $RHINO_HOME/etc/defaults/config/rhino.passwd. For example,

# Rhino password file used by the FileAuthLoginModule JAAS login module (to authenticate JMX Remote connections)
# Format is username:password:rolelist

# Rhino admin user (admin role has all permissions)

# Additional users
Note For more on usernames and passwords, see the Rhino Administration and Deployment Guide.

Configure watchdog

The watchdog thread is a lightweight thread which monitors the Rhino SLEE for undesirable behaviour. Currently, the only user-configurable settings for the watchdog thread relate to its behaviour when dealing with stuck worker threads. A stuck worker thread is a thread which has taken more than a reasonable period of time to execute the service logic associated with an event. The cause for this may be faulty service logic, or service logic which blocks while waiting on an external resource (such as a database).

The period (in milliseconds) after which a worker thread is presumed to be stuck can be configured by editing the RHINO_WATCHDOG_THREADS_THRESHOLD variable in $RHINO_HOME/etc/defaults/config/config_variables, for example:


If too many worker threads become stuck, there can be a performance impact on the Rhino SLEE, and in extreme cases can prevent all future event processing entirely. The watchdog thread can be configured to terminate a node in the event that a certain percentage of its worker threads have become stuck by modifying the variable;


The value specified for RHINO_WATCHDOG_THREADS_THRESHOLD in $RHINO_HOME/etc/defaults/config/config_variables is the percentage of worker threads which must remain alive (unstuck) before a node will self-terminate. If RHINO_WATCHDOG_THREADS_THRESHOLD is set to 100, it means that if any of the worker threads become stuck, the node will terminate itself. If this setting is set to 0, it means that the node will never terminate itself due to stuck worker threads. This provides a mechanism for cluster nodes which have stuck worker threads to free up those threads by terminating the JVM and restarting (assuming the nodes have been configured to restart automatically). By default, the watchdog thread will kill a node in which less than half (50) of the worker threads are still alive.

Previous page Next page