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/consolelog.sh

Script used by some Rhino boot scripts to capture Rhino console logging to file.

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/gc.log

Log containing Java garbage collection messages. This log is configured, by default, to roll over at 100MB with a maximum of 5 files kept.

node-101/work/log

Directory containing Rhino’s main log files. These constantly change and rotate, as the Rhino SLEE continually outputs logging information. Rhino automatically manages the total size of the most volatile logs in this directory (to keep them from taking up too much disk space).

node-101/work/log/alarms.csv

Log containing information on all alarms that have been raised. This log is configured, by default, to roll over at 100MB with a maximum of 10 files kept.

node-101/work/log/audit.log

Log containing licensing auditing. This log rolls over at 10MB, but older log files will not be cleaned up automatically. Messages are logged to here extremely minimally during regular operations, so accumulation should not be of any concern.

node-101/work/log/permissions.log

Log containing management permissions access information. This log rolls over at 100MB, but older log files will not be cleaned up automatically. Messages are logged to here extremely minimally during regular operations, so accumulation should not be of any concern.

node-101/work/log/management.csv

Log containing information on all administrative operations that were performed. This log rolls over at 100MB, but older log files will not be cleaned up automatically. Messages are logged to here extremely minimally during regular operations, so accumulation should not be of any concern.

node-101/work/log/rhino.log

Log combining all Rhino logs. This log is configured, by default, to roll over at 100MB with a maximum of 10 files kept.

node-101/work/logging-status.log

Log containing diagnostic information about the logging system itself (Log4j 2 status logger). If the logging system itself is critically broken then errors will be output to here. This log rolls over at 100MB, but older log files will not be cleaned up automatically. Messages are logged to here extremely minimally during regular operations, so accumulation should not be of any concern.

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 2 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

  • audit.log — auditing information

  • alarms.csv — raised alarms information

  • management.csv — management operations performed

  • permissions.log — management permissions access information

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+1200 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+1200

Current date

The 13th of December, 2005 at 5:02pm, 33 seconds and 19 milliseconds in UTC+1200 timezone. 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.

{}

Mapped diagnostic context (MDC)

Map containing contextual information pertaining to the thread that logged this message. By default, this contains the ID of the SLEE transaction (if one was active) and the current namespace (if running in the non-default namespace). An example could be {txID=101:217880712154627}. See Logging Context Facility for more information.

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