The end of life (EOL) date for this module is on 31 January, 2020.
oacluster.sh
Quick Start
To start a single node in the foreground using the default settings, simply run the script from the binary directory:
> ./oacluster.sh
Working with single node instances
The following commands will work with a single daemon node instance. The instance number will be used as the id and the port offset, so by default instance 1 will be on port 2551, instance 2 will be on port 2552, etc.
To start instance 1 as a daemon using the default settings:
> ./oacluster.sh --start 1
To check the process status of instance 1:
> ./oacluster.sh --process-status 1
To check the cluster membership status of instance 1:
> ./oacluster.sh --cluster-status 1
To stop instance 1:
> ./oacluster.sh --kill 1
Working with multiple node instances
The following commands operate on multiple instances, from 1 to <number>.
To run a 5 node cluster from port 2551 to 2555:
> ./oacluster.sh --start all 5
To get the process status of instances 1 to 5:
> ./oacluster.sh --process-status all 5
To get the process status of all running instances:
> ./oacluster.sh --process-status all
or
> ./oacluster.sh --process-status
To stop all instances 1 to 5:
> ./oacluster.sh --kill all 5
To stop all running instances:
> ./oacluster.sh --kill all
Flags
Main operations
Flag | Abbr | Arguments | Description |
---|---|---|---|
–start | -s | <n> | Starts the <n>th instance |
all <count> | Starts instances 1 to <count> | ||
–kill | -k | <n> | Stops the <n>th instance |
all <count> | Stops instances 1 to <count> | ||
all | Stops all running instances | ||
–process-status | -ps | <n> | Gets the process status for the <n>th instance |
all <count> | Gets the process status for instances 1 to <count> | ||
all | Gets the process status for all running instances | ||
Gets the process status for all running instances | |||
–cluster-status | -cs | <n> | Gets the cluster status for the <n>th instance |
all <count> | Gets the cluster status for instances 1 to <count> | ||
all | Gets the cluster status for all running instances | ||
Gets the cluster status for all running instances | |||
–echo | -e | Echoes the run script, daemon script and the global settings | |
run,start,settings | Echoes the run script, daemon script or global settings respectively | ||
–help | -h | Prints some help |
Optional
Flag | Abbr | Arguments | Description |
---|---|---|---|
–outfile | -o | If specified, daemon proccesses will create a .out file for stderr and stdout. | |
–log-level | -ll | INFO,WARN,ERROR,DEBUG,TRACE | Sets the logging level. This will override OAC_LOG_LEVEL global setting. |
–no-jmx | -nj | Disables JMX. –cluster-status will not work. |
Global Settings
These setting can be set as environment variables or set in a resources file. By default, the oacluster.sh
script will read the ~/.oacluster.rc
file on start up. In this file you can override variables as required.
In this example we set JAVA_HOME, OAC_HOME and the OAC_NODE_PORT_BASE. Setting OAC_HOME is required if you wish to move the script outside the default directory. Changing the OAC_NODE_PORT_BASE changes the listening port used. In this example the first instance will be on port 32551.
# ~/.oacluster.rc
JAVA_HOME=/usr/lib/jvm/java-8-oracle
OAC_HOME=/opt/geneos-openaccess-node/latest
OAC_NODE_PORT_BASE=32550
Note: run ./oacluster.sh--echosettings
to see the current values for these in your environment.
Flag | Description |
---|---|
JAVA_HOME | Location of java. If not set, the script will guess based on the location of ‘java’. |
OAC_HOME | Location of the open access node binary. Defaults to the location of the script. |
OAC_CONFIG_HOME | The location of the configuration files, defaults to $OAC_HOME/config. |
OAC_LOG_HOME | The location of the log files, defaults to $OAC_HOME/logs. |
OAC_PID_HOME | The location of the pid and optional out files, defaults to $OAC_HOME/pids. |
OAC_LOG_LEVEL | The log level (e.g. DEBUG, WARNING). Defaults to INFO. |
OAC_FILE_NAME_BASE | The base name for logs and pid files. Defaults to the name of the script (oacluster). Note: The instance number will be appended to this (oacluster1.log, oacluster2.log etc). |
OAC_JAVA_MEMORY | The java heap size. Defaults to ‘1024M’. |
OAC_NODE_PORT_BASE | The base port for the nodes, each instance adds 1 to this. Defaults to 2550. |
OAC_JMX_PORT_BASE | The base JMX port for the nodes, each instance adds 1 to this. Defaults to 9990. |
Use case: Changing directories and file names
By default, the configuration and log files are kept in a sub directory of the oacluster.sh location. It is a common requirement to specify different locations for these files.
In this use case we will:
- Change the log directory to
/opt/log/oanode
- Change the pid directory to
/tmp/nodepids
- Change the configuration directory to
/opt/config/oanode
- Change log file and pid file names to start with
mynode
Lets assume that the binary was extracted to /opt/node/latest
and the user account that will run the node is called nodeuser
. Firstly, we create resource file in the users home directory. As nodeuser
:
> touch ~/.oacluster.rc
Now we can edit the ~/.oacluster.rc
, and add the following entries:
OAC_LOG_HOME=/opt/log/oanode
OAC_PID_HOME=/tmp/nodepids
OAC_CONFIG_HOME=/opt/config/oanode
OAC_FILE_NAME_BASE=mynode
We now need to create the configuration files in /opt/config/oanode
. In this case we will copy the default configuration from the binary directory.
> mkdir -p /opt/config/oanode
> cp /opt/node/latest/config/* /opt/config/oanode
You can now check the settings by running oacluster.sh-esettings
:
> /opt/node/latest/oacluster.sh -e settings
Global resource exists, it will be read: /home/nodeuser/.oacluster.rc
JAVA_HOME=/usr/lib/jvm/java-8-oracle
OAC_HOME=/opt/node/latest
OAC_CONFIG_HOME=/opt/config/oanode
OAC_LOG_HOME=/opt/log/oanode
OAC_PID_HOME=/tmp/nodepids
OAC_LOG_LEVEL=INFO
OAC_FILE_NAME_BASE=mynode
OAC_JAVA_MEMORY=1024M
OAC_NODE_PORT_BASE=2550
OAC_JMX_PORT_BASE=9990
Now you can start 2 node instances in the background:
> /opt/node/latest/oacluster.sh -s 2
You should find that the logs and pid files are in the specified locations, for instance:
> ls -la /opt/log/oanode/mynode*
-rw-rw-r-- 1 nodeuser nodeuser 12371 Apr 10 11:25 mynode1.log
-rw-rw-r-- 1 nodeuser nodeuser 6418 Apr 10 11:28 mynode2.log