Install and Configure Oracle Fusion Middleware using Slim Installer

Oracle Health Insurance applications run on the Oracle Fusion Middleware Application Server, also known as the Oracle WebLogic Server.

The slim installer option enables the creation of light-weight Docker or CRI-O images and containers in Kubernetes, when the installation does not require the WebLogic console.

The slim installation includes the Oracle WebLogic Server and Oracle Coherence server runtime applications, but excludes examples, the WebLogic console, WebLogic clients, Maven plug-ins and Java DB.

The Oracle Health Insurance ADF user interface does not run on the slim installation; only the JET user inteface is available.

If it runs on more than one managed server or node, the application servers have to be configured as a cluster. WebLogic version 12.1.x introduced a DynamicCluster feature. A dynamic cluster uses a single server template to define the configuration for a specified number of generated (dynamic) server instances. In a dynamic cluster, additional dynamic servers can be started without having to first manually configure and add them to the cluster. Oracle Health Insurance applications are certified to work with both static and dynamic clusters.

This guide assumes the reader has experience with the installation and set up of the Oracle WebLogic Server. For additional information regarding the installation process refer to the product documentation.

The certification information is available, per release, on My Oracle Support. It specifies the required Java and Oracle WebLogic Server software versions that have to be installed.

This chapter outlines the installation procedure of the Oracle WebLogic Server software.

Installing Oracle Fusion Middleware and Creating a Domain

Install Oracle Fusion Middleware and use the Slim Installer for the Oracle WebLogic Server and Oracle Coherence.

Create a WebLogic Domain, either by using he Fusion Middleware Configuration Wizard, the command line or WLST scripts. All subsequent changes to the Weblogic Domain have to be done through the WLST or via the RESTful Management API.

If using the Configuration Wizard, make sure to select the WebLogic Coherence Cluster Template. Any other templates are optional and are not required for running the Oracle Health Insurance applications.

When using the Configuration Wizard, Oracle recommends accepting the default Coherence Cluster Name and Unicast Listen Port.

Domain Configuration

Redirect the JVM Output to a Log File

The JVM output for a WebLogic server is written to the console by default. Oracle recommends redirecting the console output to a file.

In development mode, the default size of a logfile before it is rotated is set to 500Kb. Oracle recommends changing the size of the log files before rollover to 10240 Kb and specifying the number of log files that are retained.

Setting up the Claims Properties Files

Create a directory that holds the Claims properties and the configuration files. This directory is referenced as <CONFIG_ROOT> throughout this document.

Copy the following files that are delivered as part of the specific release from <OHI_ROOT>/properties* to <CONFIG_ROOT>:

  • logback.xml

  • ohi-claims.properties.template

Rename the copied ohi-claims.properties.template to ohi-claims.properties.

Copy the file <OHI_ROOT>/util/security/ohi-security.config to <CONFIG_ROOT>.

Setting up Coherence Clusters

Oracle Health Insurance applications use Oracle Coherence. The IT infrastructure on which the system is installed determines the configuration for Oracle Coherence. This paragraph describes the following configuration options:

  • Control multiple Coherence clusters that are spread across multiple machines

  • Control multiple Coherence clusters that are executed on one machine

  • Specific settings for running Coherence in a Production environment

Define a Coherence Cluster for Oracle Health Insurance

Oracle recommends creating an application-specific Coherence cluster that is associated with the application-specific WebLogic Cluster in which the Oracle Health Insurance application is executed.

For example, for the Oracle Health Insurance Claims application, create a claims_cluster and a claims_coherence_cluster. Associate the claims_cluster with the claims_coherence_cluster while configuring the Weblogic Administration Domain. Enable the local storage.

Linking JVMs to Coherence Clusters

To control which JVMs can join a Coherence cluster, the following options are available:

  • Use multicast addressing and have every member that needs to join the cluster define the cluster name

  • Use the Coherence Well Known Addresses (WKA) feature

Use either of these options to:

  • Control multiple Coherence clusters that are spread across multiple machines.

  • Control multiple Coherence clusters that are executed on a single machine.

For example, assuming use of WKA to control which members are allowed to join a Coherence cluster and a WebLogic cluster named claims_cluster that consists of the following server members:

  • One administration server

  • Two managed servers, named claims_node1 and claims_node2.

