This document is the first place to go to get started using the SDK (Software Development Kit) version of Rhino. It includes hardware and software requirements, installation instructions, and the basic steps for installing and running a Rhino SDK.
Topics
Checking hardware and operating system requirements, installing Java, and configuring the network |
|
Unpacking the Rhino SDK |
|
Starting and stopping the Rhino SDK |
|
Stopping the Rhino SDK and deleting the directory. |
The SDK version of Rhino SLEE is intended to support development of prototype and proof-of-concept services, and evaluation of Rhino. It runs in a single Java Virtual Machine and does not provide all of the fault-tolerance capabilities of a production Rhino installation. A software development license that allows the use of production Rhino for development can be purchased from Metaswitch. |
Other documentation for the Rhino TAS can be found on the Rhino TAS product page.
Preparing to Install the Rhino SDK
Before installing the Rhino SDK, you need to:
Check Hardware and Operating System Prerequisites
Rhino SDK requires a platform capable of running Oracle’s JDK or OpenJDK for Java Standard Edition (SE) 11.
The system requirements for running Java can be found on www.oracle.com.
Install Java
Follow the instructions on docs.oracle.com for installing Java. Ensure you download and install the JDK not the JRE. The JRE does not contain all the tools needed to run Rhino.
Check the Rhino Compatibility Guide to ensure Rhino 3.0.0 is supported on your version of Java. |
Unpacking the Rhino SDK
The Rhino SDK is delivered as a compressed zip file named rhino-sdk-3.0.0.x.zip
.
To begin the Rhino installation, unzip rhino-sdk-3.0.0.x.zip
:
-
To extract, use the unzip command:
$ unzip rhino-sdk-3.0.0.x.zip
This will create the directory
RhinoSDK
in the current working directory.
Start the Rhino SDK
Below are details on the supported command-line arguments and instruction for starting the Rhino SDK.
Command-line arguments
The Rhino SDK start scripts support the following command-line options:
Option | Purpose | ||
---|---|---|---|
-j <JAVA_HOME> |
Specifies the path to a JDK installation that should be used to run the Rhino SDK. This option only has effect when starting the Rhino SDK for the first time. After the first start the file
|
||
-s |
Indicates that Rhino should be started with the SLEE in the |
||
-x |
Indicates that Rhino should be started with the SLEE in the |
The In the case neither the
|
Stop the Rhino SDK
Below are instructions on stopping the Rhino SDK.
Run stop-rhino.sh
with Linux
To stop the Rhino SDK, execute the stop-rhino.sh
shell script in the $RHINO_HOME
folder. This script has the following options:
$ ./stop-rhino.sh --help Usage: stop-rhino.sh (--nice|--terminate|--kill|--restart) (Terminates the Rhino SDK.) Options: --nice - Performs a clean shutdown of the SDK via management commands. --terminate - Terminates the SDK via management commands. --kill - Kills the SDK's JVM via unix system commands (unix only). --restart - Restart the SDK via management commands.
For example:
$ ./stop-rhino.sh --nice Shutting down the Rhino SDK. Stopping the SLEE. Waiting for SLEE to enter STOPPED state. SLEE is in the Stopped state on node(s) [101] Shutdown complete.
The --restart option is not currently supported if a user-defined namespace exists in Rhino with a SLEE state that is not INACTIVE . |
Rhino SDK Configuration Files
The Rhino SDK configuration is stored in the config
directory of the Rhino home directory. This contains configuration files for Rhino and JVM settings.
File | Purpose | ||
---|---|---|---|
config_variables |
Basic Rhino configuration. The most common settings can be configured here |
||
jvm_args |
All JVM configuration arguments including Java system properties for configuring Rhino.
|
||
logging.xml |
Log keys, levels and appenders. Configuration of tracers as used by Resource Adaptors and Services is managed separately with the Rhino management interface |
||
rhino-config.xml |
Configuration of Rhino facilities such as the timer facility and monitoring statistics collection. |
||
defaults.xml |
Default settings for access control, limiters, logging, persistence and SNMP. Not used after first boot. |
||
init_*_db.sql |
Scripts for initialising the Rhino management database |
||
jetty.xml |
Configuration for the embedded Jetty web server used by the embedded REM instance. |
||
mlet.conf |
Security permissions for JMX MLets. Configure if custom access permissions for management are required. Usually this is only required in production Rhino deployments. |
||
persistence.xml |
Database configuration for persistent storage of Rhino settings, profiles and JDBC data sources. |
||
rhino.jaas |
JAAS authentication settings. Configures how Rhino authenticates users of the management API and tools. |
||
rhino-boot.policy |
Java security policy for the Rhino starter. Usually this should not be changed. |
||
rhino.policy |
Java security policy for the Rhino application server. Edit this if you are developing a service with native components or additional database drivers. In general services and resource adaptors should have security permissions set in their respective descriptor files. |
||
rmissl.jmxr-adaptor.properties |
Location of SSL keystores for JMX authentication |
||
runtime.xml |
Configuration of Symmetric Activation for production Rhino clusters. Not functional in the Rhino SDK. |
(Optionally) Configure Rhino SDK to use PostgreSQL
Use the following procedures to (optionally) use PostgreSQL instead of Derby with the Rhino SLEE SDK.
The Rhino SLEE SDK uses a Derby embedded database to store its internal state. There is generally nothing to configure with the Derby database. It is stored in The Rhino SLEE SDK can optionally be reconfigured to use PostgreSQL to store state. It can use either the Derby embedded database or PostgreSQL, but not both at the same time. |
1 |
Install PostgreSQL
PostgreSQL is usually available from your Linux distribution repositories. |
||||
---|---|---|---|---|---|
2 |
Create a user
Once PostgreSQL has been installed, the next step is to create or assign a database user for the Rhino SLEE. This user will need permissions to create databases, but does not need permissions to create users. Use the [postgres]$ createuser Enter name of user to add: rhino Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER |
||||
3 |
Configure access control
The default PostgreSQL installation trusts connections from the local host. If the Rhino SLEE and PostgreSQL are installed on the same host, the access control for the default configuration is sufficient. Below is a sample access-control configuration, from the file #TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust When you need to install the Rhino SLEE and PostgreSQL on separate hosts, or need a stricter security policy, you’ll need to tailor the access control rules in #TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust host rhino rhino 192.168.0.5 255.255.255.0 password After making these changes, you’ll need to completely restart the PostgreSQL server. Telling the server to reload the configuration file does not cause it to enable TCP/IP networking as this is initialised when the database is initialised. To restart PostgreSQL, either use the command supplied by the package (for example, |
||||
5 |
Edit configuration variables
By default, the Rhino SLEE SDK uses its own Derby embedded database. To use PostgreSQL rather than Derby, make the following changes.
|
||||
6 |
Initialise the PostgreSQL database
To initialise the database, run: ./init-management-db.sh postgres
Now, executing |
(Optionally) Configure Session Ownership Facility Support
The session ownership subsystem is an optional Rhino platform extension with the primary purpose of allowing SLEE services and resource adaptors on a given node to claim ownership of a particular thing such as an individual SLEE activity or a complete identifiable session .
The Cassandra session ownership store implementation is included with a Rhino SDK installation. It is disabled by default but can be enabled following these configuration steps.
Note that the Rhino SDK does not offer an automated means of enabling the session ownership subsystem. The configuration steps need to be followed manually.