A Rhino installation includes the following runtime files, in the node directory and logging output.

Node directory

Creating a new Rhino node (by running the create-node.sh script) involves making a directory for that node. This directory contains the following files, which that node uses to store state, including configuration, logs and temporary files. The following table summarises the files for a node with id 101.

File or directory Description
node-101

Instantiated Rhino node.

node-101/config/*

Directory containing a set configurations files, which Rhino uses when a node starts (or re-starts). Once the node joins the cluster, it stores and retrieves settings from the in-memory database ("MemDB"). The Rhino SLEE can overwrite files in the config/ directory — for example, if the administrator changes the SLEE’s logging configuration (using management tools), the SLEE updates each node’s logging.xml file at runtime. Before a node can join the cluster, Rhino needs to load the logging configuration from logging.xml and then load rest of the cluster’s configuration from the database.

node-101/dumpthreads.sh

Script for sending a SIGQUIT to Rhino to cause a threaddump.

node-101/generate-configuration

Script used internally to populate a node’s working directory with templated configuration files.

node-101/generate-system-report.sh

Script used to produce an archive containing useful debugging information.

node-101/init-management-db.sh

Script for reinitializing the Rhino postgres database.

node-101/read-config-variables

Script used internally for performing templating operations.

node-101/README.postgres

Postgres database setup information.

node-101/rhino-common

Contains script functions common to multiple scripts.

node-101/run-compiler.sh

Script used by Rhino to compile dynamically generated code.

node-101/run-jar.sh

Script used by Rhino to run the external 'jar' application.

node-101/start-rhino.sh

Script used to start Rhino.

node-101/stop-rhino.sh

Script used to stop Rhino.

node-101/work

Rhino working directory.

node-101/work/deployments

Directory that stores deployable units, component jars, code generated as a result of deployment actions, and any other deployment-related information Rhino requires.

node-101/work/log

Directory containing a set of log files. These constantly change and rotate, as the Rhino SLEE continually outputs logging information. Rhino automatically manages the total size of this directory (to keep it from getting too big).

node-101/work/log/audit.log

Log containing licensing auditing.

node-101/work/log/config.log

Log containing useful configuration information, written on startup.

node-101/work/log/encrypted.audit.log

Encrypted audit log.

node-101/work/log/rhino.log

Log combining all Rhino logs.

node-101/work/start-rhino.sh

Temporary directory. Used when starting the Rhino SLEE — the system copies files in the config directory here, and then makes all variable substitutions (replacing all @variables@ in the configuration files with their values from the config_variables file).

node-101/work/start-rhino.sh/config/*

Working set of configuration files in use by an active Rhino node

node-101/work/state

Temporary directory.

node-101/work/tmp/*

Savanna primary component runtime state.

Warning The tmp/, deployments/ and start-rhino.sh/ directories are temporary directories. However nothing in the work directory should be deleted while the node is running (except for tmp/ — as long as no deployment action is in progress, and any old logs in log/.)

Logging output

The Rhino SLEE uses the Apache log4j libraries for logging. In the default configuration, it sends logging output to both the standard error stream (the user’s console) and also the following log files in the work/log directory:

  • rhino.log — all logs Rhino has output

  • config.log — just changes to Rhino’s configuration

  • audit.log — auditing information (there is also an encrypted version this file, for use by OpenCloud support staff).

Tip For more on Rhino SLEE’s logging system and how to configure it, see the Rhino Administration and Deployment Guide.

Log File Format

Each statement in the log file has a particular structure. Here is an example:

2005-12-13 17:02:33.019 INFO [rhino.alarm.manager] <Thread-4>  Alarm 56875825090732034 (Node 101, 13-Dec-05 13:31:54.373):
Major [rhino.license] License with serial '107baa31c0e' has expired.

This includes:

Example Field Description
2005-12-13 17:02:33.019

Current date

The 13th of December, 2005 at 5:02pm, 33 seconds and 19 milliseconds. The milliseconds value is often useful for determining if log messages are related; if they occur within a few milliseconds of each other, then they probably have a causal relationship. Also, if there is a time-out in the software somewhere, that time-out may often be found by looking at this timestamp.

INFO

Log level

INFO is standard. This can also be WARN for more serious happenings in the SLEE, or DEBUG if debug messages are enabled.

[rhino.alarm.manager]

Logger name

Every log message has a key, and this shows what part of Rhino this log message came from. Verbosity of each logger key can be controlled, as also discussed in Rhino Administration and Deployment Guide.

<Thread-4>

Thread identifier

The name of the thread that output this message.

Alarm 56875825090732034 (Node 101, 13-Dec-05 13:31:54.373): Major [rhino.license] License with serial '107baa31c0e' has expired.

Actual log message

In this case, an alarm message.

Previous page Next page