Node Directory

A node directory is a folder that contains log files, operational state, and application data stored in transactional memory. It is created when a node is installed and removed when a node is removed.

The logs and other information in a node directory can provide useful information when diagnosing error conditions. The support team might ask you to generate a snapshot of a node directory to send for analysis.

Note

The node directory is for transient information. Do not configure your fragments to store important, persistent data in a node directory,

Note

Node directories are sized according to the amount of memory you specify for the node to use by means of the memorysize= parameter to the epadmin install node command, or by a statement in a configuration file. The default memory size for nodes is 512 MB.

On Windows and Linux, node directories temporarily consume some fraction of the configured memory size. On macOS Sierra 10.12 and earlier, each node directory is roughly the same size on disk as the specified memory size for that node. This limitation is lifted in macOS High Sierra 10.13 and later.

Studio Node Directories

StreamBase Studio keeps all node directories for its installed nodes in a normally hidden folder named .nodes at the root of your Studio workspace. On exit, Studio stops and removes all nodes it successfully installed, and therefore removes their node directories in .nodes.

Node directory names in the .nodes folder are the same as the node name generated by Studio to contain the fragment, including the clusterName portion of the name.

If a Studio fails to install a node and exits with an error condition, the node directory it started to create might be left over in the .nodes folder. In this case, the next time Studio tries to install a node to contain the same fragment, it might prompt you for permission to overwrite the failed node directory. Unless you wish to preserve the failed node directory for diagnostic purposes, it is always safe to respond with Yes to such prompts.

Command Line Node Directories

When installing a node with the epadmin command, use the nodedirectory= parameter to specify a relative or absolute path to a folder to contain that node's directory. That is, epadmin creates a node directory in the folder you specify, which node directory is named based on the nodename= parameter. For example:

epadmin install node nodename=A.sbuser nodedirectory=~/nodedirs application=...

This creates the node directory ~/nodedirs/A.sbuser.

The tilde (~) notation shown in this example is valid for macOS and Linux. On Windows, use the full path to your home directory, or use %HOMEDRIVE%%HOMEPATH%.

On macOS and Linux, files and folders not recently accessed in /tmp are automatically pruned, so /tmp is not a good location for node directories you might need to preserve. Use /tmp if you are certain your fragments are stable and you will not need to create snapshot files from them.

If you do not specify a nodedirectory argument, epadmin uses its current directory as the container folder, and creates the node directory there.

Snapshots of Node Directories

A snapshot is a zip file containing logs and other operational state data from a node directory. Snapshots do not contain the entire node directory, but a useful subset of one. The support team might ask you to generate a snapshot of a failed node's directory for analysis.

Taking a snapshot of a running node has no impact on the node.

In Studio

In Studio, create a snapshot file in the Clusters view:

  • Select the node of interest from the left panel.

  • Click the Snapshot button ().

  • Browse to the .nodes subfolder of your Studio workspace folder.

  • Select the node directory whose name matches the nodename of the failed node.

  • Click Next. Specify a destination location for the snapshot's zip file.

  • Click Finish.

Command Line

On the command line, use an epadmin command like the following:

epadmin create snapshot installpath=/path/to/nodedir 
    destination=/path/to/dest/dir

If you do not specify the destination= parameter, it defaults to a folder named snapshots created parallel to the installpath= node directory.

See epadmin help snapshot for additional options.

Note

Sensitive data in configuration that is not encrypted will be exposed as plain text in the snapshot archive. This may include plain text passwords in configuration. All sensitive data in configuration should be encrypted. See Encrypting Sensitive Configuration Data for details.

#
# Snapshot of a running node with a service name of A
#
epadmin --servicename=A create snapshot
Created snapshot archive '/opt/RUN/./A/../snapshots/A/A.2019-04-10-09-42-33.zip'
#
# Snapshot of a down node installed into a directory named A
#
epadmin create snapshot --installpath=A
Created snapshot archive '/opt/RUN/A/../snapshots/A/A.2019-04-10-09-43-26.zip'