This article targets: TIBCO Spotfire S+ Server 8.1 and forward.
You can install the TIBCO Spotfire S+® Server on multiple machines to operate together in a clustered environment. If you are preparing to deploy Spotfire S+ Server and find you need scalability, availability, and reliability that go beyond the benefits of a stand-alone Spotfire S+ Server installation, consider deploying Spotfire S+ Server in a clustered environment.
In this article, we discuss the benefits and considerations of clustering Spotfire S+ Server and provide detailed steps for setting up a TIBCO Spotfire S+ Server cluster.
Benefits
- Expands to Meet Growth. You are not required to identify a single machine that will meet growth requirements. You can start conservatively and grow the system as needed.
- Provides Failover. Jobs running on a failed node are marked as failed. You can resubmit these jobs without needing to bring the failed node back online.
- Offers High Availability. You do not need to rely on a single machine. If a node fails, other nodes continue processing jobs.
- Offers High Reliability. You can identify a growing job queue easily. Adding a node is a simple process. Once the service is started, the new node immediately starts processing jobs.
- Provides Load Balancing. Jobs are distributed among the nodes and are only processed by nodes with an available engine.
Considerations
- Increases Administration. You must maintain multiple systems.
- Requires a Fast Network. The Spotfire S+ Server cluster depends heavily on the network used by the systems in the cluster. Additional planning may be necessary to ensure the systems use appropriate interconnects and they are in close proximity.
- Includes Potential Points of Failure. The basic cluster deployment includes three potential points of failure. Specifically, the database server used for the job database, the file system used for the WebDAV repository and a single Spotfire S+ Server for handling incoming requests. There are solutions for eliminating these points of failure but additional planning and setup may be needed. In the case of the job database and WebDAV repository, most database servers and file systems offer solutions for failover and high availability. In terms of the single Spotfire S+ Server, you can replace it with a replicated or clustered load balancer.
Overview
Conceptually, the Spotfire S+ Server cluster is no different than a stand-alone deployment. The stand-alone deployment of Spotfire S+ Server is illustrated below.

Simple Single Spotfire S+ Server Deployment
As the diagram illustrates, all components are on a single physical machine and all incoming requests are processed by this machine. The job database manages the job queue and holds information needed during the job lifecycle. The Spotfire S+ engines execute the jobs, and the WebDAV repository stores files needed by Spotfire S+, along with any results generated during job execution.
This simple design allows vertical scaling of Spotfire S+ Server. That is, you can provide more capacity by upgrading hardware on the stand-alone Spotfire S+ Server machine. For example, adding processors, memory, or storage could increase overall computing power or allow the system to support more users.
In many cases, vertically scaling Spotfire S+ Server is a reasonable choice and certainly has its benefits. For example, you need to maintain only a single machine. The drawback to this approach is that it usually requires a great deal of initial planning to find a machine that will meet growth requirements. Also, a single machine generally indicates a single point of failure.
To address these issues, the Spotfire S+ Server also supports horizontal scaling. In other words, increasing capacity does not require modifications to a single machine. Rather, it only requires installing the software on additional machines (nodes) that work together. This is the basis for the Spotfire S+ Server cluster.
With Spotfire S+ Server deployed in a clustered environment, each node must share the same job database. Also, it is critical that the results generated by a node are accessible in the event that node is down. To achieve this, the job database and the WebDAV repository must be centralized. The following diagram illustrates the basic Spotfire S+ Server cluster with the centralized job database and WebDAV repository.

Basic clustered Spotfire S+ Server Deployment
As the diagram above illustrates, one of the Spotfire S+ Server nodes is dedicated to handling all incoming requests. This node has a standard installation of Spotfire S+ Server. Its primary responsibilities are to:
- Process all incoming requests.
- Ensure jobs that need to be executed by Spotfire S+ are properly queued.
- Return results back to the client.
The other nodes also include the standard installation of Spotfire S+ Server, but they just execute jobs in the queue.
A dedicated Spotfire S+ Server handling all incoming requests introduces a single point of failure. If this concerns you, consider replacing it with a standard load balancer. (Most load balancers have their own methods for replication or clustering.) This Spotfire S+ Server cluster is illustrated as follows.

