# fabrician-apache-cassandra-enabler
**Repository Path**: mirrors_TIBCOSoftware/fabrician-apache-cassandra-enabler
## Basic Information
- **Project Name**: fabrician-apache-cassandra-enabler
- **Description**: TIBCO Silver Fabric Enabler for Apache Cassandra
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-26
- **Last Updated**: 2025-07-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[fabrician.org](http://fabrician.org/)
==========================================================================
Apache Cassandra Enabler Guide
==========================================================================
Introduction
--------------------------------------
A Silver Fabric Enabler allows an external application or application platform, such as a J2EE
application server to run in a TIBCO Silver Fabric software environment. The Silver Fabric Apache
Cassandra Enabler supports configuration, runtime management, JMX health and performance
monitoring of an Apache Cassandra cluster.
Supported Platforms
--------------------------------------
* Silver Fabric 5
* Windows, Linux
Installation
--------------------------------------
The Apache Cassandra Enabler consists of an Enabler Runtime Grid Library and a Distribution
Grid Library. The Enabler Runtime contains information specific to a Silver Fabric version that
is used to integrate the Enabler, and the Distribution contains the scripts and libraries that
makeup Cassandra. Installation of the Apache Cassandra Enabler involves copying these Grid
Libraries to the SF_HOME/webapps/livecluster/deploy/resources/gridlib directory on the Silver Fabric Broker.
Note that in order to enable JMX over SSL you must set the runtime context variable JMX_SSL_ENABLED to true.
You will then also need to have a keystore file jmxssl.ks packaged in your enabler along side the other
jmx related files in src/main/resources/runtime/content/management.
Testing the Deployment
--------------------------------------
* Start a Cassandra Component on Silver Fabric. See the TIBCO Silver Fabric documentation for more information.
* Note: If you are testing the installation on only one engine you will have to set the MIN_SEED_NODES to 1.
* You will also have to specify a value for SEED_CONFIG_DIR that will be accessible from all nodes.
* Connect to the Engine machine. Using a cmd (Windows) or a shell (Linux).
* Change into the directory ENGINE_WORK_DIR/cassandra/bin and run
```bash
./nodetool -u monitorRole -pw changeit -p 9000 info
```
Note that the JMX_PORT is set by default to 9000. This is set during configuration as can be seen
with a snippet from configure.xml
```xml
```
These Runtime Context variables can be overridden when defining you Cassandra component.
Runtime Grid Library
--------------------------------------
The Enabler Runtime Grid Library is created by building the maven project:
```bash
mvn package
```
The version of the distribution can be optionally overridden:
```bash
mvn package -Ddistribution.version=1.2.4
```
Distribution Grid Library
--------------------------------------
The Distribution Grid Library is created by performing the following steps:
* Download the Apache Cassandra binary distribution apache-cassandra-1.2.4-bin.tar.gz from http://cassandra.apache.org/download
* Build the maven project with the location of the archive.
```bash
mvn package -Ddistribution.location=/home/you/Downloads/apache-cassandra-1.2.4-bin.tar.gz -Ddistribution.version=1.2.4
```
Architecture Summary
--------------------------------------
All nodes listen on the same configurable port used for inter-node communication within a cluster so running multiple nodes
per cluster will result in port collision.
In the case of non-persistent data, the entire clustered is destroyed on cluster shutdown and all data is lost. This mode
is suitable for testing purposes only.
In case of persistent data, cluster nodes need to be run on a fixed pool of hosts, one node per host, and data must be stored on
same local directory path on each node, e.g. /opt/cassandra/data. This implies the cluster must be run on the same pool of hosts
in case of persistent data. If the cluster size is increased, no manual intervention is needed. However, if cluster size is
decreased permanently, it is recommended, but not required, that you manually remove the dropped node from the cluster using
nodetool command from any of the running nodes.
Feature Summary
--------------------------------------
Feature |
Summary |
Cluster support |
yes |
Dynamic clustering support |
Available with non-persistent data in scale up and scale down mode. Only available in scale up mode in case of persistent data. |
Tracked statistics |
Read Latency Mean, Write Latency Mean, Storage Load, Commit Log Active Count, Commit Log Pending Tasks,
Commit Log Completed Tasks, Compaction Bytes in Progress and Compaction Bytes Completed. Other statistics
can be enabled as required.
|
Persistent software install support |
No |
Persistent data support |
Yes |
Node cleanup |
Cassandra recommends running cleanup on nodes at various points in time. This task is not automated in this
version of the enabler. |
Component Configuration
--------------------------------------
To configure a Silver Fabric Component based on this enabler, use Default Component Type. Following Runtime
Variables must be configured or reviewed in a typical Component configuration:
Runtime Context Variable |
Description |
Default Value |
Exported to Dependent Components |
SEED_CONFIG_DIR |
Shared NFS directory under which the component creates a unique directory used for cluster seed nodes discovery |
|
No |
JMX_USERNAME |
JMX user name used to remotely connect with Cassandra Node |
monitorRole |
No |
JMX_PASSWORD |
JMX password used to remotely connect with Cassandra Node |
changeit |
No |
MIN_SEED_NODES |
Minimum of seed nodes in the cluster |
2 |
No |
Stack Configuration
--------------------------------------
To configure a Silver Fabric Stack to define a Cassandra cluster, set the minimum number of components in the
stack to be greater than or equal to the setting for the MIN_SEED_NODES. You only need to include one component
based on this enabler in the stack to define a Cassandra cluster.