The claims_cluster is associated with an existing claims_coherence_cluster.

  1. Two Well Known Addresses are defined for claims_coherence_cluster:

    Table 1. Known Addresses
    Name Listen Address Listen Port

    wka1

    Name of the host machine that runs the managed server

    A unique listen port, for example, 27111

    wka2

    Name of the host machine that runs the managed server

    A unique listen port, for example, 27112

  2. For each Managed Server, change the settings as follows:

    Table 2. Change in Settings
    Settings for …​ Unicast Listen Address Unicast Listen Port

    claims_node1

    Name of the host machine that runs the managed server

    wka1

    claims_node2

    Name of the host machine that runs the managed server

    wka2

For additional information refer to the Fusion Middleware documentation on Administering Clusters for the Oracle WebLogic Server.

Running Coherence in a Production Environment

Oracle Coherence runs in development mode by default. The Production Checklist in the Coherence Documentation recommends to use the development mode for all pre-production activities, such as development and testing. This is an important safety feature, as Coherence automatically prevents these nodes from joining a production cluster. The production mode has to be explicitly enabled.

In the Production environment, set the system property tangosol.coherence.mode has to the value prod in the script that is used to start the Coherence nodes:

-Dtangosol.coherence.mode=prod

Setting Environment Variables

Although environment variables for Oracle Health Insurance Claims are set in the startWebLogic.sh script, the recommended approach is to create a separate shell script named setClaimsEnv.sh in a chosen directory, referred to as <SET_ENV_VAR_DIR>. Ensure this is a shared directory for all the managed servers in the cluster.

The following is a sample setClaimsEnv.sh script, formatted for readability:

# Memory Args
MEM_ARGS="-Xmx4096m"
MEM_ARGS="${MEM_ARGS} -XX:+UseG1GC"
export MEM_ARGS

# Java Options
JAVA_OPTIONS="${JAVA_OPTIONS} -Dohi.properties.url=file:/config/ohi-claims.properties"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dlogback.configurationFile=/config/logback_claims.xml"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.auth.login.config=/config/ohi-security.config"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dtangosol.coherence.mode=prod"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.org.apache.xml.internal.dtm.DTMManager=
  com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.xml.datatype.DatatypeFactory=
  com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.xml.stream.XMLInputFactory=
  com.sun.xml.internal.stream.XMLInputFactoryImpl"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.xml.stream.XMLOutputFactory=
  com.sun.xml.internal.stream.XMLOutputFactoryImpl"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.xml.stream.XMLEventFactory=
  com.sun.xml.internal.stream.events.XMLEventFactoryImpl"
export JAVA_OPTIONS

# To make Jersey filters that set certain CORS related HTTP Headers work
JAVA_OPTIONS="${JAVA_OPTIONS} -Dsun.net.http.allowRestrictedHeaders=true"

# Optional settings for JMX management
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.management.builder.initial=
weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder"
export JAVA_OPTIONS

# Optional settings to enable monitoring Coherence through JMX
JAVA_OPTIONS="${JAVA_OPTIONS} -Dtangosol.coherence.management=all"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dtangosol.coherence.management.remote=true"
export JAVA_OPTIONS

Use the tangosol.coherence.mode property for production environments only.

Go to the domain directory and edit bin/startWebLogic.sh script, and add the following line (highlighted below) at the beginning as shown in this sample:

# Call setDomainEnv here.

DOMAIN_HOME="/home/domains/ohi_domain"

. ${DOMAIN_HOME}/bin/setDomainEnv.sh noderby $*

if [ "${SERVER_NAME}" = "<ohi admin server name>" ] ; then
   MEM_ARGS="-Xmx1024m"
   export MEM_ARGS
else
   . <SET_ENV_VAR_DIR>/setClaimsEnv.sh ${SERVER_NAME}
fi

SAVE_JAVA_OPTIONS="${JAVA_OPTIONS}"

Disabling Basic Authentication on the Weblogic Server

The Oracle Health Insurance HTTP API use Basic Authentication as the default authentication mechanism.

The RESTful API requests that use HTTP BASIC authentication must pass the WebLogic Server authentication. Upon successful authentication, the WebLogic Server creates HTTP session objects in the JVM memory. The default session-timeout value in WebLogic Server is 3600 seconds, so the HTTP session objects are invalidated/GC’ed only after 3600 seconds.

Because Basic Authentication is handled by the Oracle Health Insurance applications, the Weblogic Server’s Basic Authentication mechanism has to be disabled. To do so, set the domain wide flag enforce-valid-basic-auth-credentials to false.

For additional information, refer to the WebLogic documentation as well as the Oracle support documents: 2178771.1 and 2235898.1.