Summary: This page describes how to deploy the CAST dashboards on IBM WebSphere Application Server (WAS).

Introduction

CAST recommends that the CAST dashboards are installed on Apache Tomcat, however it is also possible to use IBM WebSphere Application Server (WAS) instead. The following page describes how to perform this installation.

IBM WebSphere Application Server (WAS) is not supported for deployment of CAST Dashboard ≥ 2.0.

Prerequisites and assumptions

The following section lists all prerequisites and assumptions that have been made. Please ensure that your environment adheres to these:


ItemDescription
(tick)IBM WebSphere Application Server 8.5.xThis document describes installation on IBM WebSphere Application Server 8.5.x. It is assumed that this is already installed and functioning.
(tick)Host Operating SystemThis document assumes that IBM WebSphere Application Server 8.5.x is already installed on a Linux Operating System.
(tick)RDBMS for CAST AIP schemasThis document assumes that CAST Storage Service will be used to host the CAST AIP schemas. It is also assumed that the CAST Storage Service is installed and configured already (see CAST Storage Service) either on the same machine used for IBM WebSphere Application Server 8.5 or on a remote machine (however, instructions are not provided for CAST Storage Service hosted on a remote machine).
(tick)Java Development Kit (JDK)This document assumes that a JDK ≥ 1.7.0 is already installed on the Linux Operating System.
(tick)Linux user used to run IBM WebSphere Application Server This document assumes that the Linux user used to run IBM WebSphere Application Server has root privileges.

Step 1 - Install the JDBC driver on the host Linux Operating System

This step describes the installation of a JDBC driver on the host Linux Operating System so that the CAST Storage Service can be accessed. The instructions below assume that the CAST Storage Service (i.e. the equivalent PostgreSQL installation) are installed on the local machine.

First check the existing PostgreSQL version installed on the machine. This shows an equivalent to a CAST Storage Service 2:

james@andromeda:~$ psql --version
psql (PostgreSQL) 9.2.14

Check the JDK version installed on the machine and if necessary download/install the correct version:

james@andromeda:~$ java -version

Download and move the PostgreSQL JDBC drivers for your PostgreSQL server to the appropriate WAS folder:

james@andromeda:~/download$ wget https://jdbc.postgresql.org/download/postgresql-42.1.4.jar
james@andromeda:~/download$ cp postgresql-42.1.4.jar /opt/IBM/WebSphere/AppServer/pgsql/postgresql-42.1.4.jar

Grant permissions to the user that is running the WAS to the target folder (this is not required if WAS is running with root privileges). In the example below, WAS runs under the "websphere" user/group:

james@andromeda:~$ chown -R websphere:websphere /opt/IBM/WebSphere/AppServer/pgsql/

Now check that the permissions have been granted:

james@andromeda:~$ ls -la /opt/IBM/WebSphere/AppServer/pgsql/
drwxr-xr-x 2 websphere websphere 4096 Oct 31 09:49 .
drwxr-xr-x 39 websphere websphere 4096 Oct 31 10:09 ..
-rw-r--r-- 1 websphere websphere 505233 Oct 31 09:49 postgresql-42.1.4.jar

Step 2 - Increase the JVM initial and max heap sizes for WAS

It is necessary to increase the JVM initial and max heap sizes for WAS either in the in WAS console GUI or else by editing the server.xml file through command line. To edit the server.xml file, use the following instructions.

First make a backup copy of the current server.xml file. Navigate to the profile-root/config/cells/nodes/servers folder. By default this will be located here: /install_root/profiles/<profile_name>/config/cells/<cellname>/nodes/<nodename>/servers/server1/server.xml

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/mopyz6160104Cell01/nodes/mopyz6160104CellManager01/servers/dmgr/
james@andromeda:~$ cp server.xml backup_server.xml

Edit the server.xml file and search for the <processDefinitions> and <jvmEntries> tags at the end of the file. Update these entries as follows: "initialHeapSize="1280" maximumHeapSize="2048":

james@andromeda:~$ vi server.xml

For example:

<jvmEntries xmi:id="JavaVirtualMachine_1183122130078" verboseModeClass="false" verboseModeGarbageCollection="true" verboseModeJNI="false" initialHeapSize="1280" maximumHeapSize="2048" runHProf="false" hprofArguments="" debugMode="false" debugArgs="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" genericJvmArguments="-Xdisableexplicitgc -Djava.awt.headless=true -Xjit:{com/ibm/db2/jcc/*}(disableIdiomRecognition)">
</jvmEntries>

Save the server.xml file and quit the editor. Restart WAS to take into account the new heap sizes:

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/<profile_name>/bin/
james@andromeda:~$ ./startManager.sh

Step 3 - Configure JDBC provider in WAS Console

Click to enlarge:

Step 4 - Configure data sources

Click to enlarge:

databaseName: postgres ;currentSchema: 82_central; user:operator; password: CastAIP; portNumber: 2280 

Click to enlarge:


If you have any errors while testing the connection, please consult the following log to help debug the issue: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/dmgr/SystemOut.log

Step 5 - Deploy WAR files in WAS Console

Note that the WAR files you want to deploy must already be present on the local machine.


Click to enlarge:

Click to enlarge:

Click to enlarge:

Click to enlarge:

Click to enlarge:

Click to enlarge:

Click to enlarge:

Click to enlarge:

Step 6 - Configure dashboards

WARs are deployed in the following location:

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/<profile_name>/installedApps/<cellname>/
james@andromeda:~$ ls
CAST-Engineering.war

Configure user authentication/authorization and license key

Navigate to the contents of the deployed WAR file and complete the configuration as follows. Ensure you save all modified configuration files and then restart your application and the server to ensure the new settings are taken into account:

Configure log

By default, the log folder will be set to $${web:rootDir}/logs which makes it difficult to access the logs. Therefore CAST recommends configuring a custom location for the WAR log files. Please refer to HD-ED - Configuring the Log and Audit Trail for more information.

<Properties>
	<Property name="logPath">CAST-Health.war/logs</Property>
		<!--
		Set the auditLevel property's value to enable/disable the audit trail:
			- OFF -> audit trail is disabled
			- ALL -> audit trail is enabled
		-->
		<Property name="auditLevel">OFF</Property>
</Properties>

Step 7 - modify Jersey settings

There may be some conflicts between the Jersey version embedded in the CAST WARs and the native Jersey version used in WebSphere, as such, CAST recommends disabling the Jersey version in WAS:

Step 8 - create shared library for Jackson .JAR files

CAST highly recommends creating a shared library for the Jackson related .JAR files that are delivered in the CAST WAR files:

Click to enlarge:

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/<profile_name>/installedApps/<cellname>/CAST-Engineering.war/WEB-INF/lib

Click to enlarge:

Step 9 - create shared library for JAXB .JAR files

CAST highly recommends creating a shared library for the JAXB related .JAR files that are delivered in the CAST WAR files.

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/<profile_name>/installedApps/<cellname>/CAST-Engineering.war/WEB-INF/lib

Assign these JAR to the shared library for the application:

Click to enlarge:


fsdf<sdf


Tips and tricks

Start the WAS console

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/<profile_name>/bin/
james@andromeda:~$ ./startManager.sh 

Stop the WAS console

james@andromeda:~$ cd /opt/IBM/WebSphere/AppServer/profiles/<profile_name>/bin/
james@andromeda:~$ ./stopManager.sh

Restart Application Server

You can stop or start the application server from the WAS console. Restarting an application server involves stopping the server, then starting it.

Restart the Applications (dashboards)