Configuring ThingWorx Foundation for Clustering
ThingWorx Foundation clustering requires two or more servers to operate in a high availability configuration.
Prerequisites
• A database is installed and running.
• Apache ZooKeeper is installed and running.
• Apache Ignite is installed and running.
• Shared file storage for ThingworxStorage and repositories is set up.
Installation
1. Download and install the ThingWorx Platform. See
Installing ThingWorx. You need to complete the installation for each server in the cluster.
|
If you are upgrading an existing ThingWorx installation to ThingWorx 9.3 and later, you must first follow the upgrade procedure before configuring ThingWorx to run in cluster mode. For more information, see Upgrading ThingWorx.
|
2. Update the platform settings for each server.
3. Start one server.
4. Copy the /ThingworxPlatform/keystore-password file to the other server.
a. If running on Red Hat Linux (RHEL), provide full permissions to the keystore-password file for the Tomcat user.
5. Start the other server.
6. Validate the installations in ThingWorx Composer:
a. Create an application key for the ThingWorx Connection Server and validate that the value on each server is the same.
b. Create a Thing and validate that it appears on each server.
c. Set a non-persistent property value and validate that it updates on each server.
Environment Variables
The following environment variables must be set depending on how you will run Apache Tomcat. For more information, see the
Apache Tomcat documentation.
• IGNITE_NO_SHUTDOWN_HOOK
For graceful shutdown of an instance in a ThingWorx cluster, you must enable the IGNITE_NO_SHUTDOWN_HOOK environment variable, which manually shuts down the cache when it is safe to do so.
• IGNITE_WORK_DIR
You must manually create the /ignite/work directory on the ThingWorx servers. The Tomcat user should have read and write access to the Ignite directory and its content. Note that this is a different directory than the opt/ignite/work directory on the Ignite server.
• HTTP_PORT or HTTPS_PORT
This is the port used by the ThingWorx Connection Server to talk to the ThingWorx Platform in a clustering environment. The port must be set or the server will not start.
• HTTP_SERVICE_NAME or HTTPS_SERVICE_NAME
This is the service name used in service discovery to register the ThingWorx Platform. The ThingWorx Connection Server must be configured to use the same name to find server instances. You can change the default setting.
• HTTP_ADDRESS or HTTPS_ADDRESS
If this environment variable is defined before system start when cluster mode is enabled, the value is the IP address or host name that will be registered with the service discovery provider for HTTP or HTTPS. If it is not defined, the system will attempt to discover an active, non-virtual site local IP address.
Configuring SSL/TLS for ThingWorx Platform
To configure SSL/TLS for ThingWorx Platform, see
Configuring SSL/TLS for ThingWorx Platform.
To configure SSL/TLS for Akka, see
Configuring SSL/TLS for Akka.