Admin Guide - Compliance Checker

ChemAxon Compliance Checker Installation guide

System requirements

  • 1.5 GB disk space

  • Servlet Container that supports Servlet 3.0

  • 3.5 GB memory for the Servlet Container

  • Mongo DB 2.6 or higher (Mongo DB 3+ is prefererd)

  • 2 GB of memory for MongoDB

  • Java 1.8 (Oracle Java is preferred)

Installing to One Host

Select the release tar file suitable for your OS:

  • debRelease.tar is suitable for Debian like systems (Debian, Ubuntu, ElementaryOS, etc.)

  • rpmRelease.tar is suitable for RedHat like systems (RedHat, Fedora, CentOS, etc.)

Using the install script

The debRelease/rpmRelease TAR file contains the following files/directories:

  • wars directory

  • debs / rpms directory (depending on which archive you choose)

  • install.sh file

In install.sh you can set four parameters, as follows:

  • LICENCE_FILE the location of license.cxl file

  • CONTAINER_HOME the home folder of the servlet container (usually /usr/share/tomcat8 for Tomcat 8)

  • WEBAPPS_FOLDER the folder of web applications (usually /var/lib/tomcat7/webapps/ for Tomcat 7 on Ubuntu and /usr/share/tomcat8/webapps for Tomcat 8 on CentOS)

  • WEBAPP_RUNNER_USER the name of the user that will run the servlet container

You have to set these parameters according to your system settings, and then run the install script with root privileges. This script will do the following steps:

  1. Installs the packages in debs / rpms: copies the jar files into your /var/lib/chemaxon/cc/ folder (app-config for config server and eureka for Eureka service), and creates links in your /etc/init.d/ folder for them. These jars require Java 8 to run.

  2. Copies the war files from wars directory to the web applications root folder.

  3. Creates the .chemaxon folder in the home for the container running user, and copies the licence file into it.

Configuring system

Config Server is a service of Compliance Checker to populate your settings to other servers (cc-web, cc-bigdata and cc-backend). On startup, all of these services require the config server to load their settings from it. Config server can update some settings during runtime, but others need to be updated by restarting the servers.

After installing Config server as a system service you should have a /var/lib/chemaxon/cc/app-config folder. To be able to customize the application, you have to create here a config sub-directory including an application.properties file in it. Any property changed in the /var/lib/chemaxon/cc/app-config/config/application.properties file will affect the appropriate services. Config server by default is deployed to the 8888 port. If you POST a request (body is not needed) to the server's /refresh/all endpoint it will refresh all services with the new settings.

This can be done with curl like this:
curl -X POST --header "Content-Type: application/json" --header "Accept: */*" "http://localhost:8888/refresh/all"

The default settings you can change in application.properties are as follows (in this format # stands for comment):

# Security provider chooses what settings to use for user authentication
# IN_MEMORY small number of predefined user, only for testing purposes.
# ANONYMOUS no login required.
# LDAP uses LDAP server to log in users
# ACTIVE_DIRECTORY Uses Microsoft's Active Direcotry service for authentication
securityProviderName = IN_MEMORY
 
# This forces to use HTTPS connections.
securityProviderSecure = false  
 
# If this is true, SSL certificate of services is not checked.
securityProviderAllowUnsignedCert = true  
 
# If you leave this empty, all IP is accepted to connect.
securityProviderAllowedIp = 
 
# or PASSIVE.
queueingStrategy = ACTIVE  
 
# measured in milliseconds.
deadJobTreshold = 120000 
 
# change this to SEQUENTIAL and only one checker thread will be used.
executionStrategy = PARALLEL

Settings of database connection

The database connection settings can also be set in application.properties; the following settings are the defaults:

# Number of molecules checked in one run.
chunkSize = 10
 
# Host of MongoDB.
databaseHost = 127.0.0.1
 
# Port of MongoDB.
databasePort = 27017
 
# Name of database in MongoDB.
databaseName = test
 
# Name of the user who connects the database.
mongoUser = cxnMongo
 
# Name of the user who connects the database.
mongoPassword = ccMongoPass
Creating user in MongoDB
db.createUser(
{
user:"cxnMongo",
pwd:"ccMongoPass",
customData:
{
data:"anydata"
},
roles : [
{
role: "clusterAdmin",
db: "admin"
},
{
role: "readAnyDatabase",
db: "admin"
},
"readWrite"
]
}
)

Installing to Multiple Hosts

You can install multiple instances of Eureka, but there should be only one Config server in the system. If you distribute the system you should set the following settings to the services:

Config server

Config server is the route of the hierarchy. It should register with Eureka service. If Eureka does not run in localhost:8761 (8761 is the default Eureka port) then you have to set the following property in /var/lib/chemaxon/cc/app-config/config/application.properties:

eureka.client.serviceUrl.defaultZone=http\://<eureka-hostname>\:<eureka-port>/eureka/

If Eureka runs locally for the Config Server, but it is a remote service for the other services, then you should set the above property with an address that is available for all services, because this setting will be populated to all services.

Eureka server

Eureka server is used by all the services. It uses the Config Server to init itself. If the Config Server does not run in localhost:8888 (8888 is the default Config Server port), then you can have to the following property in /var/lib/chemaxon/cc/eureka/config/bootstrap.properties:

spring.cloud.config.uri=http\://<config-server-host>\:<config-server-port>/

Configuring the war files

Every war file uses the Config Server to init itself. If the Config Server does not run in localhost:8888, then you have to set the following property in the WEB_INF/classes/bootstrap.properties file of each war file:

spring.cloud.config.uri=http\://<config-server-host>\:<config-server-port>/

This property will be used in startup time to connect to the Config Server and recieve all the properties to use in initialisation.

Special features

This product is shipped with MarvinJS as a chemical editor. For full MarvinJS functionalities you should install JChem Web Services as webservices2.war to the same serever as cc-web.war.