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
).
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 |
Absolute path to your installation/node. (installation for |
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 |
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 |
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 |
CASSANDRA_CONTACT_POINTS |
Comma-separated list, surrounded by square brackets, of individually escape-quoted |
CASSANDRA_DATACENTRE |
The name of the local datacentre present at the specified Cassandra contact points.
Only used where |
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 |
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 |
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_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. |
Typically, these values should not need to be changed unless environmental changes occur, for example:
|
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
.
See the default configuration 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
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.
See also the default configuration variables. |