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
 RHINO_BASE

Absolute path to installation

 RHINO_WORK_DIR

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

 RHINO_HOME

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

 FILE_URL

Internal setting, do not change.

 JAVA_HOME

Absolute path to the JDK.

 MANAGEMENT_DATABASE_NAME

Name of the database where the SLEE stores its state.

 MANAGEMENT_DATABASE_HOST

TCP/IP host where the database resides.

 MANAGEMENT_DATABASE_PORT

TCP/IP port that the database listens to.

 MANAGEMENT_DATABASE_USER

Username used to connect to the database.

 CLUSTERING_MODE

Clustering mode, either SAVANNA or POOL.

 POOL_MAINTENANCE_KEYSPACE

The name of the database keyspace that the pool maintenance subsystem will use. Only used in the pool clustering mode.

 SESSION_OWNERSHIP_FACILITY_ENABLED

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

 SESSION_OWNERSHIP_STORE_KEYSPACE_PREFIX

Prefix used by the session ownership store when generating database keyspace names to store session ownership data. Only used if the session ownership store is enabled in some namespace.

 SESSION_OWNERSHIP_STORE_ALLOW_DDU

Boolean flag used to indicate if the session ownership store is allowed to perform automatic data definition updates (schema changes) to the database. Only used if the session ownership store is enabled in some namespace, and must be set to False when using the pool clustering mode.

 REPLICATED_STORAGE_RESOURCE

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

 KEY_VALUE_STORE_KEYSPACE_PREFIX

Prefix used by the key/value store when generating database keyspace names to store application data. Only used if a namespace uses a replicated storage resource that uses key/value store replication, e.g. the KeyValueDatabase.

 KEY_VALUE_STORE_ALLOW_DDU

Boolean flag used to indicate if the key/value store is allowed to perform automatic data definition updates (schema changes) to the database. Only used if a namespace uses a replicated storage resource that uses key/value store replication, e.g. the KeyValueDatabase, and must be set to False when using the pool clustering mode.

 CASSANDRA_CONTACT_POINTS

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, Cassandra session ownership store, or if the pool clustering mode is used.

 CASSANDRA_DATACENTRE

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

 RHINO_INTERCONNECT_LISTEN_ADDRESS

Network interface to bind the interconnect server to. May be a network address range expressed in CIDR notation.

 RHINO_INTERCONNECT_LISTEN_PORT_RANGE_MIN

Lower bound of the port range that the interconnect server may bind to.

 RHINO_INTERCONNECT_LISTEN_PORT_RANGE_MAX

Upper bound of the port range that the interconnect server may bind to.

 RMI_BIND_ADDRESSES

Network interfaces that the RMI/JMX server will bind to. This is a comma-separated list of local network interface IP addresses, hostnames, and/or network ranges specified in CIDR notation. Alternatively, a single asterisk * may be used to bind to all local network interfaces.

 RMI_MBEAN_REGISTRY_PORT

Port used for RMI connections.

 JMX_SERVICE_PORT

Port used for JMX connections.

 RHINO_SSL_PORT

Port used for SSL connections.

 CLIENTIPS

Comma-separated list of IP addresses, hostnames, and/or domain names that are permitted to connect to the JMX management interfaces. IPv6 addresses are expressed in square brackets. Domain names may include a wildcard asterisk * in the left-most position.

 SNAPSHOT_ENABLED

Boolean flag used to indicate whether or not the profile snapshot server should be enabled.

 SNAPSHOT_INTERFACE

Network interface to bind the snapshot server to, if enabled. May be a network address range expressed in CIDR notation.

 SNAPSHOT_PORT_RANGE_MIN

Lower bound of the port range that the snapshot server may bind to.

 SNAPSHOT_PORT_RANGE_MAX

Upper bound of the port range that the snapshot server may bind to.

 DIRECT_STATS_ENABLED

Boolean flag used to indicate whether or not the direct stats server should be enabled.

 DIRECT_STATS_INTERFACE

Network interface to bind the direct stats server to, if enabled. May be a network address range expressed in CIDR notation.

 DIRECT_STATS_PORT_RANGE_MIN

Lower bound of the port range that the direct stats server may bind to.

 DIRECT_STATS_PORT_RANGE_MAX

Upper bound of the port range that the direct stats server may bind to.

 HEAP_SIZE

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

 MAX_NEW_SIZE

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

 NEW_SIZE

Initial new space size.

 RHINO_USERNAME

Rhino JMX administrator username.

 RHINO_PASSWORD

Rhino JMX administrator password.

 RHINO_VIEW_USERNAME

Rhino JMX view-only username.

 RHINO_VIEW_PASSWORD

Rhino JMX view-only password.

 RHINO_WATCHDOG_STUCK_INTERVAL

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

 RHINO_WATCHDOG_THREADS_THRESHOLD

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

 SAVANNA_COMMS_MODE

Communication mode to use for cluster membership. Every node in the cluster must have the same mode. Only used in the Savanna clustering mode.

 SAVANNA_SCAST_BASE_PORT

Base port to use in scattercast mode when automatically assigning ports. Every node in the cluster must have the same value. Only used in the Savanna clustering mode with the scattercast communication mode.

 SAVANNA_SCAST_PORT_OFFSET

Offset to use in scattercast mode when automatically assigning ports. Every node in the cluster must have the same value. Only used in the Savanna clustering mode with the scattercast communication mode.

 SAVANNA_CLUSTER_ID

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. Only used in the Savanna clustering mode.

 SAVANNA_MCAST_START

Start of an address range that this cluster uses to communicate with other cluster nodes. Every node on this cluster must have the same settings for SAVANNA_MCAST_START and SAVANNA_MCAST_END. Only used in the Savanna clustering mode with the multicast communication mode.

 SAVANNA_MCAST_END

End of an address range that this cluster uses to communicate with other cluster nodes. Only used in the Savanna clustering mode with the multicast communication mode.

 NODE_ID

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

Warning

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)
${RHINO_USERNAME}:${RHINO_PASSWORD}:admin

# Additional users
rhino:rhino:rhino,view
view:view:view
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:

RHINO_WATCHDOG_STUCK_INTERVAL=45000

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;

RHINO_WATCHDOG_THREADS_THRESHOLD=50

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