notice_of_newer_xconf_oss

This document has been modified for the newer version of xconfserver available on RDK Central GitHub.


XCONF is usually installed on several VMs in production. The number of VMs for the Data Service depends on the number of devices that will be calling it. For the Admin UI, only a few VMs are required since there are usually only a few users making changes each day.

These instructions assume that the XCONF artifacts have already been built. The artifacts required are the Data Service and Admin UI WAR files.

Data Service

1: Install Java

If it's not already installed, install Java.

Note: Currently, a later version of OpenJDK 1.8.x is required.

sudo yum install java-1.8.0-openjdk-devel
java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

2: Install wget

sudo yum install wget

3: Install Jetty

This creates the xconfserver directory and installs the Jetty files.

cd /opt
mkdir xconfserver
cd xconfserver
mkdir tmp
cd tmp
wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.3.7.v20160115/jetty-distribution-9.3.7.v20160115.tar.gz
gzip -d jetty-distribution-9.3.7.v20160115.tar.gz
cd /opt/xconfserver
tar -xf tmp/jetty-distribution-9.3.7.v20160115.tar --strip=1

4: Install XCONF Data Service

The xconf-dataservice.war file should be copied to the VM.  It must be renamed to root.war.

cp xconf-dataservice.war /opt/xconfserver/tmp/.
cd /opt/xconfserver/tmp
mv xconf-dataservice.war root.war

5: Install service.properies file

The service.properties file configures XCONF with various settings, such as the Cassandra seed hosts and other Cassandra and service related properties.

In the /opt/xconfserver (or other appropriate) directory, create a file called service.properties and add at least the following lines.

cassandra.keyspaceName=<Name of the Keyspace the XCONF column families are located in>
cassandra.localDataCenter=<name of Cassandra data center>
cassandra.contactPoints=<Comma separated list of IP addresses or resolvable hostnames of Cassandra seed nodes>
cassandra.port=<CQL port (Cassandra default for this is 9042)>
cassandra.consistencyLevel=<Cassandra query consistency level (suggested either LOCAL_QUORUM, LOCAL_ONE, or ONE)>
cassandra.username=<Username to access Cluster>
cassandra.password=<Password associated with the username>
dataaccess.cache.changedKeysCfName=<Column family associated with changed keys (this is listed in test cases and docs as XconfChangedKeys4)>
specific.maxConnectionsPerRoute=<default 100>
specific.maxConnections=<default 100>
specific.connectionTimeoutInMs=<default 2000>

Starting XConf Data Service

XConf Data Service is started as a separate process.

cd /opt/xconfserver
nohup java -DappConfig=/opt/xconfserver/service.properties -DserviceName=xconfDataService -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/opt/xconfserver/logs/gc.log -Xms2048m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8081 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.rmi.port=8081 -Djetty.logs=/opt/xconfserver/logs -Djetty.home=/opt/xconfserver -Djetty.base=/opt/xconfserver -Djava.io.tmpdir=/opt/xconfserver/tmp -DENABLE_OBIEE_SCP_URL_PROP=false -Dtheplatform.log.dir=/opt/xconfserver/logs -Djava.library.path=/opt/xconfserver/lib/ext -DSTOP.PORT=8083 -Djetty.port=8080 -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/xconfserver/logs/xconfDataService.heapDump -XX:OnOutOfMemoryError=/opt/xconfserver/bin/OOM.rb -jar start.jar jetty.port=8080 > /opt/xconfserver/logs/xconfDataService.stdout.log 2> /opt/xconfserver/logs/xconfDataService.stderr.log &

Verifying that XConf is running

curl http://127.0.0.1:8080/version

Admin UI



  • No labels