Spotfire S+ Server with Load Balancer.
In this case, it is possible to think of the load balancer as an extra layer that distributes incoming requests among the nodes. The nodes share the responsibilities of queuing jobs and forwarding results back to the load balancer. The load balancer sends the results to remote clients.
The simple design of the Spotfire S+ Server makes it possible to add the load balancer with minimal configuration changes. This example provides setup instructions for the basic Spotfire S+ Server cluster. If you decide to include a load balancer, use the same setup procedure. You need only to configure the load balancer properly to distribute incoming requests among the nodes.
Setup
The following instructions walk through the initial installation of the Spotfire S+ Server cluster. They also include a section on adding nodes.
Initial Setup
Make sure that you meet the prerequisites, and then follow the steps to establish a Spotfire S+ Server cluster.
Prerequisites
Before setting up the Spotfire S+ Server cluster, you need the following:
- The TIBCO Spotfire Installation and Administration Guide and the installer.
- A system that meets the minimum requirements for installing Spotfire S+ Server.
- A system to be used for the job database. Currently, MySQL is the only database server supported with Spotfire S+ Server. You might need to download and install MySQL on this system. Any version of MySQL 5.x should be compatible with Spotfire S+ Server. For hardware, we recommend a modern system that includes a fast connection between it and the Spotfire S+ Server nodes.
Because this is a potential single point of failure, you also might consider replicating MySQL or deploying a MySQL cluster.
- The JDBC driver for connecting to the job database system. For this release, you must download a compatible version of the MySQL Connector/J (http://www.mysql.com/products/connector/j/)
- A file server to use for the WebDAV repository. We recommend a modern file server that has a fast connection between it and the Spotfire S+ Server nodes.
Note Because this is a potential single point of failure, you might consider a clustered file server.
Set Up the Job Database
- Log into the MySQL terminal monitor ("monitor") as root. For more information, see the MySQL documentation (http://dev.mysql.com/doc/index.html).
- Create the Spotfire S+ Server job database by issuing the following commands in the monitor:
CREATE DATABASE db;
USE db;
Warning: Select a name that is not currently in use. In the code above, we chose to name the database "db". If you select a different name, you must modify the code to reflect the new name.
- Issue the commands contained in the file pop_db.txt in the monitor to populate the database with the
SPLUS_JOBS table. The Spotfire S+ Server uses this table to manage incoming requests to be executed by the Spotfire S+ engine pool.
- Issue the commands contained in the file quartz_db.txt in the monitor to populate the database with the Quartz Enterprise Job Scheduler tables. These tables maintain scheduling information concerning jobs in the
SPLUS_JOBS table and provide triggers indicating when jobs should be submitted for execution.
- Issue the following commands in the monitor to create a MySQL account username and password with
GRANT ALL privileges on the database created in the preceding steps. For example, the following command grants all privileges to a user named sa with password sa. Note the user is created if it does not exist prior to issuing the command.
GRANT ALL PRIVILEGES ON db.* TO 'sa'@'%' IDENTIFIED BY 'sa';
- Note the database name, username and password: you need it when you configure the first node.
Create the WebDAV Repository
On the file server, create a directory to be used as the root directory for the WebDAV repository. Each node in the cluster needs both read and write access to this directory.
Install the First Node
- Run the TIBCO Spotfire S+ Server installer.
Note The following instructions correspond to the graphical user interface for the installer, which is displayed by default on Microsoft Windows®. The instructions for UNIX/Linux are identical, but you will not see the graphical user interface by default.
- When prompted, select Clustering Support.
- Click Next, specify the installation location, and then click Next again.
- Select First Node.
- Click Next. Provide the name of the JAR file corresponding to the JDBC driver needed to connect to the job database server.
- Complete the installation. You do not need to start the service yet because you must configure the node manually.
Configure the First Node
Browse to the configuration for Spotfire S+ Server, located in SPSERVER_HOME/conf, where SPSERVER_HOME is the Spotfire S+ Server installation directory. The default spserver.properties has the following entries:
isclustered=true
authentication.required=false
database.type=HSQL
database.url=
database.username=
database.password=
webdav.root=C:/Program Files/TIBCO/splusserver81/data/${localhost}
webdav.url=http://${localhost}/SplusServer/webdav/${localhost}
webdav.url.persistent=
webdav.cleanup.run.interval.minutes=10
webdav.cleanup.time.to.live.minutes=1440
engine.count=2
engine.java.options=
engine.init.file=
engine.init.expr=
engine.verbose.log=false
engine.appdata.dir=
engine.max.requests=1
engine.max.run.seconds=0
engine.max.elapsed.seconds=0
job.list.xslt.enabled=true
You must edit this file to indicate that you are using a centralized job database and WebDAV repository. From the initial setup, you should have the job database server name, username and password. Also, you should have the path to the WebDAV repository. Using this information, edit the file as follows.
isclustered=true
authentication.required=false
database.type=MYSQL
database.url=jdbc:mysql://RDBMS-HOSTNAME:3306/db
database.username=sa
database.password=sa
webdav.root=//FILESERVER-HOSTNAME/${localhost}
webdav.url=http://FIRSTNODE-HOSTNAME:8080/SplusServer/webdav/${localhost}
webdav.url.persistent=
webdav.cleanup.run.interval.minutes=10
webdav.cleanup.time.to.live.minutes=1440
engine.count=2
engine.java.options=
engine.init.file=
engine.init.expr=
engine.verbose.log=false
engine.appdata.dir=
engine.max.requests=1
engine.max.run.seconds=0
engine.max.elapsed.seconds=0
job.list.xslt.enabled=true
You must set the database properties based on the configuration you chose during the initial setup. The WebDAV properties are determined by your choices from initial setup. For webdav.root, you must replace //FILESERVER-HOSTNAME with the path to the share that you chose for the WebDAV repository. Also, ensure http://FIRSTNODE-HOSTNAME:8080, included in the first part of the webdav.url, is defined explicitly to point to the first node.
After you have made these modifications, you can edit any of the other configuration properties as needed. See the TIBCO Spotfire S+ Server Installation and Administration Guide for more details.
Start the Service
See the section Starting and Stopping the Server in Chapter 4 of the TIBCO Spotfire S+ Server Installation and Administration Guide.
Validate First Node
See the TIBCO Spotfire S+ Server Installation and Administration Guide for information on validating Spotfire S+ Server.
Prepare for Additional Nodes
- When you add nodes using the Spotfire S+ Server installer, you must select a conf directory containing the configuration to use for the new node. We suggest you place the configuration of the first node in a location that is accessible from the new node during installation. You can use the WebDAV repository share. Simply copy to the share SPSERVER_HOME/conf (where SPSERVER_HOME is the Spotfire S+ Server installation directory of the first node).
Note First, create a subdirectory, such as spserver-cluster, to contain the conf directory. Remember this location so you can use it later when you add nodes.
- Also, you must have the JDBC driver for connecting to the job database server. We recommend you place this file in the same location you used in Step 1. Again, remember this location so you can use it later when you add nodes.
Provide Users with URL to First Node
The first node will be used to access the cluster. Provide
http://FIRSTNODE-HOSTNAME:8080/SplusServer to users, where
FIRSTNODE-HOSTNAME is the hostname of the first node. There is no need to allow direct access to additional nodes.
Adding Nodes
This section describes the necessary steps for adding nodes to the Spotfire S+ Server cluster.
Prerequisites
Before adding a node to the Spotfire S+ Server cluster, you need the following.
- A Spotfire S+ Server cluster deployed as outlined in the Initial Setup section, above.
- The TIBCO Spotfire Installation and Administration Guide and the installer.
- A system that meets at least the minimum requirements for installing Spotfire S+ Server.
- The location of the JDBC driver downloaded during the initial setup.
- The location of the Spotfire S+ Server conf directory that was archived as part of the initial setup.
Install an Additional Node
- Before running the installer, you can customize the configuration for the node by editing the Spotfire S+ Server configuration files archived during the initial setup. Be sure to make a backup before editing any of the files. For more details on configuring Spotfire S+ Server, see the TIBCO Spotfire Installation and Administration Guide.
- Run the TIBCO Spotfire S+ Server installer.
Note The following instructions correspond to the graphical user interface for the installer, which is displayed by default on Microsoft Windows®. The instructions for UNIX/Linux are identical, but you will not see the graphical user interface by default.
- When prompted, select Clustering Support.
- Click Next, specify the installation location, and then click Next again.
- Click Next, and then select Additional Node.
- Click Next. Browse to the Spotfire S+ Server conf directory you created during the initial setup of the Spotfire S+ Server cluster. (In the example below, it is stored in the shared location S:\spserver-cluster.)

- Click Next. Provide the location of the JAR file corresponding to the JDBC driver needed to connect to the job database server. The JDBC driver should be in a shared location created during the initial setup of the Spotfire S+ Server cluster. (In the example below, it is stored in the shared location S:\spserver-cluster.)
- When you have completed the installation, start the service. See the section Starting and Stopping the Server in Chapter 4 of the TIBCO Spotfire S+ Server Installation and Administration Guide.
Validate Node
See the TIBCO Spotfire S+ Server Installation and Administration Guide for information on validating Spotfire S+ Server. You must open a browser on the node and use localhost as the hostname.