Delink ICC Server from FICServer

This section is applicable to OFSAAI 8.0.7.3.0+, 8.0.8.1.0+, and 8.0.9.1.0+ versions only.

OFSAA predominantly has been a batch centric application that runs in the Application layer. With the increase in the number of batches running concurrently, the memory usage within the Application layer is adversely affected and this results in the slow performance of the applications. ICC server also has to-and-fro traffic requests to FICServer during batch executions to fetch its own metadata, which further degrades the performance of the application.

A way to improve the performance is to separate or de-link the ICC server from FICServer. ICC Server is enhanced to get its own metadata during batch executions without any dependency with FICServer.

Following are the advantages of delinking the ICC server from FICServer:

1.      The load on FICServer during batch execution is reduced.

2.     ICC server deployed on a different instance to FICServer helps in controlling the memory surge observed on FICServer.

3.     You can execute batches concurrently even when the load on FICSERVER is at the peak level.

4.    Execution engines with component types such as Load Data, Transform Data, Data Quality and RULE_EXECUTION can be successfully executed without any dependency on FICServer.

5.     In case the FICServer is down,

§       You can create batches using the Manage Run Execution (WSMRERequest.sh) command line utility with any available component types.

§       You can execute batches through the ESIC (External Scheduler Interface Component) command line utility. 

This enhancement is available as a licensed option and the existing architecture of co-existence of ICC and FICServer continues as the default option.

Configure ICC Server on a Separate OFSAA Node

Prerequisites

1.      A separate OFSAA node must be available where ICC server can be run independent of FICServer.

2.     Batches for execution should have the component types as Load Data, Transform Data, Data Quality and RULE_EXECUTION.

3.     Ensure the new tier on which the ICC server is running is on similar tech stack as the OFSAA application deployed node.

Steps to Deploy ICC Server in Separate OFSAA Node

 

NOTE

In this section, the App layer refers to the OFSAA node where FICServer is already running and the ICC layer refers to the new OFSAA node where ICC server will be deployed.

 

1.      Copy the .profile file from the App layer to the new ICC layer.

2.     Copy the following Jars from the $FIC_HOME/ficapp/common/FICServer/lib folderin the App layer to the $FIC_HOME/ficapp/common/FICServer/lib folder in the ICC layer.

§       icccomm.jar

§       FICServer.jar

§       aai-core.jar

§       AESCryptor.jar

§       scheduler.jar

3.     Copy the following libraries from the $FIC_HOME/ficdb/lib folder in the App layer to the $FIC_HOME/ficdb/lib in the ICC layer.

§       libDatabase.so

§       libI18N.so

§       libmisc.so

§       librevlog.so

§       libSms.so

4.    Copy the following folders from the App layer to ICC layer:

§       $FIC_HOME/ficapp/icc

§       $FIC_HOME/conf

§       $FIC_HOME/utility/ES

5.     Modify the following parameters specific to the ICC layer in the .profile file:

a.     Set FIC_HOME variable to the directory that is created as OFSAA home.

b.    Set FIC_DB_HOME variable to the directory where the ficdb folder is copied.

c.     Set FIC_APP_HOME variable to the directory where the ficapp folder is copied.

d.    Set JARPATH variable to the $FIC_APP_HOME/lib path.

e.     Set ES_HOME to the directory where the utility/ES folder is copied.

ES_HOME=$FIC_HOME/utility/ES

export ES_HOME

f.      Configure ORACLE_HOME and JAVA_BIN to the PATH environment variable as follows:

PATH=$JAVA_BIN:$ORACLE_HOME/bin:/usr/bin:/bin:/usr/sbin:$FIC_APP_HOME/icc/bin

export PATH

g.    Modify the LD_LIBRARY_PATH to point it to the Java installation directory in the ICC layer as shown:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/jdk1.8.0_172/jre/lib/amd64/server

6.    In ICC layer, modify the File name in the ICCLog4jConfig.xml file available in the $FIC_APP_HOME/icc/conf folder to point it to the new ICC layer $FIC_HOME path.

7.     In ICC layer, modify the following variables in the server.conf.properties file available in the $FIC_APP_HOME/icc/conf  path:

 

Variable Name

Description

Example

ICC_SERVER_HOST

The IP address of the ICC server.

ICC_SERVER_HOST=192.0.2.1

OBJECT_SERVER_PORT

The port on which ICC is listening.

OBJECT_SERVER_PORT=6666

ICC_ROUTER_HOST

The IP address of the Router.

ICC_ROUTER_HOST=192.0.2.2

ICC_ROUTER_PORT

The port on which router is listening.

ICC_ROUTER_PORT=7777

MESSAGE_SERVER_HOST

The IP Address of the message server

MESSAGE_SERVER_HOST=192.0.2.3

MESSAGE_SERVER_PORT

The port on which the message server is listening

MESSAGE_SERVER_PORT=8888

 

8.    Execute the following SQL script in the Configuration Schema by replacing <ICCSERVERHOSTIP> with IP address/Hostname of the new ICC layer.

UPDATE CONFIGURATION SET PARAMVALUE = '<ICCSERVERHOSTIP>'

WHERE PARAMNAME = '&ICC_SERVER_HOST'

9.    Navigate to $FIC_APP_HOME/icc/bin folder and start the ICC server by executing the following command:

./iccserver.sh

10.  Verify the log file iccserver.log under $FIC_HOME/logs/ folder for any errors.