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.
Prerequisites
You must have the following:
ZooKeeper installed and running
Network configurations allowing access to ZooKeeper nodes
Installation
1. Download Ignite from their Website: https://ignite.apache.org/download.cgi#binaries. 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 https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/[version]/zookeeper-[version].jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper-jute/[version]/zookeeper-jute-[version].jar -P "${IGNITE_HOME}"/libs/ignite-zookeeper/
wget -q --no-check-certificate https://repo1.maven.org/maven2/io/netty/netty-all/4.1.59.Final/netty-all-4.1.59.Final.jar -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="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<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"/>
</bean>
</property>
</bean>
</property>
<property name="peerClassLoadingEnabled" value="true"/>
</bean>
</beans>
Networking
The following ports must be open between the Ignite servers and the ThingWorx servers:
Port
Usage
47500-47600
Discovery port
47100-47200
Communication port
8080
Default port for REST API
49128
Default port for JMX connection
Was this helpful?