ThingWorx High Availability > Installing and Configuring Ignite for ThingWorx HA
Installing and Configuring Ignite for ThingWorx HA
Apache Ignite is a horizontally-scalable and fault-tolerant distributed in-memory computing platform for building real-time applications that can process terabytes of data with in-memory speed. In a ThingWorx HA clustered environment, Ignite is used as distributed memory for storing shared state, such as current property values and binding information, between ThingWorx Foundation nodes.
You must have the following:
ZooKeeper installed and running
Network configurations allowing access to ZooKeeper nodes
1. Download Ignite from their Website: For version compatibility information, see the PTC Release Advisor.
2. Install the ThingWorx libraries cache-provider-ignite-[version].zip and cache-provider-api-[version].zip into the Ignite folder $IGNITE_HOME/libs.
3. Use the ZooKeeper service discovery mechanism for the cluster to connect with the platform.
b. Move the ignite-zookeeper, ignite-rest-http, and ignite-slf4j libraries from the $IGNITE_HOME/libs/optional folder to the $IGNITE_HOME/libs folder.
c. Do the following to update files to latest version:
# remove the existing zookeeper jar file in the ignite-zookeeper folder
rm -rf"${IGNITE_HOME}"/libs/ignite-zookeeper/zookeeper-* && \

# download the latest zookeeper plus other required libraries and place in ignite-zookeeper folder
wget -q --no-check-certificate[version]/zookeeper-[version].jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate[version]/zookeeper-jute-[version].jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
4. Update the default-config.xml file to enable ZooKeeper service discovery. You must place the ZooKeeper server address in the zkConnectionString connection property.
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=""

<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder">
<property name="zkConnectionString" value="ZOOKEEPER_IPADDRESS:2181"/>
<property name="peerClassLoadingEnabled" value="true"/>
The following ports must be open between the Ignite servers and the ThingWorx servers:
Discovery port
Communication port
Default port for REST API
Default port for JMX connection
Was this helpful?