Skip Headers
Oracle® Real-Time Decisions Installation and Administration Guide
Version 3.0.0.1

Part Number E13856-02
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

13 Deploying Oracle RTD into an Oracle RTD Cluster

Oracle RTD may be deployed into a cluster to achieve any of the following objectives:

You can deploy Oracle RTD to several application server types. This chapter describes in general how to deploy Oracle RTD into a clustered J2EE environment. It presents an outline of the concepts and processes for implementors who are familiar with deploying J2EE applications on application servers.

Note:

This chapter does not describe how to set up the HTTP server that will be the load balancing front-end to the cluster. The HTTP server provides the publicly accessible URLs to the Oracle RTD services, but there are no special considerations about the Oracle RTD installation in that regard.

For convenience, the following abbreviations are used in this chapter to describe the different Oracle RTD services:

This chapter contains the following topics:

13.1 Overview of Oracle RTD Clustering

Oracle RTD is deployed through a J2EE application archive file, RTD.ear, which contains multiple web applications corresponding to Decision Service (DS), Learning Service (LS), and Decision Center (DC). In a production environment, DS is typically deployed into separate cluster nodes (Oracle RTD instances) from DC and LS to prevent the activities of DC or LS from impacting the DS response times.

Two combinations of Oracle RTD services are common:

Two further cluster combinations are possible, but they are less commonly used:

From a clustering perspective, it is important to note that Oracle RTD is delivered as a single J2EE ear file. In some application server types, the granularity of deployment is the ear file, and not the contained Web Application Archives (war files). In these cases, all web applications within the enterprise application get deployed together. This chapter describes how to work around this packaging issue in order to deploy individual services of Oracle RTD into separate cluster nodes.

This chapter also describes several configuration parameters that are required when deploying Oracle RTD into a cluster. These parameters can be ignored in non-clustered environments.

Certain cluster-specific behaviors are also described, such as the role of the Oracle RTD cluster coordinator in managing cluster singletons. The cluster coordinator, for example, ensures that Learning Service runs on precisely one Oracle RTD instance at a time, restarting it on another instance should the first one fail.

13.2 Terminology

The section describes both general terms and terms that have a particular meaning and usage for Oracle RTD clustering.

13.2.1 Distinguishing Oracle RTD Clusters from J2EE Clusters

The term "cluster" needs some clarification, because Oracle RTD and each application server system, Oracle AS, WebSphere, and WebLogic, all define and use the same term in different ways.

This section defines the terms Oracle RTD cluster and J2EE cluster, and compares these definitions to the other application-server specific definitions.

  • Oracle RTD Cluster

    From the perspective of Oracle RTD, a cluster is the entire set of Oracle RTD instances running any combination of Oracle RTD services, DS, DC, or LS.

    The Oracle RTD instances of an Oracle RTD cluster all share the same SDDS database, and all have the same SDGroupName setting. These two properties are really what determines which Oracle RTD instances are in an Oracle RTD cluster.

    A Type 1 cluster is an Oracle RTD cluster where DS, DC, and LS all are enabled in every Oracle RTD instance.

    A Type 3 cluster, the main focus of this chapter, is an Oracle RTD cluster where DS runs in separate Oracle RTD instances from the instances running DC and LS.

  • OAS Cluster

    To Oracle Application Server, a cluster is the set of OAS instances managed by the same Enterprise Manager application, ascontrol. J2EE applications are not necessarily deployed uniformly to all the OAS instances of an OAS cluster.

  • OC4J Group

    In OAS, the OAS instances used by Oracle RTD run OC4J (Oracle J2EE Container For Java), and are known as OC4J instances.

    OAS uses the term "OC4J group" for a collection of OC4J instances into which applications are deployed uniformly. For example, deploying Oracle RTD into an OC4J group automatically deploys it into all the OC4J instances of the OC4J group.

    Deploying an Oracle RTD Type 3 cluster into OAS involves a single OAS cluster and two OC4J groups, because Oracle RTD will be deployed twice, once into each OC4J group.

  • WebSphere Cluster

    In WebSphere, a cluster is similar to an OC4J group, in that an application is deployed uniformly to all instances of the cluster.

    Deploying an Oracle RTD Type 3 cluster into WebSphere involves two WebSphere clusters, because Oracle RTD will be deployed twice, once into each WebSphere cluster.

  • WebLogic Cluster

    A WebLogic cluster is similar to a WebSphere cluster, in that an application is deployed uniformly to all instances of the cluster.

    Deploying an Oracle RTD Type 3 cluster into WebLogic involves two WebLogic clusters, because Oracle RTD will be deployed twice, once into each WebLogic cluster.

  • J2EE Cluster

    For consistency and ease of discussion, a new term, "J2EE cluster", is used in this chapter, which means any one of the following: "WebSphere cluster", "WebLogic cluster", or "OC4J Group". An application deployed to a J2EE cluster is deployed uniformly to all instances of the cluster.

    Note that the main two terms used in this chapter are "Oracle RTD cluster" and "J2EE cluster."

    An Oracle RTD Type 3 cluster contains two J2EE clusters.

    Oracle RTD is deployed differently into each of the two J2EE clusters in order to activate different Oracle RTD services within the two J2EE clusters.

    This compares to an Oracle RTD Type 1 cluster, which contains just one J2EE cluster, because Oracle RTD is deployed uniformly across all Oracle RTD instances.

13.3 Cluster-Specific Configuration Properties

This section describes the system properties and Oracle RTD configuration settings that are typically necessary in a clustered deployment. Instructions for setting them appear in subsequent sections.

Table 13-1 Locations of Oracle RTD System Files

rtd.instancesShareRuntimeHome Value=False Value=True

Location of log file server.log

RTD_RUNTIME_HOME/log/

RTD_RUNTIME_HOME/log/RTD_INST_NAME

Location of config cache files: sdconfig-machine.xml , sdconfig-cluster.xml

RTD_RUNTIME_HOME/etc/

RTD_RUNTIME_HOME/etc/RTD_INST_NAME

Location of Inline Service metadata cache files

RTD_RUNTIME_HOME/apps/

RTD_RUNTIME_HOME/apps/RTD_INST_NAME


13.4 Creating Server Instances for Oracle RTD Type 3 Clusters

The main objective of an Oracle RTD Type 3 cluster is to have Decision Service running in separate Oracle RTD instances from the instances running Decision Center and Learning Service. This section describes how to set up the application server instances (which will become Oracle RTD instances after deployment) in an Oracle RTD Type 3 cluster, prior to deploying Oracle RTD.

This section contains the following topics:

13.4.1 Creating J2EE Clusters

For an Oracle RTD Type 3 cluster, create two J2EE clusters, for example, rtdGroup1 and rtdGroup2.

For an Oracle RTD Type 1 cluster, create one J2EE cluster only.

Note:

IrtdGroup1 and rtdGroup2 are J2EE clusters, not Oracle RTD clusters.

Create and assign AS instances to the J2EE clusters. In this example, create a total of 4 AS instances, in 4 host machines, as in Table 13-2 and Table 13-3:

Table 13-2 J2EE Cluster rtdGroup1

AS Instance Machine

rtd_1_1

host1

rtd_1_2

host2


Table 13-3 J2EE Cluster rtdGroup2

AS Instance Machine

rtd_2_1

host3

rtd_2_2

host3


Note:

There are no assumptions in this chapter about the number of machines involved.

Typically separate hosts are used to improve availability in the face of hardware failures, as well as to increase the total processing power.

Multiple instances on the same host can be used to work around the memory limitations of a 32-bit operating system on machines with greater than 2GB of memory.

13.4.2 Setting JVM Options

This section describes the JVM options that may be used for each Oracle RTD instance.

This section contains the following topics:

13.4.2.1 Oracle RTD Clustering System Properties

In general, system properties can be used for any Oracle RTD properties supported by the OracleRTD JMX MBeans, as long as they do not need to be subsequently changed by JMX. These system properties are usually used only for settings that either do not need to be changed via JMX, or that need to be set before JMX will work. For more information, see Section 13.3, "Cluster-Specific Configuration Properties."

Table 13-4 shows the Oracle RTD settings that are usually configured through system properties. In this table, the Scope values are defined as follows:

  • RTD: Global to the entire Oracle RTD cluster

  • J2EE: Global to the J2EE cluster

  • AS: Specific to the AS instance

Table 13-4 Oracle RTD Settings Usually Configured Through System Properties

Name Example Value Scope Description

SDGroupName

MyRTDCluster

RTD

N/A

rtd.instanceName

rtd_1_1

AS

Must be unique within the Oracle RTD cluster.

rtd. instancesShareRuntimeHome

false

RTD

false for OAS and WebLogic; true for WebSphere.

DecisionServiceEnabled

true

J2EE

Assuming an Oracle RTD Type 3 cluster: true, for rtdGroup1; false for rtdGroup2.

As an alternative to setting this in system properties, it can be set via JConsole, as described in Section 13.5.3, "Disabling Certain Oracle RTD Services." It probably makes sense to set them as system properties, if adding an Oracle RTD instance requires copying the system properties setup anyway.

LearningServiceEnabled

false

J2EE

Assuming an Oracle RTD Type 3 cluster: false, for rtdGroup1; true for rtdGroup2.

As an alternative to setting this in system properties, it can be set via JConsole, as described in Section 13.5.3, "Disabling Certain Oracle RTD Services." It probably makes sense to set them as system properties, if adding an Oracle RTD instance requires copying the system properties setup anyway

JGroupsMulticastAddress, JGroupsMulticastPort, JGroupsDSMulticastAddress, JGroupsDSMulticastPort

N/A

RTD

These do not usually need to be changed from their default values. If needed, it is better to set them as JVM system properties rather than through JConsole, because they are needed by JConsole.

RestrictClusterMembers

false

RTD

Set this to false to facilitate adding servers to the Oracle RTD cluster. If true (its default value), see Section 13.5.5, "Adding Restricted Cluster Members."

TrustedClusterMembers

N/A

RTD

When RestrictClusterMembers is true (its default value), the set of allowed cluster hosts can be set here as a system property. However, it is easier to add new hosts if TrustedClusterMembers is managed through JMX instead of as a system property. See Section 13.5.5, "Adding Restricted Cluster Members."

RestrictDSClients

false

RTD

Set this to false if there is no concern about which hosts can send Decision Service Requests. If set to true (its default value), then DS will reject requests from hosts not in TrustedDSClients and not part of the Oracle RTD cluster.

TrustedDSClients

N/A

RTD

When RestrictDSClients is true (its default value), the set of hosts allowed to send Decision Service requests can be set here as a system property. However, it is easier to add new client hosts if TrustedDSClients is managed through JMX instead of as a system property. See Section 13.5.6, "Adding Trusted Decision Service Clients."


13.4.2.2 Generic JVM Options

This section describes generic JVM options and suggested values for the options.

  • Set the option -Djava.net.preferIPv4Stack=true

  • Minimum Heap Size

    Set this to -Xms512M.

    On development machines, this can be lower (for example, 128M) to reduce the required memory.

  • Maximum Heap Size

    Set this to -Xmx1024M.

    On production machines, 2048M is a common value.

  • PermGen Size (not for JRockit JVM)

    Set this to -XX:PermSize=256m.

    This is to reduce out-of-memory errors when redeploying Inline Services, because redeploying Inline Services temporarily introduces more java classes.

  • JIT (for Sun JVM)

    Set this to -server.

13.4.2.3 Application Server Specific JVM Options

This section contains application server specific JVM options.

13.4.2.3.1 Oracle AS JVM Options
13.4.2.3.2 WebLogic JVM Options
  • JConsole Setup

    See Section 13.4.3.1, "JConsole on Oracle AS and WebLogic."

  • EMF Registry

    Set this system property to specify the EMF (Eclipse Metadata Framework) registry implementation used by Oracle RTD.

    Property Name: 'org.eclipse.emf.ecore.EPackage.Registry.INSTANCE'

    Property Value: 'com.sigmadynamics.emf.util.SDEMFRegistry'

13.4.2.3.3 WebSphere JVM Options
  • EMF Registry

    Set this system property to specify the EMF (Eclipse Metadata Framework) registry implementation used by Oracle RTD.

    Property Name: 'org.eclipse.emf.ecore.EPackage.Registry.INSTANCE'

    Property Value: 'com.sigmadynamics.emf.util.SDEMFRegistry'

  • Disable MBean Routing

    Property Name: 'com.ibm.websphere.mbeans.disableRouting'

    Property Value: '<on>OracleRTD:*</on>'

13.4.3 Setting Up JConsole Access

If JConsole is to be used as the JMX console, as opposed to some other MBean browser, its configuration is application server dependent. The only consideration here that is specific to clustering, as opposed to the general information provided elsewhere in this guide, is the need to use a different jmx port setting for each AS instance.

13.4.3.1 JConsole on Oracle AS and WebLogic

Set the following JVM system properties, to ensure that the port is unique on the host:

  • -Dcom.sun.management.jmxremote.authenticate=false

  • -Dcom.sun.management.jmxremote.ssl=false

  • -Dcom.sun.management.jmxremote=true

  • -Dcom.sun.management.jmxremote.port=12345

13.4.3.2 JConsole on WebSphere

To set up JConsole for WebSphere, see Section 4.12, "Setting Up JConsole for WebSphere."

Create a jconsole-startup batch file for each Oracle RTD instance.

13.4.4 Setting Up JDBC Resources

Before deploying Oracle RTD, you must create a JDBC connection pool and data source for each AS instance. When Oracle RTD is deployed to these AS instances, it must be able to open JDBC connections to a common shared data source, accessed by the JNDI lookup name, jdbc/SDDS.

For detailed application server specific instructions about creating the JDBC resources, refer to Chapter 8, "Configuring Data Access for Oracle Real-Time Decisions."

For instructions about how to create JDBC resources to a database shared by all AS instances, refer to your application server documentation. Depending on the J2EE application server vendor, you typically can create the connection pool and data source just once, or perhaps once per J2EE cluster.

13.5 Deploying Oracle RTD into an Oracle RTD Type 3 Cluster

This section describes in general terms how to deploy Oracle RTD into a clustered environment where Decision Service runs in separate Oracle RTD instances from the instances running Decision Center and Learning Service. This is an Oracle RTD Type 3 cluster, and this is expected to be the most common configuration used in production.

Generalizing these instructions for other Oracle RTD cluster types is straightforward if the following rules are followed.

  1. Deploy RTD.ear into separate J2EE clusters for every combination of Oracle RTD services that need to be co-located in the same Oracle RTD instance. This is illustrated in the table below.

  2. In each deployment of RTD.ear, change the web context roots associated with the services that will not be used, effectively hiding them so the load balancer will not send requests to Oracle RTD instances for disabled services.

  3. Disable DS and LS, through JConsole, in the Oracle RTD instances where you do not want them to run, to avoid loading these services into memory.

    Note:

    Currently DC is unconditionally loaded into memory, but will not create any sessions because of step 2 above.

Expanding on steps 1 and 3, you will need from one to three J2EE clusters, as detailed in the following table:

Oracle RTD Cluster Type J2EE Clusters Required Oracle RTD Services Enabled Oracle RTD Services Disabled by JConsole
Type 1 rtdGroup1 DS, DC, LS none
Type 2 rtdGroup1 DS, DC LS
rtdGroup2 LS DS
Type 3 rtdGroup1 DS LS
rtdGroup2 DC, LS DS
Type 4 rtdGroup1 DS L:S
rtdGroup2 DC DS, LS
rtdGroup3 LS DS

Expanding on step 2, the following table shows the web context roots needed by the three Oracle RTD services when enabled:

Oracle RTD Service Context Roots
DS /rtis
DC /ui
/soap
/schema
LS /ls

The disabled services should be "hidden" by appending a string such as "-hide<n>" to their context roots, where <n> should be 1, 2, or 3, corresponding to the J2EE cluster number.

The use of <n> is to ensure that you do not use the same context root twice. It is really only useful in a Type 4 cluster, as this is the only Oracle RTD cluster type where you would be disabling the same Oracle RTD service type in more than one J2EE cluster.

Specifically for an Oracle RTD Type 3 cluster, deploy RTD.ear twice, as follows:

The rest of this section contains the following topics:

13.5.1 Deploying RTD.ear Into rtdGroup1 as OracleRTD

Some application server types, like Oracle AS, enable you to save a deployment plan file that remembers deployment-time choices, so that you do not have to manually specify them again in subsequent deployments.

When you deploy for the first time:

  • Use OracleRTD as the application name.

  • Adjust the proposed web context-roots by appending "-hide" to each of them except /rtis.

    For example: /ui-hide, /ls-hide, /soap-hide, /schema-hide, /rtis.

  • Save the new deployment plan on the local machine to use in subsequent deployments, if your application server supports saving deployment plans.

Tip:

Use a mnemonic name for the deployment plan file. For example, when the deployment enables only the Decision Service, call the deployment plan file dsPlan.dat.

13.5.2 Deploying RTD.ear Into rtdGroup2 as OracleRTD2

The considerations and steps for the deployment into rtdGroup2 are the same as for deployment into rtdGroup1, except for the following:

  • The web-app context bindings will be different

  • The application name will be different (OracleRTD2 instead of OracleRTD)

When you deploy for the first time:

  • Use OracleRTD2 as the application name.

  • Adjust the proposed web context-roots by appending "-hide" to /rtis.

    For example: /ui, /ls, /soap, /schema, /rtis-hide.

  • For Oracle AS, change the library path settings to refer to the new application name: ${oracle.j2ee.home}/OracleRTD2 instead of ${oracle.j2ee.home}/OracleRTD. For details, see Section 13.5.2.1, "Configuring Classpath for OracleRTD2 in Oracle AS."

  • Save the new deployment plan on the local machine to use in subsequent deployments, if your application server supports saving deployment plans.

    If you follow the mnemonic-name convention for the deployment file name, you could use dcLsPlan.dat for the file name, as this deployment enables Decision Center and Learning Service.

13.5.2.1 Configuring Classpath for OracleRTD2 in Oracle AS

For Oracle AS 3.3, the last screen of the deployment process in Enterprise Manager allows you to adjust the class path used by various libraries. You must adjust the classpath because, as packaged in RTD.ear, the path assumes the application is named OracleRTD, but in this deployment it is OracleRTD2.

Click the Configure Class Loading activity.

Then scroll down to the Configure Application Libraries section, and replace the three occurrences of OracleRTD with OracleRTD2.

13.5.3 Disabling Certain Oracle RTD Services

After Oracle RTD has been started in all AS instances, use JConsole or another MBean browser to disable Decision Service or Learning Service in certain Oracle RTD instances according to the cluster type.

Note:

This is not necessary, and in fact cannot be done, if the services were enabled or disabled via system properties, as described in Section 13.4.2, "Setting JVM Options."

This only needs to be done the first time, or if you are changing cluster types. It is not necessary if you are redeploying Oracle RTD into the same cluster type, because these settings are saved in the SDDS database shared by all the instances.

For each instance in the Oracle RTD cluster, perform the following steps:

  1. Start JConsole and connect to the instance.

  2. Disable LS.

    If the instance is in the J2EE cluster rtdGroup1, disable Learning Service, because these instances run just Decision Service.

    Set the LearningServiceEnabled attribute to false in the MBean, OracleRTD > SDPropertyManager > Misc.

  3. Disable DS.

    If the instance is in the J2EE cluster rtdGroup2, disable Decision Service, because these instances run just Learning Service and Decision Center.

    Set the DecisionServiceEnabled attribute to false in the MBean, OracleRTD > SDPropertyManager > Misc.

13.5.4 Setting Decision Service Address

For Oracle RTD Type 3 and Type 4 clusters, where DC and DS are not co-located, use JConsole to set the cluster's Decision Service address, so that DC can send test events to DS from its Interactive Integration Map view.

This can be done once in any instance. The change will be propagated automatically to all instances.

Set the DecisionServiceAddress attribute to a value like http://myHost.com:8080 in the MBean, OracleRTD > SDClusterPropertyManager > Misc.

Generally, the host and port will be that of the HTTP server serving as the load-balancer for the RTD.ear deployment where DS is enabled. For the Type 3 cluster described in this chapter, this is the HTTP server/port hosting the web app for OracleRTD, not the one for OracleRTD2 - usually these would be same.

13.5.5 Adding Restricted Cluster Members

When the set of Oracle RTD cluster members is restricted to a specified list of hosts - a security precaution enabled via the system property RestrictClusterMembers - then additional hosts are more easily added through the use of JConsole, rather than through the system property TrustedClusterMembers, as described in Section 13.4.2.1, "Oracle RTD Clustering System Properties."

If TrustedClusterMembers is managed as a system property, then all Oracle RTD instances must be restarted, after manually adjusting this system property value for all Oracle RTD instances to include the new host.

When managing TrustedClusterMembers with JConsole, then no instances have to be restarted, except possibly the new instance if it was already running when its address was added to TrustedClusterMembers.

Oracle recommends the following sequence:

  1. Determine the host IP address of the new Oracle RTD Cluster member. Host names are not sufficient, you need the IP address.

  2. Through a JConsole connection to any existing Oracle RTD instance, add the new host address to the propertyTrustedClusterMembers in the MBean, OracleRTD > SDClusterPropertyManager > Cluster. This change should be propagated to all existing instances, and should be effective immediately.

  3. Add the new AS instance to the J2EE cluster, and deploy Oracle RTD to the J2EE cluster.

13.5.6 Adding Trusted Decision Service Clients

When the set of Decision Service client hosts is restricted to a specified list of hosts - a security precaution enabled via the system property RestrictDSClients - then additional client hosts are more easily added through the use of JConsole, rather than through the system property TrustedDSClients, described in Section 13.4.2.1, "Oracle RTD Clustering System Properties."

If TrustedDSClients is managed as a system property, then all Oracle RTD instances must be restarted, after manually adjusting this system property value for all Oracle RTD instances to include the new client host. When managing TrustedDSClients with JConsole, then no instances have to be restarted.

Oracle recommends the following sequence:

  1. Determine the host IP address of the new Decision Service client. Host names are not sufficient, you need the IP address.

  2. Through a JConsole connection to any existing Oracle RTD instance, add the new host address to the property TrustedDSClients in the MBean, OracleRTD > SDClusterPropertyManager > Cluster. This change should be propagated to all existing instances, and should be effectively immediately.

13.6 Optional Session Affinity Cookie

Cookie name: ORA_RTD_DSServerID

Path: /rtis

Description: The contents of the cookie are a single integer identifying the RTD server instance that is hosting the request's Inline Service session.

This HTTP cookie is disabled be default, but can be enabled by setting the following MBean attribute to true:

Its use has not been thoroughly tested, but it is believed that in some clustered installations it could reduce the number of times that requests need to be forwarded from one Decision Service instance to another, possibly improving performance. This cookie is not used for Decision Center, only for Decision Service, the service that handles Inline Service requests.

It is only needed in installations that could be using multiple HTTP sessions to deliver Inline Service requests to the same Inline Service session.

Because most external load balancers are routinely configured to support HTTP session affinity, and Inline Service session affinity is needed that spans multiple HTTP sessions, this cookie would be set in each of the HTTP sessions so that requests from the multiple HTTP sessions would be sent by the load balancer to the same Decision Service instance.

The usefulness of this cookie depends on each HTTP session being used to access just one Inline Service session.

Another assumption is that the load balancer's session affinity algorithm can be configured to use this cookie, instead of JSESSIONID as most are routinely configured to do.

13.7 Setting up a WebLogic Cluster

This section consists of the following topics:

13.7.1 Cluster Machine Setup

This section describes the overall hardware and software setup of the WebLogic cluster, to be used as the reference configuration for all the subsequent WebLogic related subsections.

Cluster Example: 2 Machines, 6 AppServers

Machine #1: <-- Admin Server, 3 Server Instances, Apache Server

  • Oracle RTD Software

  • WebLogic Application Server

  • Apache HTTP Server

Machine #2: <-- 3 Server Instances

  • WebLogic Application Server

13.7.2 Installing Oracle RTD Software

You must install the Oracle RTD software on machine #1, as follows:

  1. Install rtd_3.0.0_WL_win.zip (or rtd_3.0.0_WL_unix.cpio if on Linux/Unix) on machine #1 (with WebLogic Admin Server).

13.7.3 Initializing Oracle RTD Database

You must initialize the Oracle RTD database on machine #1, as follows:

  1. On machine #1, run RTD_HOME\scripts\SDDBTool.cmd.

    For more information, see Section 2.2.4, "Initializing the Oracle RTD Database Using SDDBTool."

13.7.4 Installing WebLogic \Apache Server

The first step is to install the WebLogic Application Server on both machines. Then you must install the Apache HTTP Server on machine #1.

13.7.4.1 Installing WebLogic Application Server

On machine #1 and machine #2 in the cluster, install WebLogic Application Server.

Note:

The following is to ensure the WebLogic Plug-in is also installed.

Perform the following steps on both machines:

  1. In Choose Install Type, select Custom, then click Next.

  2. In Choose Components, check the WebLogic Server: Server & Web Server Plug-Ins checkboxes, and uncheck all the others.

    Click Next.

  3. In Optional Tools, uncheck Mercury profiling tools, then click Next.

  4. In Choose Product Installation Directories, accept the defaults, then click Next.

  5. In Install Windows Service, accept the defaults, then click Next.

  6. In Choose Shortcut Installation, accept the defaults, then click Next.

  7. Wait until the installation finishes.

  8. When the installation is complete, click Done.

13.7.4.2 Installing Apache HTTP Server

Perform the following step:

  1. On machine #1 in the cluster, install Apache HTTP Server 2.2.6.

13.7.5 Setting Up WebLogic Domain and Node Managers

The first steps are to create the WebLogic domain and to copy the OracleRTD JDBC jar to the domain. Then you must start the Node Managers on both machines.

13.7.5.1 Creating WebLogic Domain

To create the WebLogic domain, perform the following steps:

  1. On machine #1 (your Admin Server machine), click Start > All Programs > Oracle WebLogic > WebLogic Server 11gR1> Tools, run Configuration Wizard.

  2. In the Welcome dialog, select the Create a new WebLogic Domain radio button.

  3. Click Next.

  4. In the Domain Source dialog, select Generate a domain configured automatically to support the following products radio button.

  5. Click Next.

  6. In the Configure Administration Username and Password dialog, enter admin username/password, for example weblogic/weblogic.

  7. Click Next.

  8. In the Configure Server Start Mode and JDK dialog, under WebLogic Domain Startup Mode, select the Development Mode radio button

  9. In the Configure Server Start Mode and JDK dialog, under JDK Selection, select a JDK that is supported for your system configuration, for example, Sun, JRockit.

  10. Click Next.

  11. In the Customize Environment and Services Settings dialog, select No.

    Note: this will Create Clusters and Servers using Admin Console.

  12. Click Next.

  13. In the Create WebLogic Domain dialog, for Domain Name, enter oraclertd_domain and click Create.

  14. Wait until the installation finishes.

  15. Check the Start Admin Server checkbox.

  16. Click Done.

Note:

To manually start Admin Server, run weblogic-install-dir/user_projects /domains/oraclertd_domain/bin/startWebLogic.cmd.

To manually stop Admin Server, run weblogic-install-dir/user_projects /domains/oraclertd_domain/bin/stopWebLogic.cmd

13.7.5.2 Copying OracleRTD JDBC Jar to Domain

To copy the OracleRTD JDBC jar to the domain, perform the following steps:

  1. On machine #1 (your Admin Server machine) in RTD_HOME\lib\jdbc\, copy one of the following jar sets to weblogic-install-dir/user_projects/domains/oraclertd_domain/lib/:

    • SQLServer: sqljdbc.jar

    • Oracle: ojdbc14.jar

    • DB2: db2jcc.jar & db2jcc_license_cu.jar

    Note:

    This step removes the need to copy jdbc jars to each server instance machine.

13.7.5.3 Starting All Machine Node Managers

To start the machine Node Managers, perform the following steps:

  1. Go to machine #1.

  2. Start Node Manager by running: weblogic-install-dir\wlserver_10.3\server\bin\startNodeManager.cmd.

    Example: c:\Oracle\Middleware\wlserver_10.3\server\bin\startNodeManager.cmd

  3. Repeat steps 1-2 for machine #2 in the cluster.

13.7.6 Creating Oracle RTD Roles and Users

Before proceeding, create Oracle RTD roles and users in WebLogic. See Section 5.8, "Creating Oracle RTD Roles and Users" for more information.

13.7.7 Creating Machines, Clusters, and Servers

This process consists of creating the WebLogic machines and the WebLogic cluster, then creating the servers and setting the server JVM properties.

13.7.7.1 Creating WebLogic Machines

To create the WebLogic machines, perform the following steps:

  1. Logon to the Admin Console (machine #1):

    http://admin-server-host-name:7001/console

  2. In the tree to the left under Change Center, click Lock & Edit.

  3. In the tree to the left under Domain Structure, expand Environment and click Machines.

  4. Click New.

  5. For Name, enter a unique machine name, for example, Machine-1.

  6. Click OK.

  7. Click the machine name.

  8. Under the Configuration tab, click Node Manager.

  9. For Listen Address, enter the host name of a clustered server, for example, myHostName.

  10. Click Save.

  11. Repeat steps 3-10 for each machine in the cluster including the Admin Server machine.

  12. In the tree to the left under Change Center, click Activate Changes.

13.7.7.2 Creating WebLogic Cluster

The following describes the cluster setup on the two machines:

  • RTDCluster

    (Machine #1 and Node #1)

    • RTDServer1a

    • RTDServer1b

    • RTDServer1c

    (Machine #2 and Node #2)

    • RTDServer2a

    • RTDServer2b

    • RTDServer2c

To create the WebLogic cluster, perform the following steps:

  1. In the tree to the left under Change Center, click Lock & Edit.

  2. In the tree to the left under Domain Structure, expand Environment and click Clusters.

  3. Click New.

  4. For Name, enter RTDCluster.

  5. Click OK.

  6. In the tree to the left under Change Center, click Activate Changes.

13.7.7.3 Creating Servers

To create the servers, perform the following steps:

  1. In the tree to the left under Change Center, click Lock & Edit.

  2. In the tree to the left under Domain Structure, expand Environment and click Servers.

  3. Click New

  4. For Server Name, enter RTDServer1a.

  5. For Server Listen Port, enter 7002.

  6. Under Should this server belong to a cluster?, select Yes, make this server a member of an existing cluster.

  7. For Select a cluster, select RTDCluster.

  8. Click Next.

  9. Click Finish.

  10. Click the server name RTDServer1a.

  11. Under Configuration tab General section, for Machine, select Machine-1.

  12. Click Save.

  13. Repeat steps 2-12 for the following remaining server/port/machine configurations:

    • server = RTDServer1b, port = 7003, machine = Machine-1

    • server = RTDServer1c, port = 7004, machine = Machine-1

    • server = RTDServer2a, port = 7005, machine = Machine-2

    • server = RTDServer2b, port = 7006, machine = Machine-2

    • server = RTDServer2c, port = 7007, machine = Machine-2

  14. In the tree to the left under Change Center, click Activate Changes.

13.7.7.4 Setting Server JVM Properties

To set the server JVM properties, perform the following steps:

  1. In the tree to the left under Change Center, click Lock & Edit.

  2. In the tree to the left under Domain Structure, expand Environment and click Servers.

  3. Click the server name RTDServer1a.

  4. Under the Configuration tab, Server Start section, for Arguments, enter the following as a single line with spaces between properties (replacing jmx-remote-port with 12302, and replacing learning with true for RTDServer1a and false for all other servers):

    • -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=com.sigmadynamics.emf.util.SDEMFRegistry

      -DRestrictClusterMembers=false

      -DSDGroupName=RTDCluster

      -DLearningServiceEnabled=learning

      -Dcom.sun.management.jmxremote=true

      -Dcom.sun.management.jmxremote.port=jmx-remote-port

      -Dcom.sun.management.jmxremote.authenticate=false

      -Dcom.sun.management.jmxremote.ssl=false

      -Djava.net.preferIPv4Stack=true

    Example:

    • -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=com.sigmadynamics.emf.util.SDEMFRegistry -DSDGroupName=RTDCluster -DRestrictClusterMembers=false -DLearningServiceEnabled=true -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12302 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true

  5. Click Save.

  6. Repeat steps 2-5 for the following remaining server/jmx-remote-port configurations:

    • server = RTDServer1b, jmx-remote-port = 12303

    • server = RTDServer1c, jmx-remote-port = 12304

    • server = RTDServer2a, jmx-remote-port = 12305

    • server = RTDServer2b, jmx-remote-port = 12306

    • server = RTDServer2c, jmx-remote-port = 12307

  7. In the tree to the left under Change Center, click Activate Changes.

13.7.8 Creating JDBC Data Sources

Notes:

  1. For general information about configuring WebLogic JDBC data sources, see Oracle Fusion Middleware Configuring and Managing JDBC for Oracle WebLogic Server.
  2. If your WebLogic version is 11g 10.3.3+ and your Oracle RTD database is in an Oracle database server, see Section 13.7.8.1, "Creating an Oracle JDBC Provider for the Oracle RTD Database on WebLogic 11g 10.3.3+."

To create the JDBC data sources, perform the following steps:

  1. In the tree to the left under Change Center, click Lock & Edit.

  2. Navigate the path Services -> Data Sources -> New -> Generic Data Source.

  3. Click New.

  4. For Name, enter RTD_DS.

  5. For JNDI Name, enter SDDS.

  6. For Database Type, select Other.

  7. For Database Driver, select Other.

  8. Click Next.

  9. Uncheck the Supports Global Transactions checkbox.

  10. Click Next.

    Perform the next set of steps that is appropriate to the database that holds your data source:

    If your database is Oracle, continue at step 11.

    If your database is SQLServer, continue at step 23.

    If your database is DB2, continue at step 35.

    Oracle

  11. For Database Name, enter your Oracle SID name, for example, ORCL.

  12. For Host Name, enter your database server name, for example, mydbservername.

  13. For Port, enter your database port number, for example, 1521.

  14. For Database User Name, enter your Oracle user name, for example, myusername.

  15. For Password and Confirm Password, enter your Oracle user password, for example, SD.

  16. Click Next.

  17. For Driver Class Name, enter oracle.jdbc.pool.OracleDataSource.

  18. For URL, enter jdbc:oracle:thin:@db_host:db_port:sid.

    For example, jdbc:oracle:thin:@mydbservername:1521:ORCL

  19. For Properties, enter user=db_user_name, for example, user=myusername.

  20. For Test Table Name, enter SDApps.

  21. Click Test Configuration.

  22. Click Next.

    Continue at step 47.

    SQLServer

  23. For Database Name, enter your SQLServer database name, for example, rtd.

  24. For Host Name, enter your database server name, for example, mydbservername.

  25. For Port, enter your database port number, for example, 1433.

  26. For Database User Name, enter your SQLServer user name, for example, myusername.

  27. For Password and Confirm Password, enter your SQLServer user password, for example, sd.

  28. Click Next.

  29. For Driver Class Name, enter com.microsoft.sqlserver.jdbc.SQLServerDriver

  30. For URL, enter jdbc:sqlserver://db_host:db_port

    For example, jdbc:sqlserver://mydbservername:1433

    Note:

    If the data source is on a SQL Server named instance, specify the db_host parameter using the format host_name\instance_name.
  31. For Properties, enter each property on a new line:

    • user=db_user_name, for example, user=myusername

    • DatabaseName=db_name, for example, DatabaseName=rtd

  32. For Test Table Name, enter SDApps.

  33. Click Test Configuration.

  34. Click Next.

    Continue at step 47.

    DB2

  35. For Database Name, enter your DB2 database name, for example, rtd.

  36. For Host Name, enter your database server name, for example, mydbservername.

  37. For Port, enter your database port number, for example, 50000.

  38. For Database User Name, enter your DB2 user name, for example, myusername.

  39. For Password and Confirm Password, enter your DB2 user password, for example, SD.

  40. Click Next.

  41. For Driver Class Name, enter com.ibm.db2.jcc.DB2Driver.

  42. For URL, enter jdbc:db2://db_host:db_port/db_name

    For example, jdbc:db2://mydbservername:50000/rtd

  43. For Properties, enter user=db_user_name, for example, user=myusername.

  44. For Test Table Name, enter SDApps.

  45. Click Test Configuration.

  46. Click Next.

    Continue at step 47.

  47. Under Clusters, check the RTDCluster checkbox.

  48. Click Finish.

  49. In the tree to the left under Change Center, click Activate Changes.

13.7.8.1 Creating an Oracle JDBC Provider for the Oracle RTD Database on WebLogic 11g 10.3.3+

To create a JDBC provider when your Oracle RTD database is in an Oracle database server, and Oracle RTD is deployed on WebLogic 11g 10.3.3+, perform the following steps:

  1. Log into the WebLogic Server Administration Console with the administrator user name and password.

  2. Navigate the path Services -> Data Sources -> New -> Generic Data Source.

  3. On the JDBC Data Source Properties page, follow these steps:

    1. For Name, enter a descriptive data source name, such as RTD_DS.

    2. For JNDI Name, enter SDDS.

    3. For Database Type, select Oracle.

    4. For the Database Driver, select Oracle's Driver (Thin) for Instance connections; Versions: 9.0.1 and later, then click Next.

  4. On the Transaction Options page, deselect Supports Global Transactions, then click Next.

  5. On the Connection Properties page, follow these steps:

    1. For Database Name, enter the name of the Oracle RTD Database you created in Section 2.2.

    2. For Host Name, enter the name of the computer hosting the database server.

    3. For Port, enter the port number on the database server used to connect to the database.

    4. For Database User Name, enter the name of the database run-time user.

    5. For Password, enter the password of the database run-time user, then click Next.

  6. On the Test Database Connection page, leave all the settings already filled, except enter SDAPPS for Test Table Name.

  7. Click Test Configuration. If the test fails, go back and check your settings. If the test succeeds, click Next.

  8. Select the cluster where you want the data source to be made available (for example, RTD_Cluster). You must perform this step before completing the data source configuration.

  9. Click Finish, then click Activate Changes.

13.7.9 Setting Up the Web Server

This process consists of enabling the WebLogic proxy plug-in in the servers, then setting up the Apache HTTP server.

13.7.9.1 Enabling WebLogic Proxy Plug-In in Servers

To enable the WebLogic proxy plug-in in the servers, perform the following steps:

  1. In the tree to the left under Change Center, click Lock & Edit.

  2. In the tree to the left under Domain Structure, expand Environment and click Servers.

  3. Click the server name RTDServer1a.

  4. Under Configuration tab General section, click Advanced.

  5. Under Advanced, check WebLogic Plug-In Enabled checkbox.

  6. Click Save.

  7. Repeat steps 2-6 for each of the following remaining servers:

    • RTDServer1b

    • RTDServer1c

    • RTDServer2a

    • RTDServer2b

    • RTDServer2c

  8. In the tree to the left under Change Center, click Activate Changes.

13.7.9.2 Setting Up Apache HTTP Server

To set up the Apache HTTP server, perform the following steps:

  1. On machine #1, copy

    • weblogic-install-dir\wlserver_10.3\server\plugin \win\32\mod_wl_22.so

    to

    • apache-install-dir\modules\

    For example:

    C:\Program Files\Apache Software Foundation \Apache2.2\modules\

  2. Open apache-install-dir\conf\httpd.conf.

    For example:

    C:\Program Files\Apache Software Foundation \Apache2.2\conf\httpd.conf

  3. Change port for property Listen to 8080.

  4. Change port for property ServerName to 8080.

    For example: ServerName myHostName.us.oracle.com:8080

  5. At the end of httpd.conf, add the following lines (replacing hostName* and 7002-7007 in the WebLogicCluster line with your servers and ports created in Section 13.7.7.3, "Creating Servers"):

    LoadModule weblogic_module modules/mod_wl_22.so
    <IfModule mod_weblogic.c>
        # RTDCluster_DsDcLs
        <LocationMatch "/(ui|schema|soap|rtis|ls)">
          SetHandler weblogic-handler
          WebLogicCluster hostName1:7002,hostName1:7003,hostName1:7004,
                          hostName2:7005,hostName2:7006,hostName2:7007
        </LocationMatch>
     </IfModule>
    
  6. Save httpd.conf.

  7. Start Apache HTTP: Start>All Programs>Apache HTTP Server 2.2.6 >Control Apache Server>Start

    (Or C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd -k start)

    Note:

    To stop, run: Start>All Programs>Apache HTTP Server 2.2.6 >Control Apache Server>Stop

    (Or C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd -k stop)

13.7.10 Deploying RTD.ear Onto Cluster

To deploy RTD.ear onto the cluster, perform the following steps:

  1. On machine #1, in RTD_HOME/package, unzip RTD.ear into a directory called expanded.

  2. In the admin console, in the tree to the left under Change Center, click Lock & Edit.

  3. In the tree to the left under Domain Structure, click Deployments.

  4. Click Install.

  5. For Location, find RTD_HOME/package.

  6. Select expanded.

  7. Click Next.

  8. Select Install this deployment as an application.

  9. Click Next.

  10. Under Clusters, check the RTDCluster checkbox.

  11. Click Next.

  12. Under General, for Name, enter OracleRTD.

  13. Under Source accessibility, select Copy this application onto every target for me.

  14. Click Next.

  15. Click Finish.

  16. In the tree to the left under Change Center, click Activate Changes.

    Note:

    RTD.ear will be installed on every machine server instance in: weblogic-install-dir\user_projects\domains\oraclertd_domain\servers\server-instance-name\stage\OracleRTD\expanded

13.7.11 Copying WebLogic Domain to All Clustered Machines

To copy the WebLogic domain to all clustered machines, perform the following steps:

  1. Go to machine #2 in the cluster.

  2. Start the WebLogic Scripting Tool by running:

    weblogic-install-dir\wlserver_10.3\common\bin\wlst.cmd

    For example: C:\bea\wlserver_10.3\common\bin\wlst.cmd

  3. Connect to machine #1 (Admin server) by entering:

    connect('weblogic','weblogic','t3://admin-server-host:7001')

    For example: wls:/offline> connect('weblogic','weblogic','t3://myHostName.us.oracle.com:7001')

  4. Enroll the machine as a managed server by entering:

    nmEnroll('weblogic-install-dir /user_projects/domains/oraclertd_domain', 'weblogic-install-dir/wlserver_10.3/common/nodemanager')

    For example: wls:/oraclertd_domain/serverConfig>

    nmEnroll('C:/bea/user_projects/domains/oraclertd_domain', 'C:/bea/wlserver_10.3/common/nodemanager')

  5. Run disconnect().

    For example: wls:/oraclertd_domain/serverConfig> disconnect()

  6. Run exit().

    For example: wls:/offline> exit().

13.7.12 Starting the Cluster

This process consists of restarting the Admin Server and Node Managers, then starting the clustered servers.

13.7.12.1 Restarting Admin Server and Node Managers

To restart the Admin Server and Node Managers, perform the following steps:

  1. On machine #1, find the command window where the Node Manager has been started (from startNodeManager.cmd) and hit Ctrl-C to stop it.

  2. Repeat step 1 for machine #2.

  3. On machine #1 (Admin Server machine), run:

    weblogic-install-dir/user_projects/domains /oraclertd_domain/bin/stopWebLogic.cmd

    For example:

    c:/Oracle/Middleware/user_projects/domains /oraclertd_domain/bin/stopWebLogic.cmd

  4. On machine #1 (Admin Server machine), run:

    weblogic-install-dir/user_projects/domains/oraclertd_domain/bin/startWebLogic.cmd

    For example:

    c:/Oracle/Middleware/user_projects/domains /oraclertd_domain/bin/startWebLogic.cmd

  5. On machine #1 (Admin Server machine), run

    weblogic-install-dir\wlserver_10.3\server \bin\startNodeManager.cmd

  6. Repeat step 5 for machine #2.

13.7.12.2 Starting Clustered Servers

To start the clustered servers, perform the following steps:

  1. In the tree to the left under Domain Structure, expand Environment and click Clusters.

  2. Click the cluster name RTDCluster.

  3. Click the Control tab.

  4. Check all servers in the cluster.

  5. Click Start.

  6. Click Yes.

  7. Wait until the installation finishes.

Logs for Machine 1:

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer1a\logs\RTDServer1a.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer1b\logs\RTDServer1b.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer1c\logs\RTDServer1c.log

Logs for Machine 2:

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer2a\logs\RTDServer2a.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer2b\logs\RTDServer2b.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer2c\logs\RTDServer2c.log

13.7.13 Starting the OracleRTD Application

To start the OracleRTD application, perform the following steps:

  1. In the tree to the left under Domain Structure, click Deployments.

  2. Check the OracleRTD checkbox.

  3. Click Start and select Servicing all Requests.

  4. Click Yes.

  5. Wait until the installation finishes.

Logs for Machine 1:

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer1a\stage\OracleRTD\expanded\log\server.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer1b\stage\OracleRTD\expanded\log\server.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer1c\stage\OracleRTD\expanded\log\server.log

Logs for Machine 2:

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer2a\stage\OracleRTD\expanded\log\server.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer2b\stage\OracleRTD\expanded\log\server.log

  • C:\Oracle\Middleware\user_projects\domains\oraclertd_domain \servers\RTDServer2c\stage\OracleRTD\expanded\log\server.log

13.7.14 Setting JConsole Server Properties

To set the JConsole server properties, perform the following steps:

  1. On machine #1 or machine #2, run jconsole.exe from a Java 1.5 installation.

    For example: C:\Program Files\Java\jdk1.5.0_10\bin\jconsole.exe

  2. In JConsole, connect to the Agent dialog, then click the Remote tab.

  3. For Host or IP, enter the machine name of the first clustered server instance.

    For example: myHostName1.us.oracle.com

  4. For Port, enter the JMX remote port set for this server instance in Section 13.7.7.3, "Creating Servers."

    For example: 12302

  5. Click Connect.

  6. Set any other JConsole properties as you require.

13.7.15 Disabling HTTP Session Affinity and Enable Request Forwarding on Each Server

To disable HTTP session affinity and to enable request forwarding on each server, perform the following steps:

  1. On machine #1 or machine #2, run jconsole.exe from a Java 1.6 installation.

    For example: C:\Program Files\Java\jdk1.6.0_12\bin\jconsole.exe

  2. In JConsole, connect to the Agent dialog, then click the Remote tab.

  3. For Host or IP, enter the machine name of the first clustered server instance.

    For example: myHostName1.us.oracle.com

  4. For Port, enter the JMX remote port set for this server instance in Section 13.7.7.3, "Creating Servers."

    For example: 12302

  5. Click Connect.

  6. In the tree to the left, expand OracleRTD > SDClusterPropertyManager > Cluster.

  7. For GenerateDSCookies, enter false. Hit the Enter key.

  8. In the tree to the left, expand OracleRTD > SDClusterPropertyManager > Misc.

  9. For DSManagesSessionAffinity, enter true. Hit the Enter key.

    Note:

    Disable request forwarding by setting DSManagesSessionAffinity to false.
  10. For DSEnforcesStrictSessionAffinity, enter true. Hit the Enter key.

13.7.16 Deploying CrossSell Inline Service (Through Web Server Port 8080)

To deploy the CrossSell Inline Service through web server port 8080, perform the following steps:

  1. On machine #1, start Oracle RTD Studio by running RTD_HOME\eclipse\eclipse.exe.

  2. In top menu bar, click File then Import.

  3. Select Existing Projects into Workspace.

  4. Click Next.

  5. Click Browse...

  6. Go to RTD_HOME\examples\CrossSell.

  7. Click OK.

  8. Click Finish.

  9. Wait until the Inline Service build is finished.

  10. In top menu bar, click the icon Deploy the Inline Service to a server.

  11. Click Deploy.

    Note:

    By default, Studio will deploy to localhost:8080 (which is machine #1 and the web server "load balancer" port)
  12. For User Name, enter sdsu.

  13. Click Connect.

  14. Wait until the CrossSell Inline Service is deployed.

13.7.17 Creating CrossSell Database Tables

To create the CrossSell database tables, perform the following steps:

  1. On machine #1, in a command console: cd to RTD_HOME\examples\CrossSell\etc\data\Oracle

  2. Run the following command:

    InitAppDB.cmd RTD_HOME db_host_name port sid db_user_name admin_user_name admin_user_password

    For example:

    InitAppDB.cmd C:\OracleBI\RTD mydbmachine.us.oracle.com 1521 orcl MYUSERNAME MYADMINUSERNAME MYADMINPASSWORD

    Note:

    If the database is on a SQL Server named instance, specify the db_host_name parameter using the format host_name\instance_name.

13.7.18 Running Load Generator Against CrossSell Inline Service (Through Web Server Port 8080)

To run Load Generator against the CrossSell Inline Service through web server port 8080, perform the following steps:

  1. On machine #1, start Oracle RTD Load Generator by running:

    RTD_HOME\scripts\loadgen.cmd

  2. Click Open an existing Load Generator script.

  3. Go to RTD_HOME\examples\CrossSell\etc and select LoadGen3Threads.xml.

  4. Click Open.

  5. Click the General tab.

  6. Next to Client Configuration File, on the right, click the ellipsis (...) button.

  7. Go to RTD_HOME\client.

    Select clientHttpEndPoints.properties (which is already set to localhost:8080 or machine #1).

  8. Click Open.

  9. In the top menu bar, click File, then Save.

  10. In the top menu bar, click the icon Runs the current Load Generator script (blue right arrow).

13.8 Setting up a WebSphere Cluster

Oracle RTD is supported on both UNIX and Windows platforms for IBM WebSphere application server.

This section contains the following topics:

13.8.1 Cluster Machine Setup

This section describes the overall hardware and software setup of the WebSphere cluster, to be used as the reference configuration for all the subsequent WebSphere related subsections.

Cluster Example: 2 Machines, 6 AppServers

Machine #1: <-- Admin Server, IBM HTTP Server, 3 Server Instances (vms)

  • Oracle RTD Software

  • IBM Update Installer and FixPacks

  • WebSphere Network Development

  • IBM HTTP Server

  • WebSphere Application Server

Machine #2: <-- 3 Server Instances (vms)

  • Oracle RTD JDBC Driver Jar(s)

  • IBM Update Installer and FixPacks

  • WebSphere Application Server

13.8.2 Setting Up Host Machine Files

To set up the host machine files, perform the following steps:

  1. On machine #1 in the cluster, open C:\WINDOWS\system32\drivers\etc\hosts.

  2. Add the other machine IP address and fully qualified name participating in the cluster.

    For example:

    • 10.138.234.116 mymachine.us.oracle.com

  3. Repeat steps 1-2 for machine #2 in the cluster.

13.8.3 Installing WebSphere Software

Refer to the WebSphere documentation for information about installing WebSphere. Install the IBM updater and any download FixPacks, the WebSphere application server, WebSphere Network Deployment, then the IBM HTTP Server.

Note that Core and SDK fix packs are required for cluster setup. The basic outline procedure is:

  • On both machines in the cluster, install Update Installer, and download any required fix packs for Core and SDK.

  • On both machines in the cluster, install WebSphere Application Server, then use Update Installer to apply fix packs for Core and SDK.

  • On machine #1, install Network Deployment, then use Update Installer to apply fix packs for Core and SDK.

  • On machine #1, install HttpServer, then use Update Installer to apply fix packs for Core and SDK.

For details about the versions supported, see System Requirements and Supported Platforms for Oracle Real-Time Decisions.

13.8.4 Installing Oracle RTD Software

To install the Oracle RTD software, perform the following steps:

  1. Install rtd_websphere_3.0.0.zip for WebSphere on machine #1 (with WebSphere Network Deployment).

  2. Copy the RTD jdbc jar(s) to machine #2 in the cluster.

    Use the same directory structure RTD_HOME\lib\jdbc\ as Machine #1:

    • SQLServer: RTD_HOME\lib\jdbc\sqljdbc.jar

    • Oracle: RTD_HOME\lib\jdbc\ojdbc14.jar

    • DB2: RTD_HOME\lib\jdbc\db2jcc.jar

      RTD_HOME\lib\jdbc\db2jcc_license_cu.jar

13.8.5 Initializing the Oracle RTD Database

To initialize the Oracle RTD database, perform the following step:

  1. On machine #1, run RTD_HOME\scripts\SDDBTool.cmd

    For more information, see Section 2.2.4, "Initializing the Oracle RTD Database Using SDDBTool" in Oracle Real-Time Decisions Installation and Administration Guide.

13.8.6 Adding Nodes to Deployment Manager

Start the Deployment Manager, then, on both machines, add two nodes to the Deployment Manager.

The instructions in this section provide general information about adding nodes - for more specific information, refer to the WebSphere documentation as required.

The basic outline procedure for both machines in the cluster is:

  • Start the Deployment Manager.

    For example, from the WebSphere Network Deployment Install directory, run the bin\StartManager.bat script.

  • Add a node.

    For example, from the WebSphere Server Install directory, run the bin\addNode.bat script, specifying the network deployment machine name for the node.

    This adds Node Agent to Deployment Manager and also starts the node agent.

13.8.7 Creating an Administrative User and Enabling Security

If you have already enabled security in WebSphere, you can skip this section. You should still check that Java 2 security is not turned on.

Use the WebSphere Application Server Network Deployment Manager administrative console, called the Integrated Solutions Console, to create an administrative user and to enable security in WebSphere. For more information about how to use the Integrated Solutions Console, refer to the WebSphere documentation.

If security is disabled, follow these steps to enable security in WebSphere:

  1. Access the Integrated Solutions Console at the URL http://websphere_host:port/ibm/console. At the login prompt, enter any user name. You will not need to enter any password. On Windows, you can also access the Integrated Solutions Console through Start > Programs.

    If you do not know the port number for the Integrated Solutions Console, you can find it in the virtualhosts.xml file, located in WEBSPHERE_HOME/AppServer/profiles/profile_name/config/cells/host_name.

  2. In the tree on the left, expand Security, and choose Secure administration, applications, and infrastructure.

  3. In the User account repository area, under the Available realm definitions heading, select Federated repositories, then click Set as current.

  4. Click Apply, then Save.

  5. Click Configure.

  6. In the Federated repositories window, in the General Properties area, perform the following:

    1. Enter a Realm Name, such as RTDRealm.

    2. Enter a Primary administrative user name, such as admin.

    3. Under the Server user identity heading, select Automatically generated server identity.

  7. In the Administrative user password window, in the General Properties area, enter the administrative user password in both the Password and Confirm password fields.

  8. Click OK, then Save.

  9. Log out, stop, then restart WebSphere.

  10. Log in to the Integrated Solutions Console.

    If you do not know the port number for the Integrated Solutions Console, you can find it in the virtualhosts.xml file, located in WEBSPHERE_HOME/AppServer/profiles/profile_name/config/cells/host_name.

  11. In the tree on the left, expand Security and choose Secure administration, applications, and infrastructure.

  12. Under the Administrative security heading, select Enable administrative security.

  13. Under the Application security heading, select Enable application security.

  14. Under the Java 2 security heading, uncheck Use Java 2 security to restrict application access to local resources.

  15. Click Apply, then Save.

  16. Log out, stop, then restart WebSphere.

13.8.8 Adding Virtual Host Port 8080

To add virtual host port 8080, perform the following steps:

  1. In the tree to the left, expand Environment and click Virtual Hosts.

  2. Click default host.

  3. Under Additional Properties, click Host Aliases.

  4. Click New.

  5. For Host Name, enter '*'.

  6. For Port, enter 8080.

  7. Click OK.

  8. Under Messages, click Preferences and check the Synchronize changes with Nodes checkbox.

    This ensures that future changes will be propagated to all nodes in cluster, provided that node agents are running.

  9. Click Apply.

  10. Click Save.

13.8.9 Creating Cluster and Servers and Setting Server Properties

This process consists of creating the cluster and servers, then setting the server JVM and administration properties.

The following describes the cluster setup on the two machines:

  • RTDCluster

    (Machine #1 and Node #1)

    • RTDServer1a (LearningService = enabled)

    • RTDServer1b

    • RTDServer1c

    (Machine #2 and Node #2)

    • RTDServer2a

    • RTDServer2b

    • RTDServer2c

13.8.9.1 Creating Cluster and Servers

To create the cluster and servers, perform the following steps:

  1. In the tree to the left, expand Servers and select Clusters.

  2. Click New.

  3. Step 1: For Cluster name, enter RTDCluster.

  4. Step 1: Click Next.

  5. Step 2: For Member name, enter RTDServer1a.

    Step 2: For Select node, select the first node created in Section 13.8.6, "Adding Nodes to Deployment Manager."

  6. Step 2: Click Next.

  7. Step 3: For Member name, enter RTDServer1b.

    Step 3: For Select node, select the same node (Node 1).

  8. Step 3: Click Add Member.

  9. Step 3: For Member name, enter RTDServer1c.

    Step 3: For Select node, select the same node (Node 1).

  10. Step 3: Click Add Member.

  11. Step 3: For Member name, enter RTDServer2a.

    Step 3: For Select node, select the second node created in Section 13.8.6, "Adding Nodes to Deployment Manager."

  12. Step 3: Click Add Member.

  13. Step 3: For Member name, enter RTDServer2b.

    Step 3: For Select node, select the same node (Node 2).

  14. Step 3: Click Add Member.

  15. Step 3: For Member name, enter RTDServer2c.

    Step 3: For Select node, select the same node (Node 2).

  16. Step 3: Click Add Member.

  17. Step 3: Click Next.

  18. Step 4: Click Finish.

  19. Under Messages, click Save.

13.8.9.2 Setting Server JVM Properties

To set the server JVM properties, perform the following steps:

  1. In the tree to the left, expand Servers and select Application servers.

  2. Click RTDServer1a.

  3. Under Server Infrastructure, expand Java and Process Management.

  4. Click Process Definition.

  5. Under Additional Properties, click Java Virtual Machine.

  6. Under the General Properties heading, in the Generic JVM arguments field, add the following string:

    -Djava.net.preferIPv4Stack=true
    

    If there is already a value in this field, add a space after the existing value, then add the new string.

  7. Click OK.

    When you click OK, you may see an error stating that you need to provide values for Initial Heap Size and Maximum Heap Size. If you see this error, set these values as needed for your system (for example, you can set Initial Heap Size to 512 and Maximum Heap Size to 2048).

  8. Under Additional Properties, click Custom Properties.

  9. Click New.

  10. For Name, enter org.eclipse.emf.ecore.EPackage.Registry.INSTANCE

  11. For Value, enter com.sigmadynamics.emf.util.SDEMFRegistry

  12. Click New.

  13. For Name, enter rtd.instanceName.

  14. For Value, enter RTDServer1a (or RTDServer1b, RTDServer1c, RTDServer2a, RTDServer2b, RTDServer2c).

  15. Click New.

  16. For Name, enter rtd.instancesShareRuntimeHome.

  17. For Value, enter true.

  18. Click New.

  19. For Name, enter RestrictClusterMembers.

  20. For Value, enter false.

  21. Click New.

  22. For Name, enter SDGroupName.

  23. For Value, enter RTDCluster.

  24. Click New.

  25. For Name, enter LearningServiceEnabled.

  26. For Value, if server is RTDServer1a, enter true, otherwise enter false.

  27. Under Messages, click Save.

  28. Repeat step 1, then steps 3-27 for servers RTDServer1b, RTDServer1c, RTDServer2a, RTDServer2b, RTDServer2c.

13.8.9.3 Setting Server Administration Properties

To set the server administration properties, perform the following steps:

  1. In the tree to the left, expand Servers, and select Application servers.

  2. Click RTDServer1a.

  3. Under Server Infrastructure, expand Administration, and select Administration Services.

  4. Under Additional Properties, click Custom Properties.

  5. Click New.

  6. For Name, enter com.ibm.websphere.mbeans.disableRouting.

  7. For Value, enter <on>OracleRTD:*</on>.

  8. Repeat step 1, then steps 3-7 for servers RTDServer1b, RTDServer1c, RTDServer2a, RTDServer2b, RTDServer2c.

  9. Under Messages, click Save, then click OK.

13.8.10 Creating Oracle RTD Roles and Users

This section consists of the following topics:

13.8.10.1 Creating Users for Oracle RTD

To create users, perform the following steps:

  1. Log into the Integrated Solutions Console, using the administrative user and password.

  2. In the tree on the left, expand Users and Groups, and choose Manage Users.

  3. Click the Create... button.

  4. Enter user and password information for the user, such as rtdadmin for the User ID.

    You will use the User ID later on, when you add the user to one or more groups.

  5. Click Create, then Close.

  6. Repeat steps 3 to 5 to create other users.

13.8.10.2 Creating Groups

To create groups, perform the following steps:

  1. Log into the Integrated Solutions Console, using the administrative user and password.

  2. In the tree on the left, under Users and Groups, choose Manage Groups.

  3. Click the Create... button.

  4. In the Group name field, enter RTDAdminGroup.

  5. Click Create, then Close.

  6. In the Manage Groups page, click the group name RTDAdminGroup.

  7. Click the Add Users... button.

  8. Click Search to display a list of users.

  9. In the search result list, select the user name to add to the RTDAdminGroup.

  10. Click Add, then Close.

  11. Repeat steps 2 through 10 to create each of the following groups for Oracle RTD:

    • RTDDCEditorGroup

    • RTDDCUserGroup

    • RTDStudioDeployerGroup

    • RTDStudioDownloaderGroup

    • RTDBatchAdminGroup

    • RTDChoiceEditorGroup

    • RTDUserGroup

  12. In the Manage Groups page, click the group name RTDUserGroup.

  13. In the Group Properties area, click the Members tab.

  14. Click the Add Groups... button.

  15. Add all the groups created for Oracle RTD except RTDUserGroup.

  16. Click Close.

13.8.10.3 Standard Oracle RTD Roles

The groups specified in Section 13.8.10.2, "Creating Groups" are automatically mapped to the standard Oracle RTD roles, as shown in Table 13-5.

Table 13-5 Standard Oracle RTD Roles and Group Associations

Role Group

RTDUsers

RTDUserGroup

RTDAdministrators

RTDAdminGroup

RTDDecisionCenterEditors

RTDDCEditorGroup

RTDDecisionCenterUsers

RTDDCUserGroup

RTDStudioDeployers

RTDStudioDeployerGroup

RTDStudioDownloaders

RTDStudioDownloaderGroup

RTDBatchAdministrators

RTDBatchAdminGroup

RTDChoiceEditors

RTDChoiceEditorGroup


Section 7.2, "Standard Oracle RTD Roles" and its component subsections describe how default permissions are already assigned to the standard Oracle RTD roles. These become active immediately after Oracle RTD is installed and started on WebSphere.

13.8.11 Adding Virtual Host HTTP Address for Servers

This process consists of getting HTTP addresses for each server, then creating an HTTP virtual port for each unique server port.

13.8.11.1 Getting HTTP Addresses For Each Server

To get HTTP addresses for each server, perform the following steps:

  1. In the tree to the left, expand Servers and select Application Servers.

  2. Click RTDServer1a.

  3. Under Communications, expand Ports.

  4. Write down the WC_defaulthost for this server, for example: 9081.

    This is used to connect with this server via HTTP.

  5. Repeat steps 1-4 for servers RTDServer1b, RTDServer1c, RTDServer2a, RTDServer2b, RTDServer2c.

13.8.11.2 Creating an HTTP Virtual Port For Each Unique Server Port

To create an HTTP virtual port for each unique server port, perform the following steps:

  1. In the tree to the left, expand Environment and click Virtual Hosts.

  2. Click default host.

  3. Under Additional Properties, click Host Aliases.

  4. Click New.

  5. For Host Name, enter '*'.

  6. For Port, enter the WC_defaulthost port for server RTDServer1a, for example, 9081.

    Note:

    You do not have to add the same port a second time for different machines.
  7. Click OK.

  8. Click Save.

  9. Repeat steps 1-8 for each unique remaining server port, for example: 9082, 9083.

13.8.12 Creating JDBC Providers and Data Sources

This process consists of the following:

13.8.12.1 Creating JDBC Providers

To create JDBC providers, perform the following steps:

  1. In the tree to the left, expand Resources, expand JDBC, and select JDBC Providers.

  2. Under Scope, select the cell scope, for example, Cell=myMachineCell01.

  3. Click New.

  4. Step 1: For Database type, select User-defined.

    Perform the steps appropriate to your data source.

    If your data source is SQLServer, continue at step 5.

    If your data source is Oracle, continue at step 9.

    If your data source is DB2, continue at step 13.

    SQLServer

  5. Step 1: For Information required Implementation class name,

    enter com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource

  6. Step 1: For Name, enter RTDDataProvider.

  7. Step 1: Click Next.

  8. Step 2: For Class path, enter RTD_HOME/lib/jdbc/sqljdbc.jar.

    For example, C:/OracleBI/RTD/lib/jdbc/sqljdbc.jar

    Note:

    The path must be the same for each machine.

    Continue at step 17.

    Oracle

  9. Step 1: For Information required Implementation class name,

    enter oracle.jdbc.pool.OracleConnectionPoolDataSource

  10. Step 1: For Name, enter RTDDataProvider.

  11. Step 1: Click Next.

  12. Step 2: For Class path: enter RTD_HOME/lib/jdbc/ojdbc14.jar

    For example, C:/OracleBI/RTD/lib/jdbc/ojdbc14.jar

    Continue at step 17.

    DB2

  13. Step 1: For Information required Implementation class name,

    enter com.ibm.db2.jcc.DB2ConnectionPoolDataSource

  14. Step 1: For Name, enter RTDDataProvider.

  15. Step 1: Click Next.

  16. Step 2: For Class path: enter RTD_HOME/lib/jdbc/db2jcc.jar;RTD_HOME/lib/jdbc/db2jcc_license_cu.jar

    For example: C:/OracleBI/RTD/lib/jdbc/db2jcc.jar;C:/OracleBI/RTD/lib/jdbc/db2jcc_license_cu.jar

    Note:

    The path must be the same for each machine.

    Continue at step 17.

  17. Step 2: Click Next.

  18. Step 3: Click Finish.

  19. Under Messages, click Save.

13.8.12.2 Creating J2C Authentication Aliases

To create J2C authentication aliases, perform the following steps:

  1. In the tree to the left, expand Security, and select Secure administration, applications, and infrastructure.

  2. Expand Java Authentication and Authorization Service and select J2C authentication data.

  3. Click New.

  4. For Alias, enter RTDDS_auth.

  5. For User ID, enter the name of the database run-time user, for example, sa1.

  6. For Password, enter the corresponding password for the database user, for example, sa1.

  7. Click OK.

  8. Under Messages, click Save.

    The J2C alias will be created in cell manager scope (host_nameCell_manager_name).

13.8.12.3 Creating Data Sources

To create data sources, perform the following steps:

  1. In the tree to the left, expand Resources, expand JDBC, and select JDBC Providers.

  2. Click RTDDataProvider.

  3. Under Additional Properties, click Data Sources.

  4. Select the Cluster scope, then click New.

  5. Step 1: For Data source name, enter RTD_DS.

  6. Step 1: For JNDI name, enter SDDS.

  7. Step 1: Under Component-managed authentication alias and XA recovery authentication alias, select RTDDS_auth.

  8. Step 1: Click Next.

  9. Step 2: Click Next.

  10. Step 3: Click Finish.

  11. Under Messages, click Save.

13.8.12.4 Setting Data Source Properties

To set data source properties, perform the following steps:

  1. In the tree to the left, expand Resources, expand JDBC, and select Data Sources.

  2. Click RTD_DS.

    Perform the steps appropriate to your data source.

    If your data source is SQLServer, continue at step 3.

    If your data source is Oracle, continue at step 6.

    If your data source is DB2, continue at step 9.

    SQLServer

  3. Under Additional Properties, click Custom properties.

  4. Click the Select All icon.

  5. Enter your database name, server name, and port number into the fields provided.

    Note:

    If the data source is on a SQL Server named instance, specify the database server name using the format host_name\instance_name.

    Oracle

  6. Under Oracle datasource properties,

    for URL, enter jdbc:oracle:thin:@db_host:db_port:sid.

    For example, jdbc:oracle:thin:@mydbhost:1521:orcl.

  7. Click OK.

  8. Under Messages, click Save to end the process.

    DB2

  9. Under DB2 Universal data source properties,

    for Database name, enter the name of your database, for example, rtd.

  10. For Driver type, enter 4.

  11. For Server name, enter your database server name, for example, localhost.

  12. For Port number, enter your database port number, for example, 60000.

  13. Click OK.

  14. Under Messages, click Save to end the process.

13.8.12.5 Setting Data Source Statement Cache

To set data source statement cache, perform the following steps:

  1. In the tree to the left, expand Resources, expand JDBC, and select JDBC Providers.

  2. Click RTDDataProvider.

  3. Under Additional Properties, click Data Sources.

  4. Click RTD_DS.

  5. Under Additional Properties, click WebSphere Application Server data source properties.

  6. For Statement cache size, enter 0 (instead of 10).

  7. Click OK.

  8. Under Messages, click Save.

13.8.12.6 Restarting Nodes and Deployment Manager

This section describes how to restart the nodes and the Deployment manager

In the WebSphere administrative console, restart the nodes for each machine from System Administration > Node agents.

To restart the Deployment Manager, perform the following steps:

  1. On machine #1, stop the Deployment Manager:

    websphere-network-deployment-install-dir\bin\stopManager.bat

    For example: C:\Program Files\IBM\WebSphere\NetworkDeployment\bin\stopManager.bat

  2. On machine #1, start the Deployment Manager:

    websphere-network-deployment-install-dir\bin\startManager.bat

    For example: C:\Program Files\IBM\WebSphere\NetworkDeployment\bin\startManager.bat

13.8.12.7 Testing Data Source Connection

To test the data source connection, perform the following steps:

  1. Log on to the Deployment Manager Admin Console:

    http://deployment-manager-host-name:9061/ibm/console

  2. In the tree to the left, expand Resources, expand JDBC, and select JDBC Providers.

  3. Click RTDDataProvider.

  4. Under Additional Properties, click Data Sources.

  5. Check the RTD_DS checkbox.

  6. Click Test connection.

    Note:

    Deployment manager on machine #1 must be running for the Oracle RTD data source to be active (cell scope).

13.8.13 Creating the Web Server

This process consists of modifying the IBM HTTP server configuration file, creating the web server, generating and propagating the web server plug-in, then starting the web server.

13.8.13.1 Modifying IBM HTTP Server Configuration File

To modify the IBM HTTP server configuration file, perform the following steps:

  1. On machine #1, open ibm-http-server-install-dir\conf\httpd.conf

    For example: C:\Program Files\IBM\HTTPServer\conf\httpd.conf

  2. Change the port for property AfpaPort to 8080.

    For example: AfpaPort 8080

  3. Change the port for property Listen to 8080.

    For example: Listen 0.0.0.0:8080

  4. Change port for property ServerName to 8080.

    For example: ServerName localhost:8080

  5. Change webserver1 to RTDWebServer for property WebSpherePluginConfig.

    Note:

    You can leave the name as webserver1. If you do, then make sure that you use the name webserver1 instead of RTDWebServer for the rest of the instructions.
  6. Save httpd.conf.

13.8.13.2 Creating Web Server

To create the web server, perform the following steps:

  1. Back in the admin console, in the tree to the left, expand Servers and select Web servers.

  2. Click New.

  3. Step 1: For Select node, select the node where web server will reside, for example, host_nameNode_name. (Machine #1).

  4. Step 1: For Server name, enter the name you used in the IBM HTTP httpd.conf file, for example, RTDWebServer.

  5. Step 1: For Type, select IBM HTTP Server.

  6. Step 1: Click Next.

  7. Step 2: Click Next.

  8. Step 3: For Port enter 8080.

  9. Step 3: For Web server installation location, enter ibm-http-server-install-dir.

    For example, C:\Progra~1\IBM\HTTPServer, not C:\Progam Files\IBM\HTTPServer

    Do not enter spaces for this directory.

  10. For Service name, enter IBMHTTPServer6.1.

  11. Step 3: For Plug-in installation location, enter ibm-http-server-install-dir\Plugins

    For example, C:\Program Files\IBM\HTTPServer\Plugins

  12. Step 3: Click Next.

  13. Step 4: Click Finish.

  14. Under Messages, click Save.

13.8.13.3 Generating and Propagating Web Server Plug-In

To generate and propagate the web server plug-in, perform the following steps:

  1. In the tree to the left, expand Servers and select Web servers.

  2. Check the RTDWebServer checkbox.

  3. Click Generate Plug-in.

  4. Click Propagate Plug-in.

13.8.13.4 Starting the Web Server

To start the web server, perform the following steps:

  1. In the tree to the left, expand Servers and select Web servers.

  2. Check the RTDWebServer checkbox.

  3. Click Start.

    The log directory is C:\Program Files\IBM\HTTPServer\logs\.

    Look in access.log and error.log.

    This creates an IBM HTTP Web Server with round-robin load balancing on port 8080.

    See C:\Program Files\IBM\HTTPServer\Plugins\config\RTDWebServer\plugin-cfg.xml.

13.8.14 Starting the Cluster and Servers

To start the cluster and servers, perform the following steps:

  1. In the tree to the left, expand Servers and select Clusters.

  2. Check the cluster checkbox RTDCluster.

  3. Click Start.

  4. Wait until the cluster has started.

  5. In the tree to the left, expand Servers and select Application servers.

  6. Verify all six servers have started: look for green arrows in the Status column.

    The base log directory for Machine #1 and Machine #2 is C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\.

    • Look in \RTDServer1a\SystemOut.log for Server RTDServer1a open for e-business.

    • Look in \RTDServer1b\SystemOut.log for Server RTDServer1b open for e-business.

    • Look in \RTDServer1c\SystemOut.log for Server RTDServer1c open for e-business.

    • Look in \RTDServer2a\SystemOut.log for Server RTDServer2a open for e-business.

    • Look in \RTDServer2b\SystemOut.log for Server RTDServer2b open for e-business.

    • Look in \RTDServer2c\SystemOut.log for Server RTDServer2c open for e-business.

13.8.15 Deploying RTD.ear onto Cluster

This process consists of deploying RTD.ear to the cluster, generating and propagating the web server plug-in, then starting the OracleRTD application.

13.8.15.1 Deploying RTD.ear to Cluster

To deploy RTD.ear to the cluster, perform the following steps:

  1. In the tree to the left, expand Applications and select Install New Application.

  2. For Full path, click Browse... and browse to RTD_HOME/package/RTD.ear.

    For example, C:/OracleBI/RTD/package/RTD.ear.

  3. Click Next.

  4. Step 1: For Application name, enter OracleRTD.

  5. Step 1: Click Next.

  6. Step 2: In Clusters and Servers:, select cluster=RTDCluster.

  7. Step 2: Click the Select All icon.

  8. Step 2: Click Apply.

  9. Step 2: Click Next.

  10. Step 3: Click Finish.

  11. Click Save.

13.8.15.2 Generating and Propagating Web Server Plug-In

To generate and propagate the web server plug-in, perform the following steps:

  1. In the tree to the left, expand Servers and select Web servers.

  2. Check the RTDWebServer checkbox.

  3. Click Generate Plug-in.

  4. In the tree to the left, expand Servers and select Web servers.

  5. Check the RTDWebServer checkbox.

  6. Click Propagate Plug-in.

13.8.15.3 Starting the OracleRTD Application

To start the OracleRTD application, perform the following steps:

  1. In the tree to the left, expand Applications and select Enterprise Applications.

  2. Check the OracleRTD checkbox.

  3. Click Start.

  4. Wait for the startup to complete.

    The base log directory for Machine #1 and Machine #2 is C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\. Specific log files are as follows:

    • \RTDServer1a\SystemOut.log

    • \RTDServer1b\SystemOut.log

    • \RTDServer1c\SystemOut.log

    • \RTDServer2a\SystemOut.log

    • \RTDServer2b\SystemOut.log

    • \RTDServer2c\SystemOut.log

    For both Machine #1 and Machine #2, other log information appears under the directory C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\host_nameNode_name\. Look in \OracleRTD\logs\server.log.

13.8.16 Setting Classloader Priority

To give priority to the application classloader over the application server classloader, after you have deployed Oracle RTD, you must explicitly set the Classloader priority in the Websphere administrative console, as follows:

  1. Log into the WebSphere administrative console, using the administrative user and password.

  2. Expand Applications, then choose Enterprise Applications.

  3. Click OracleRTD.

  4. Click Class loading and update detection.

  5. Select Classes loaded with application class loader first.

  6. Click OK.

  7. Restart WebSphere.

13.8.17 Viewing and Changing User-Role Associations

The standard Oracle RTD Roles and Roles-groups mapping have been predefined for WebSphere.

To show the Oracle RTD Roles and Roles-groups mapping, perform the following steps:

  1. In the Integrated Solutions Console, expand Applications, then choose Enterprise Applications.

  2. Click OracleRTD.

  3. Under the Detail Properties section, click Security role to user/group mapping.

If you want to view or edit the user-role associations, check the role to be modified, then click either Look up users or Look up groups and change the mapping.

13.8.18 Creating Custom Roles and Assigning Permissions to Custom Roles (Optional)

This section consists of the following topics:

13.8.18.1 Creating Custom Roles

To create custom roles for Oracle RTD, perform the following high-level steps:

  1. Create groups in WebSphere.

    To create groups in WebSphere, follow the instructions in Section 13.8.10.2, "Creating Groups" using group names of your own choice.

  2. Specify the roles in the deployment descriptor file application.xml, extracted from the Oracle file RTD.ear. See Section 13.8.18.1.1, "Specifying Roles in application.xml" for details.

  3. Map the roles to the WebSphere groups in the Integrated Solutions Console. See Section 13.8.18.1.2, "Mapping Roles to Groups" for details.

Then, perform either of the following:

  1. Uninstall, then redeploy Oracle RTD, as follows:

    1. Download the two deployment descriptor files, application.xml and ibm-application-bnd.xmi, back into RTD.ear (the file ibm-application-bnd.xmi contains the role-to-group mappings).

    2. Redeploy Oracle RTD using the updated RTD.ear. Use Uninstall, then Install.

  2. Redeploy Oracle RTD, using Update.

The rest of this section consists of the following topics:

13.8.18.1.1 Specifying Roles in application.xml

To serve as an example, this section describes the addition of a new role, ILS2Users.

After extracting RTD.ear from RTD_HOME\package, edit the file META-INF\application.xml as follows:

  1. Add an entry similar to the following:

    <security-role id="SecurityRole_1241469153092">
            <role-name>ILS2Users</role-name>
        </security-role>
    

    where security-role id is any unique value.

  2. Repeat step 1 for as many roles as you want to create.

13.8.18.1.2 Mapping Roles to Groups
  1. In the Integrated Solutions Console, expand Applications, then choose Enterprise Applications.

  2. Click OracleRTD.

  3. Under the Detail Properties section, click Security role to user/group mapping.

  4. Check the role to be modified, then click Look up groups and change the mapping.

  5. Repeat step 4 for as many roles as you need to map to groups.

Note:

To view and change the user-role associations, see Section 13.8.17, "Viewing and Changing User-Role Associations."

13.8.18.2 Assigning Permissions to Custom Roles

As described in Section 7.4, "Assigning Permissions," assign Cluster permissions, Inline Service permissions, and Decision Center Perspective permissions to any custom roles.

13.8.19 Creating startJConsole Batch Files

This process consists of getting bootstrap addresses for each server, then creating the JConsole startup script for each server.

13.8.19.1 Getting Bootstrap Addresses For Each Server

To get bootstrap addresses for each server, perform the following steps:

  1. In the tree to the left, expand Servers and select Application Servers.

  2. Click RTDServer1a.

  3. Under Communications, expand Ports.

  4. Write down the BOOTSTRAP_ADDRESS for this server.

    This is used to connect with JConsole for server specific configuration.

  5. Repeat steps 1-4 for servers RTDServer1b, RTDServer1c, RTDServer2a, RTDServer2b, and RTDServer2c.

13.8.19.2 Creating JConsole Startup Script For Each Server

To create the JConsole startup script for each server, perform the following steps:

  1. On machine #1, create and open a new file in Notepad for the first server instance RTDServer1a.

  2. Add the following lines into the file:

    For Windows:

    call c:\program files\ibm\websphere\appserver\profiles\appsrv01\bin\setupCmdLine

    "%JAVA_HOME%\bin\jconsole" "-J-Djava.class.path=%WAS_HOME%\runtimes\com.ibm.ws.admin.client_6.1.0.jar;%JAVA_HOME%\lib\tools.jar" "-J%CLIENTSSL%" "-J%CLIENTSAS%" service:jmx:iiop://HOST:PORT/jndi/JMXConnector

    For Linux:

    #!/bin/sh

    WAS_HOME=/usr/IBM/WebSphere/AppServer

    USER_HOME=/usr/IBM/WebSphere/AppServer/profiles/AppSrv01

    WAS_HOST=MACHINE_HOST

    WAS_BOOTSTRAP_PORT=BOOTSTRAP_ADDRESS

    $WAS_HOME/java/bin/jconsole -J-Djava.class.path=$WAS_HOME/runtimes/com.ibm.ws.admin.client_6.1.0.jar:$WAS_HOME/java/lib/tools.jar -J-Dcom.ibm.CORBA.ConfigURL=file:$USER_HOME/properties/sas.client.props -J-Dcom.ibm.SSL.ConfigURL=file:$USER_HOME/properties/ssl.client.props service:jmx:iiop://$WAS_HOST:$WAS_BOOTSTRAP_PORT/jndi/JMXConnector

  3. For the Linux script, replace BOOTSTRAP_ADDRESS with the port number seen in step 4 of Section 13.8.19.1, "Getting Bootstrap Addresses For Each Server." For example, 2810.

  4. For the Linux script, replace MACHINE_HOST with the machine host name for server RTDServer1a, for example, mymachine.us.oracle.com.

  5. Save the file as RTDServer1a_JConsole.bat for Windows or RTDServer1a_JConsole.sh for Linux.

  6. Repeat steps 1-5 for servers RTDServer1b, RTDServer1c, RTDServer2a, RTDServer2b, RTDServer2c, using their corresponding ports and machine host names.

13.8.20 Deploying CrossSell Inline Service

To deploy the CrossSell Inline Service, perform the following steps:

  1. On machine #1, start Decision Studio by running RTD_HOME\eclipse\eclipse.exe.

  2. In top menu bar, click File then Import.

  3. Select Existing Projects into Workspace.

  4. Click Next.

  5. Click Browse...

  6. Go to RTD_HOME\examples\CrossSell.

  7. Click OK.

  8. Click Finish.

  9. Wait until the Inline Service build is finished.

  10. In top menu bar, click the icon Deploy the Inline Service to a server.

  11. Click Deploy.

    Note:

    By default, Decision Studio will deploy to localhost:8080, which is machine #1 and the web server "load balancer" port.
  12. For User Name, enter sdsu.

  13. Click Connect.

  14. Wait until the CrossSell Inline Service is deployed.

13.8.21 Creating CrossSell Database Tables

To create the CrossSell database tables, perform the following steps:

  1. On machine #1, in a command console: cd to RTD_HOME\examples\CrossSell\etc\data\Oracle

  2. Run the following command:

    InitAppDB.cmd RTD_HOME db_host_name port sid db_user_name admin_user_name admin_user_password

    For example:

    InitAppDB.cmd C:\OracleBI\RTD mydbmachine.us.oracle.com 1521 orcl MYUSERNAME MYADMINUSERNAME MYADMINPASSWORD

Note:

If the database is on a SQL Server named instance, specify the db_host_name parameter using the format host_name\instance_name.

13.8.22 Running Load Generator Against CrossSell Inline Service

To run Load Generator against the CrossSell Inline Service, perform the following steps:

  1. On machine #1, start Oracle RTD Load Generator by running:

    RTD_HOME\scripts\loadgen.cmd

  2. Click Open an existing Load Generator script.

  3. Go to RTD_HOME\examples\CrossSell\etc and select LoadGen3Threads.xml.

  4. Click Open.

  5. Click the General tab.

  6. Next to Client Configuration File, on the right, click the ellipsis (...) button.

  7. Go to RTD_HOME\client.

    Select clientHttpEndPoints.properties (which is already set to localhost:8080 or machine #1).

  8. Click Open.

  9. In the top menu bar, click File, then Save.

  10. In the top menu bar, click the icon Runs the current Load Generator script (blue right arrow).

13.8.23 Creating WebSphere Thread Dump

To create a WebSphere thread dump, perform the following steps:

  1. On machine #1, open a command window.

  2. Go to C:\Program Files\IBM\WebSphere\AppServer\bin and run wsadmin.bat.

  3. Enter set jvm [$AdminControl completeObjectName type=JVM,process=RTDServer1a,*], replacing RTDServer1a for each server to analyze.

  4. Enter $AdminControl invoke $jvm dumpThreads.

  5. Go to C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01 and view the thread dump file created.

13.9 Setting up an Oracle AS Cluster

This section consists of the following topics:

13.9.1 Cluster Machine Setup

This section describes how to install Oracle RTD onto two hosts, each running a cluster of OC4J instances.

In general, three types of clusters are supported, corresponding to different distributions of Oracle RTD services:

  • DS (Decision Service)

  • DC (running Decision Center's UI servlet and Studio's soap servlet)

  • LS (Learning Service)

The Oracle RTD cluster types have the following properties:

  • Type 1 cluster: a homogeneous cluster of at least two Oracle RTD instances, all running DS, DC, and LS.

    Either all the instances are on one physical host or the instances are split across two physical hosts.

  • Type 2 cluster: a cluster of at least 4 Oracle RTD instances, two running DS and DC, and the others running LS.

    Either all the instances are on one physical host or the two types of instance are split across two physical hosts.

  • Type 3 cluster: a cluster of at least 4 Oracle RTD instances, two running just DS, and the others running DC and LS.

    Either all the instances are on one physical host or the two types of instance are split across two physical hosts.

This section concentrates on types 2 and 3, as these have the most detailed setup procedures.

For both cluster type 2 and cluster type 2, configuration starts on Host1, with 4 OC4J instances deployed into two OC4J groups, as follows:

  • rtdGroup

    Instances:

    • rtd_1_1 on Host1

    • rtd_1_2 on Host1

  • rtdGroup2

    Instances:

    • rtd_1_3 on Host1

    • rtd_1_4 on Host1

[Note the optional name convention: rtd_<host_number>_<instance_within_host>.]

Assuming that you want to deploy on multiple hosts, you then configure a cluster on Host2 using the same group names as on Host, as follows:

  • rtdGroup

    Instances:

    • rtd_2_1 on Host2

    • rtd_2_2 on Host2

  • rtdGroup2

    Instances:

    • rtd_2_3 on Host2

    • rtd_2_4 on Host2

Then you merge the two clusters into one cluster managed by Host1:

  • rtdGroup

    Instances:

    • rtd_1_1 on Host1

    • rtd_1_2 on Host1

    • rtd_2_1 on Host2

    • rtd_2_2 on Host2

  • rtdGroup2

    Instances:

    • rtd_1_3 on Host1

    • rtd_1_4 on Host1

    • rtd_2_3 on Host2

    • rtd_2_4 on Host2

13.9.3 Installing Oracle AS 10.1.3.3

After you have completed the installation process, Oracle AS will be started.

You will perform many of the Oracle AS administration tasks in the Enterprise Manager, ascontrol. The launch URL for the Enterprise Manager is installation dependent, but is typically http://localhost:7777/em.

13.9.4 Optionally Changing Port

After stopping Oracle AS, you can change the port by editing the file OAS_HOME/Apache/Apache/conf/httpd.conf. A typical location for OAS_HOME is C:/product/10.1.3.1/OracleAS_1/.

  1. To stop Oracle AS, run OAS_HOME/opmn/bin/opmnctl.exe stopall.

  2. Locate and open the file httpd.conf (for example, C:/product/10.1.3.1/OracleAS_1/Apache/Apache/conf/httpd.conf).

  3. Search for the word Port in the file.

  4. Replace the Port and Listen values by 8080.

13.9.5 Creating OC4J Groups and Instances

To create OC4J groups and instances, perform the following steps:

  1. In the Enterprise Manger, create two OC4J groups: rtdGroup and rtdGroup2.

  2. Create four OC4J instances on each host, as follows:

    • For Host 1, create instances rtd_1_1 and rtd_1_2 in rtdGroup

    • For Host 2, create instances rtd_2_1 and rtd_2_2 in rtdGroup

    • For Host 1, create instances rtd_1_3 and rtd_1_4 in rtdGroup2

    • For Host 2, create instances rtd_2_3 and rtd_2_4 in rtdGroup2

    [Note the instance name convention used: rtd_<host_number>_<instance_within_host>.]

13.9.6 Creating JDBC Resources

You create JDBC resources after creating the OC4J groups because when you create JDBC connection pools and data sources at the group level, they are automatically copied to each of the group's OC4J instances that exists at the time.

Later, however, when you add an OC4J instance to a group, configuration for the data sources you had created at the group level are not automatically distributed to the new OC4J instance.

To create JDBC resources, perform the following steps:

  1. If you will be using SQLServer or DB2, first copy the corresponding jdbc jars provided with rtd_3.0.0_OC4J_win.zip (or rtd_3.0.0_OC4J_unix.cpio if on Linux/Unix) into each OC4J instance's applib directory, as follows:

    1. Stop Oracle AS.

    2. For each OC4J instance (rtd_1_1, rtd_1_2, and so on), copy the appropriate file or files:

      (For SQLServer) RTD_HOME/lib/jdbc/sqljdbc.jar

      (For DB2) RTD_HOME/lib/jdbc/db2jcc.jar

      RTD_HOME/lib/jdbc/db2jcc_license_cu.jar

      into OAS_HOME/j2ee/OC4J_INSTANCE/applib/.

    3. Restart Oracle AS.

  2. In the Enterprise Manager, drill into rtdGroup.

  3. Go to the Administration tab, then click the JDBC Resources task under the Services heading. Under the Connection Pools heading, click Create to create a new connection pool for your Oracle RTD Database.

    If you are using OC4J as part of Oracle Application Server, first click home under the Groups heading, then proceed to the Administration tab.

  4. On the Create Connection Pool - Application page, ensure that default is selected for Application, and that New Connection Pool is selected for Connection Pool Type. Then, click Continue.

  5. On the Create Connection Pool page, enter RTDConnectionPool for Name.

  6. For Connection Factory Class, enter one of the following:

    • SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver

    • Oracle Database: oracle.jdbc.pool.OracleDataSource

    • DB2: com.ibm.db2.jcc.DB2Driver

  7. For JDBC URL, enter one of the following:

    • SQL Server: jdbc:sqlserver://db_host:db_port;databaseName=db_name

      Note:

      If the database is on a SQL Server named instance, specify the db_host parameter using the format host_name\instance_name.
    • Oracle Database: jdbc:oracle:thin:@db_host:db_port:sid

    • DB2: jdbc:db2://db_host:db_port/db_name

    db_host is the name of the server running the Oracle RTD Database, db_port is the port number for connecting to the database server, db_name is the name of the Oracle RTD Database instance (such as rtd), and sid is the Oracle System Identifier that refers to the instance of the Oracle Database running on the server.

  8. Under the Credentials heading, for Username, provide a database user name with system administration privileges for the Oracle RTD Database instance. Then, provide the corresponding password. See Oracle Fusion Middleware Security Guide for information about whether to provide a cleartext password or an indirect password.

  9. Click Finish.

  10. On the JDBC Resources page, under the Data Sources heading, click Create to define a new data source.

  11. On the Create Data Source - Application & Type page, ensure that default is selected for Application, and that Managed Data Source is selected for Data Source Type. Then, click Continue.

  12. On the Create Data Source - Managed Data Source page, enter RTD_DS for Name, jdbc/SDDS for JNDI Location, and select RTDConnectionPool for Connection Pool. Keep the defaults for the other options. Then, click Finish.

  13. On the JDBC Resources page, in the Data Sources table, click Test Connection for the RTD_DS data source. Follow these steps to test the RTD_DS data source:

    • If you are using Oracle Database for your Oracle RTD Database, keep the default settings and click Test.

    • If you are using SQL Server or DB2 for your Oracle RTD Database, change the SQL Statement to select * from SDAPPS, then click Test.

    If the connection is not established successfully, restart OC4J and then test the data source again. If it still fails, ensure that your connection pool settings are correct.

The JDBC configuration that you have just created for rtdGroup will be copied to rtdGroup2, after you stop Oracle AS, as follows:

  • In OAS_HOME/opmn/bin, run opmnctl.exe stopall

13.9.7 Setting Server Properties

To set server properties, edit the file OAS_HOME/opmn/conf/opmn.xml.

For each rtd instance, perform the following tasks:

13.9.7.1 Adjusting Start Parameters

To adjust start parameters, perform the following steps:

  1. Add the following to the start parameters, all on one line:

    • -Drtd.instanceName=rtd_1_1 -DSDGroupName=rtdDon -DRestrictClusterMembers=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12351 -Djava.net.preferIPv4Stack=true

    For rtd.instanceName, use the appropriate OC4J instance name (rtd_1_1, rtd_1_2, and so on). If you are not using the suggested instance name convention (rtd_<host_number>_<instance_within_host>), use any alphanumeric string that is a valid file name, with no space or special characters.

    For SDGroupName, use the same name for all OC4J instances in the cluster, across all hosts. Ensure that the name uses alphanumeric characters without spaces or punctuation.

    For jmxremote.port, use a distinct port for each instance in this host.

    Tip:

    Let the last digit of the port (as in the examples 12351, 12352, 12353, and so on) represent the instance number within the port.

    Note that the jmx properties are optional. If you prefer using Enterprise Manager to access the OracleRTD MBeans instead of JConsole, do not add the following properties:

    • -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12351

  2. Reduce memory.

    You may want to let each OC4J instance start with less memory, including j2ee/home, the one that runs ascontrol.

    Add or change the following options to the java start options, in the same string as the system properties listed in step 1 of this section:

    • -Xmx1024M

      -Xms128M

      -XX:MaxPermSize=128M

  3. Disable Learning Service or Decision Service.

    Note:

    This step is optional at this point, because you can perform the same task through JConsole after starting the Oracle RTD instances, as described in Section 13.9.13, "Disabling Certain Oracle RTD Services."

    If you choose to disable Learning Service or Decision Service through system properties, add the following properties to opmn.xml:

    • -DLearningServiceEnabled=false-DDecisionServiceEnabled=false

13.9.7.2 Changing Web-Site

Change the referenced web-site from default-web-site to rtd-web-site. For example:

  • <port id="rtd-web-site" range="12501-12600" protocol="ajp"/>

13.9.7.3 Checking Process Group

Ensure that opmn.xml has the right group specification for each OC4J instance.

The last element inside <process-type> is the process-set element. Check that the process-set id value is the same as the OC4J group name, as in the following example:

  • <process-set id="rtdGroup" numprocs="1"/>

13.9.8 Creating Oracle AS RTD Data Source

For each of the OC4J instances in rtdGroup, you should see a file:

OAS_HOME/j2ee/OC4J_INSTANCE/config/data-sources.xml

These should have been created in the previous procedures, and contain something similar to the following:

<?xml version = '1.0' encoding = 'UTF-8'?>

<data-sources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/data-sources-10_1.xsd" schema-major-version="10" schema-minor-version="1">

<managed-data-source connection-pool-name="RTDConnectionPool" jndi-name="jdbc/SDDS" name="RTD_DS"/>

<connection-pool name="RTDConnectionPool">

<connection-factory factory-class="com.microsoft.sqlserver.jdbc.SQLServerDriver" user="userName" password="myPassword" url="jdbc:sqlserver://myhost:1433;databaseName=mydb"/>

</connection-pool>

</data-sources>

Copy one of these to the OC4J instances in the other OC4J group, rtdGroup2.

13.9.9 Editing OC4J Instance Configurations

For each OC4J instance, perform the following tasks:

13.9.9.1 Editing server.xml

In the file OAS_HOME/j2ee/OC4J_INSTANCE/config/server.xml, change:

  • <web-site default="true" path="./default-web-site.xml" />

to

  • <web-site default="true" path="./rtd-web-site.xml" />

13.9.9.2 Creating rtd-web-site.xml

To create rtd-web-ste.xml, perform the following steps:

  1. Create the file OAS_HOME/j2ee/OC4J_INSTANCE/config/rtd-web-site.xml, by copying default-web-site.xml in the same directory.

  2. Delete all of its <web-app> elements (others will be added automatically when you deploy OracleRTD).

  3. Leave the port set to 0, since this will be adjusted automatically when OPMN starts the OC4J instance.

  4. Leave the protocol set to ajp. This is required for clustering.

13.9.10 Deploying RTD.ear into rtdGroup as OracleRTD

To deploy RTD.ear into rtdGroup as OracleRTD, perform the following steps:

  1. Start Oracle AS, by running OAS_HOME/opmn/bin/opmnctl.exe startall.

  2. Login to Enterprise Manager: http://localhost:7777/em.

  3. Drill into the OC4J group rtdGroup.

  4. Select its Application tab.

  5. Click Deploy.

  6. Select RTD.ear in the location where you unzipped it.

    The deployment plan strategy to adopt is as follows:

    • For Oracle RTD Type 1 and Type 2 clusters, let the deployment create its own deployment plan

    • For Oracle RTD Type 3 clusters, let the first-time deployment create its own deployment plan, save the plan, then use it on subsequent deployments

  7. Click Next to upload RTD.ear.

  8. Enter OracleRTD as the application name.

    This is required because the file orion-application.xml provided with Oracle RTD refers to its containing directory as OracleRTD.

  9. Select rtd-web-site as the target web-site.

    Note:

    This is the main point at which the deployment varies according to cluster type, where you need to specify which Oracle RTD services need to be dispatchable through the public OHS (Oracle HTTP Server) port.

    The requirement is for OHS (Oracle HTTP Server) to dispatch requests from Decision Center (/ui), Studio (/soap), and Decision Service clients (/rtis) to the group where these services are activated. To achieve this, the next step sets up alternative web context roots for the deactivated services.

  10. For type 1 and 2 clusters, leave the web context-roots as they are, namely:

    • /ui, /ls, /soap, /schema, /rtis

    For type 3 (DS only) clusters, during the first-time deployment, adjust the proposed web context-roots by appending "-ds" to each of them except /rtis, as follows:

    • /ui-ds, /ls-ds, /soap-ds, /schema-ds, /rtis

    Save the deployment plan for subsequent deployments.

    Tip:

    Give the plan a name that indicates its function, such as dsPlan.dat for a DS-only cluster.
  11. Click Next to accept the deployment plan.

  12. Click Next to start the deployment.

13.9.11 Deploying RTD.ear into rtdGroup2 as OracleRTD2

The steps here are the same as for rtdGroup, except for the following:

  • The web-app bindings will be different.

  • The application name must different (OracleRTD2 versus OracleRTD) because OHS keys its routing instructions based on application name.

  1. In the Enterprise Manager, drill into OC4J group rtdGroup2.

  2. Select its Application tab.

  3. Click Deploy.

  4. Select RTD.ear in the location where you unzipped it.

  5. Click Next to upload RTD.ear.

  6. Enter OracleRTD2 as the application name.

  7. Select rtd-web-site as the target web-site.

  8. Click Next.

  9. Edit the web context-roots as follows (for first-time deployment only):

    For Type 2 (LS only) clusters:

    1. Adjust the proposed web context-roots by appending "-2" to each of them:

      /ui-2, /ls-2, /soap-2, /schema-2, /rtis-2

    2. Edit the deployment plan:

      Change the classpath settings to refer to the new application name ${oracle.j2ee.home}/OracleRTD2 instead of ${oracle.j2ee.home}/OracleRTD.

    3. Save the deployment plan for subsequent deployments, for example, naming it lsPlan.dat.

    For Type 3 (DC and LS) clusters:

    1. Adjust the proposed web context-roots by appending "-2" to /rtis:

      /ui, /ls, /soap, /schema, /rtis-2

    2. Edit the deployment plan:

      Change the classpath settings to refer to the new application name ${oracle.j2ee.home}/OracleRTD2 instead of ${oracle.j2ee.home}/OracleRTD.

    3. Save the deployment plan for subsequent deployments, for example, naming it dcLsPlan.dat.

  10. Click Next to start the deployment.

13.9.12 Verifying the Configuration

To verify the configuration, perform the following steps:

  1. Stop Oracle AS.

  2. Verify rtd-web-site.xml.

    rtdGroup Verification

    In the rtd_1_1 and rtd_1_2 instances, there should be web-app entries bound to /ui, /schema, and so on:

    <?xml version="1.0"?>

    <web-site xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/web-site-10_0.xsd" port="12552" protocol="ajp13" display-name="OC4J 10g (10.1.3) RTD Web Site" schema-major-version="10" schema-minor-version="0" >

    <default-web-app application="default" name="defaultWebApp" root="/j2ee" />

    <web-app application="OracleRTD" name="ui" load-on-startup="true" root="/ui" />

    <web-app application="OracleRTD" name="schema" load-on-startup="true" root="/schema" />

    <web-app application="OracleRTD" name="soap" load-on-startup="true" root="/soap" />

    <web-app application="OracleRTD" name="ls" load-on-startup="true" root="/ls" />

    <web-app application="OracleRTD" name="rtis" load-on-startup="true" root="/rtis" />

    <access-log path="../log/default-web-access.log" split="day" />

    </web-site>

    rtdGroup2 Verification

    In the rtd_1_3 and rtd_1_4 instances, there should be web-app entries bound to /ui-ls, /schema-ls, and so on:

    <?xml version="1.0"?>

    <web-site xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/web-site-10_0.xsd" port="12553" protocol="ajp13" display-name="OC4J 10g (10.1.3) RTD Web Site" schema-major-version="10" schema-minor-version="0" >

    <default-web-app application="default" name="defaultWebApp" root="/j2ee" />

    <web-app application="OracleRTD" name="ui" load-on-startup="true" root="/ui-ls" />

    <web-app application="OracleRTD" name="schema" load-on-startup="true" root="/schema-ls" />

    <web-app application="OracleRTD" name="soap" load-on-startup="true" root="/soap-ls" />

    <web-app application="OracleRTD" name="ls" load-on-startup="true" root="/ls-ls" />

    <web-app application="OracleRTD" name="rtis" load-on-startup="true" root="/rtis-ls" />

    <access-log path="../log/default-web-access.log" split="day" />

    </web-site>

    The port assignment is not important, as it happens automatically.

13.9.13 Disabling Certain Oracle RTD Services

Use JConsole or other MBean browsers to disable Decision Service or Learning Service in certain Oracle RTD instances according to the cluster type. This only needs to be done when changing cluster types. It is not necessary if redeploying Oracle RTD into the same cluster type.

Note:

The instructions for type 2 and type 3 clusters are currently the same. So, if you switch from a type 2 to a type 3 cluster, or vice versa, no actions are required in this section.
  1. Start JConsole and connect to each instance. For each instance, do the following:

    Cluster Type 1: No changes are required

    Cluster Type 2

    1. rtdGroup (runs DS and DC)

      For instances rtd_1_1, rtd_1_2, rtd_2_1, rtd_2_2, disable LS:

      - Navigate: OracleRTD > SDPropertyManager > Misc

      - Set: LearningServiceEnabled = false

    2. rtdGroup2 (runs LS)

      For instances rtd_1_3, rtd_1_4, rtd_2_3, rtd_2_4, disable DS:

      - Navigate: OracleRTD > SDPropertyManager > Misc

      - Set: DecisionServiceEnabled = false

    Cluster Type 3

    1. rtdGroup (runs DS)

      For instances rtd_1_1, rtd_1_2, rtd_2_1, rtd_2_2, disable LS:

      - Navigate: OracleRTD > SDPropertyManager > Misc

      - Set: LearningServiceEnabled = false

    2. rtdGroup2 (runs DC and LS)

      For instances rtd_1_3, rtd_1_4, rtd_2_3, rtd_2_4, disable DS:

      - Navigate: OracleRTD > SDPropertyManager > Misc

      - Set: DecisionServiceEnabled = false

  2. Set Decision Service Address.

    For Type 3 clusters, where DC and DS are not co-located, use JConsole to set the cluster's Decision Service address, so that DC can send test events from its Interactive Integration Map view.

    - Navigate: OracleRTD > SDPropertyManager > Misc

    - Set: DecisionServiceAddress = http://myHost.com:8080

13.9.14 Joining the Clusters on Host1 and Host2

In this example, start first with host2 first, then host1, so that host1 will be running ascontrol at the end of the process.

13.9.14.1 Combining Two Separate Oracle Application Server Installations Into a Cluster

Suppose you installed two separate Oracle Application Server instances (as1 on Host1 and as2 on Host2) and during the installation of both instances, you selected the option to include an Administration OC4J. You did not, however, select the option to define a multicast address and join an existing Oracle Application Server cluster.

In this scenario, each Oracle Application Server instance is running a separate Application Server Control.

To combine these two instances into one cluster topology so they are managed by one Cluster Topology page, which is displayed by one active Application Server Control, perform the following steps.

  1. Open your Web browser and enter the Application Server Control URL for as1.

  2. Log in to the Application Server Control, and scroll to the Administration section of the Cluster Topology page.

  3. Click Topology Network Configuration to display the Topology Network Configuration page.

    Note:

    On the Topology Network Configuration page:
    • The current application server instance is selected in the View By field.

    • The fields in the Topology section of the page are empty. This indicates that the application server instance does not belong to a cluster.

  4. Select Configuring Dynamic Node Discovery Using Multicast and enter a multicast address and port number in the Discover field.

    For example: 229.1.2.50:5555

    The multicast address must be within the following range: 224.0.0.1 to 239.255.255.255. The port can be any four-digit number. In the configuration file, the multicast address must be preceded by an asterisk (*), but when you enter the address in this field, Application Server Control automatically includes the asterisk if you do not specify it here.

  5. Make a note of the multicast address and port, and then click Apply.

  6. Enter the Application Server Control URL for as2.

  7. Repeat steps 2 through 5 for as2.

    Be sure to use the same multicast address and port that you used when you configured as1.

  8. Navigate to the Cluster Topology page.

    Note that both Oracle Application Server instances now appear on the Cluster Topology page.

  9. Click Expand All and then select the ascontrol application (which represents the Application Server Control) that is deployed to the as1 instance.

  10. Click Stop to stop the selected ascontrol application.

    Note: Do not stop the active ascontrol application, but stop any other ascontrol applications that are up and running. There is no need to run two Application Server Control applications in the same cluster.

13.10 Setting up a JBoss Cluster

This section describes the JBoss clustering install instructions, assuming that you have two machines to be set up as follows:

The rest of this section consists of the following topics:

13.10.1 Installing the Oracle RTD Software

To install the Oracle RTD software, perform the following steps:

  1. On Machine #1, install Oracle RTD from rtd_3.0.0_jboss_win.zip (or rtd_3.0.0_jboss_unix.cpio if on Linux/Unix) to RTD_HOME, for example, C:\OracleBI\RTD.

  2. On Machine #2, create the following directory: RTD_HOME\lib\jdbc\.

  3. On Machine #1, copy the jars in RTD_HOME\lib\jdbc\ to RTD_HOME\lib\jdbc\ on Machine #2.

  4. On Machine #2, create the following directory: RTD_HOME\etc\ssl\.

  5. On Machine #1, copy the file RTD_HOME\etc\ssl\sdserver.keystore to RTD_HOME\etc\ssl\ on Machine #2.

  6. On Machine #2, create the following directory: RTD_HOME\log\.

13.10.2 Initializing the Oracle RTD Database

To initialize the Oracle RTD database on Machine #1, run the following script:

13.10.3 Setting Up and Installing the Apache Software

This section consists of the following topics:

13.10.3.1 Installing the Apache Server and Downloading mod_jk

To install the Apache server and to download mod_jk, perform the following steps:

  1. On Machine #1, download Apache HTTP Server 2.2.6 (apache_2.2.6-win32-x86-no_ssl.msi) from http://archive.apache.org/dist/httpd/binaries/win32/.

  2. On Machine #1 in the cluster, install Apache HTTP Server 2.2.6 to APACHE_INSTALL_DIR, for example, C:\Program Files\.

    Terminology:

    From this point on, APACHE_HOME_DIR refers to APACHE_INSTALL_DIR\Apache Software Foundation\Apache2.2
  3. Download Mod JK 1.2 (mod_jk-1.2.27-httpd-2.2.10.so) from http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.27/.

  4. Rename it to mod_jk.so and copy it to APACHE_HOME_DIR\modules\.

13.10.3.2 Configuring the Apache Server

To configure the Apache server, perform the following steps:

  1. On Machine #1, open APACHE_HOME_DIR\conf\httpd.conf.

    For example: C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

  2. Change the port for the property Listen to 8080.

    For example: Listen 8080

  3. Change the port for the property ServerName to 8080.

    For example: ServerName myHostName.us.oracle.com:8080

  4. At the end of httpd.conf, add the following lines:

    # Include mod_jk's specific configuration file
    Include conf/mod_jk.conf
    
  5. Save the file httpd.conf.

13.10.3.3 Creating the File mod_jk.conf

To create the file mod_jk.conf, perform the following steps:

  1. On Machine #1, create a new text file called mod_jk.conf.

  2. Add the following lines to mod_jk.conf:

    # Load mod_jk module
    # Specify the filename of the mod_jk lib
    LoadModule jk_module modules/mod_jk.so
     
    # Where to find workers.properties
    JkWorkersFile conf/workers.properties
     
    # Where to put jk logs
    JkLogFile logs/mod_jk.log
     
    # Set the jk log level [debug/error/info]
    JkLogLevel info
     
    # Select the log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
     
    # JkOptions indicates to send SSK KEY SIZE
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
     
    # JkRequestLogFormat
    JkRequestLogFormat "%w %V %T"
     
    # Mount your applications
    JkMount /application/* loadbalancer
     
    # You can use external file for mount points.
    # It will be checked for updates each 60 seconds.
    # The format of the file is: /url=worker
    # /examples/*=loadbalancer
    JkMountFile conf/uriworkermap.properties
     
    # Add shared memory.
    # This directive is present with 1.2.10 and
    # later versions of mod_jk, and is needed for
    # for load balancing to work properly
    JkShmFile logs/jk.shm
     
    # Add jkstatus for managing runtime data
    <Location /jkstatus/>
     JkMount status
     Order deny,allow
     Deny from all
     Allow from 127.0.0.1
    </Location>
    
  3. Save the file to APACHE_HOME_DIR\conf\mod_jk.conf.

    For example: C:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf

13.10.3.4 Creating the File uriworkermap.properties

To create the file uriworkermap.properties, perform the following steps:

  1. On Machine #1, create a new text file called uriworkermap.properties.

  2. Add the following lines to uriworkermap.properties:

    # Simple worker configuration file
    # Mount the Servlet context to the ajp13 worker
    /jmx-console=loadbalancer
    /jmx-console/*=loadbalancer
    /web-console=loadbalancer
    /web-console/*=loadbalancer
     
    /ui=loadbalancer
    /ui/*=loadbalancer
    /schema=loadbalancer
    /schema/*=loadbalancer
    /soap=loadbalancer
    /soap/*=loadbalancer
    /rtis=loadbalancer
    /rtis/*=loadbalancer
    /ls=loadbalancer
    /ls/*=loadbalancer
    
  3. Save the file to APACHE_HOME_DIR\conf\uriworkermap.properties.

    For example: C:\Program Files\Apache Software Foundation\Apache2.2\conf\uriworkermap.properties

13.10.3.5 Creating the File workers.properties

To create the file workers.properties, perform the following steps:

  1. On Machine #1, create a new text file called workers.properties.

  2. Add the following lines to workers.properties, after making the two substitutions:

    1. Replace MACHINE_1_HOST with the Machine #1 host URL or IP address, for example, machine1.mydomain.com

    2. Replace MACHINE_2_HOST with the Machine #2 host URL or IP address, for example, machine2.mydomain.com

    # Define list of workers that will be used
    # for mapping requests
    worker.list=loadbalancer,status
     
    # Define Node1
    # modify the host as your host IP or DNS name.
    worker.node1.port=8009
    worker.node1.host=MACHINE_1_HOST
    worker.node1.type=ajp13
    worker.node1.lbfactor=1
     
    # Define Node2
    # modify the host as your host IP or DNS name.
    worker.node2.port=8009
    worker.node2.host=MACHINE_2_HOST
    worker.node2.type=ajp13
    worker.node2.lbfactor=1
     
    # Load-balancing behaviour
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=node1,node2
    worker.loadbalancer.sticky_session=1
    #worker.list=loadbalancer
     
    # Status worker for managing load balancer
    worker.status.type=status
    
  3. Save the file to APACHE_HOME_DIR\conf\workers.properties.

    For example: C:\Program Files\Apache Software Foundation\Apache2.2\conf\workers.properties

13.10.3.6 Starting the Apache HTTP Server

If the Apache Server has already been started, you can skip this section.

Before you start the Apache HTTP Server, check that the Apache 2.2 service has been installed. If it has not been installed, run the following command from the directory C:\Program Files\Apache Software Foundation\Apache2.2\bin:

  • httpd -k install -n "Apache2.2"

To start the Apache HTTP Server on Machine #1, perform either of the following tasks:

  • Navigate the menu path: Start > All Programs > Apache HTTP Server 2.2.6 > Control Apache Server > Start

  • From the directory C:\Program Files\Apache Software Foundation\Apache2.2\bin, run the command: httpd -k start

The logs will be in C:\Program Files\Apache Software Foundation\Apache2.2\logs\.

Note:

To stop the Apache HTTP Server, perform either of the following:
  • Navigate the menu path: Start > All Programs > Apache HTTP Server 2.2.6 > Control Apache Server > Stop

  • From the directory C:\Program Files\Apache Software Foundation\Apache2.2\bin, run the command: httpd -k stop

13.10.4 Installing the JBoss Software

To install the JBoss software, perform the following steps:

  1. On Machine #1, install JBoss EAP 4.3.

    The directory into which you installed JBoss will be referred to as JBOSS_HOME.

    For example, C:\Program Files\EnterprisePlatform-4.3.0.GA_CP03, C:\jboss-eap-4.3, or d:\genesis\jboss-eap-4.3

  2. Repeat step 1 for Machine #2 in the cluster.

13.10.5 Configuring the JBoss Software

To configure the JBoss software, you must perform essentially the same operations on both Machine #1 and Machine #2, as described in the following sections.

13.10.5.1 Enabling the JBoss Default User

  1. On Machine #1, open the file JBOSS_HOME/jboss-as/server/all/conf/props/jmx-console-users.properties.

  2. Uncomment the sample user/password (if needed): #admin=admin.

    You can create any user name and password, for example: charles=pswd.

  3. Save the file.

  4. Repeat steps 1-3 on Machine #2.

13.10.5.2 Setting JBoss HTTP and HTTPS Ports

  1. On Machine #1, open the file JBOSS_HOME/jboss-as/server/all/deploy/jboss-web.deployer/server.xml.

  2. For HTTP, near the top of the file at "<Connector port="8080" ...", change the port to 8081, and add the following line after the "enableLookups" line:

    URIEncoding="UTF-8"
    

    For example:

    <Connector port="8081" address="${jboss.bind.address}"    
     maxThreads="250" maxHttpHeaderSize="8192"
     emptySessionPath="true" protocol="HTTP/1.1"
     enableLookups="false" redirectPort="8443" acceptCount="100"
     URIEncoding="UTF-8"
     connectionTimeout="20000" disableUploadTimeout="true" />
    
  3. For HTTPS, near the top of the file, replace:

    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
       maxThreads="150" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS" />
    -->      
    

    with:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
       maxThreads="150" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS"
       minSpareThreads="5" maxSpareThreads="15"
       address="${jboss.bind.address}"                   keystoreFile="${rtd.home.dir}/etc/ssl/sdserver.keystore"
               URIEncoding="UTF-8"
       keystorePass="tc-ssl" />
    
  4. Save the file.

  5. Repeat steps 1-4 on Machine #2.

13.10.5.3 Setting JBoss Web Server to User Java 1.5 JVM

  1. On Machine #1, open JBOSS_HOME/jboss-as/server/all/deploy/jboss-web.deployer/conf/web.xml.

  2. Locate:

    <servlet>
       <servlet-name>jsp</servlet-name>
    

    and add the following servlet init parameters, if they do not already exist in the file:

    <init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.5</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.5</param-value>
    </init-param>
    
  3. Save the file.

  4. Repeat steps 1-3 on Machine #2.

13.10.5.4 Adding Oracle RTD Logging to JBoss Server

  1. On Machine #1, open JBOSS_HOME/jboss-as/server/all/conf/jboss-log4j.xml.

  2. Locate the section starting with the following lines:

    <!-- ============================== -->
    <!-- Append messages to the console -->
    <!-- ============================== -->
    

    and add the following at the end of the above section:

    <!-- ============================================== -->
    <!-- START: Oracle RTD Appender Message Definitions -->
    <!-- ============================================== -->
     
    <appender name="SIGMA" 
       class="com.sigmadynamics.util.SDRollingZipFileAppender">
       <param name="Threshold" value="DEBUG"/>
       <param name="File" value="${rtd.log.file}"/>
       <param name="Append" value="true"/>
       <param name="MaxFileSize" value="20000KB"/>
       <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] %m%n"/>
          <!-- <param name="ConversionPattern" value="%d{{HH:mm:ss,SSS}} [%t] %-5p 
          [%c{1}] %m%n"/> -->
       </layout>
       <filter class="org.jboss.logging.filter.TCLFilter">
          <param name="AcceptOnMatch" value="true"/>
          <param name="DeployURL" value="RTD.ear"/>
       </filter>
       <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    </appender>
     
    <appender name="ENG_TRACE_FILE" 
       class="com.sigmadynamics.util.SDRollingZipFileAppender">
       <param name="Threshold" value="TRACE"/>
       <param name="File" value="${rtd.log.file}.trace"/>
       <param name="Append" value="true"/>
       <param name="MaxFileSize" value="20000KB"/>
       <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%d{{HH:mm:ss,SSS}} [%t] %m%n"/>
          <!-- <param name="ConversionPattern" value="%d{{HH:mm:ss,SSS}} [%t] %-5p 
          [%c{1}] %m%n"/> -->
       </layout>
    </appender>
     
    <!-- ============================================== -->
    <!-- END: Oracle RTD Appender Message Definitions   -->
    <!-- ============================================== -->
    
  3. Locate the section starting with the following lines:

    <!-- ====================== -->
    <!-- More Appender examples -->
    <!-- ====================== -->
    

    and add the following at the end of the above section:

    <!-- ============================================== -->
    <!-- START: Oracle RTD Limit Category Definitions   -->
    <!-- ============================================== -->
     
    <!--
    Messages logged to this TRACE category go only to the trace file, since its
    additivity flag is false. This is only used temporarily by RTD engineers for
    debugging low-level stuff like request queuing and load shunting. It's a place
    to direct topical information while avoiding all the stuff that's going to the
    normal log file.
    -->
     
    <category name="ENG_TRACE" additivity="false">
       <priority value="DEBUG"/>
       <appender-ref ref="ENG_TRACE_FILE"/>
    </category>
     
    <category name="com.sigmadynamics.server.SDDistributedHashtable">
       <priority value="ERROR"/>
    </category>
     
    <category name="com.sigmadynamics.client">
       <priority value="ERROR"/>
    </category>
     
    <category name="com.sigmadynamics">
       <priority value="DEBUG"/>
       <!-- <priority value="TRACE#com.sigmadynamics.util.XLevel"/> -->
    </category>
     
    <category name="org.jboss.messaging.core.impl.JDBCSupport">
       <priority value="INFO"/>
    </category>
     
    <category name="org.jboss.jms.server.plugin.JDBCJMSUserManager">
       <priority value="INFO"/>
    </category>
     
    <category name="org.jgroups.protocols">
       <priority value="ERROR"/>
    </category>
     
    <category name="sigmadynamics.application">
       <priority value="DEBUG"/>
    </category>
     
    <category name="request.trace.sigmadynamics.application">
       <priority value="TRACE#com.sigmadynamics.util.XLevel"/>
    </category>
     
    <category name="request.log.sigmadynamics.application">
       <priority value="DEBUG"/>
    </category>
     
    <!-- ============================================== -->
    <!-- END: Oracle RTD Limit Category Definitions     -->
    <!-- ============================================== -->
    
  4. Locate:

    <!-- ======================= -->
    <!-- Setup the Root category -->
    <!-- ======================= -->
    

    and add the following line to <root>:

    <appender-ref ref="SIGMA"/>
    
  5. Save the file.

  6. Repeat steps 1-5 on Machine #2.

13.10.5.5 Copying Oracle RTD log4j Jar to JBoss

Note:

This adds Oracle RTD classes for displaying Oracle RTD server logs.
  1. On Machine #1, copy RTD_HOME/package/jboss/rtdlog4j.jar to JBOSS_HOME/jboss-as/server/all/lib/.

  2. Repeat step 1 on Machine #2 by copying over rtdlog4j.jar to Machine #2.

13.10.5.6 Copying New Version of the Eclipse JDT Compiler to JBoss Web Server Directory

Note:

This overrides the older version of the Eclipse JDT compiler jsaper-jdt.jar.

See JBoss Bug #JBPAPP-869: https://jira.jboss.org/jira/browse/JBPAPP-869.

  1. On Machine #1, copy RTD_HOME/package/jboss/ecj-3.4.jar to JBOSS_HOME/jboss-as/server/all/deploy/jboss-web.deployer/.

  2. Repeat step 1 on Machine #2 by copying over ecj-3.4.jar to Machine #2.

13.10.5.7 Copying Oracle RTD jgroups Jar to JBoss

Note:

This replaces JBoss jgroups version 2.4 with Oracle RTD jgroups version 2.6.1.
  1. On Machine #1, rename the file JBOSS_HOME/jboss-as/server/all/lib/jgroups.jar to jgroups.jar.original.

  2. Copy RTD_HOME/lib/jgroups-all2.6.1.jar to the directory JBOSS_HOME/jboss-as/server/all/lib/, and rename the file in the receiving directory to jgroups.jar.

  3. Repeat steps 1-2 on Machine #2 by copying over jgroups-all2.6.1.jar to Machine #2.

13.10.5.8 Configuring JBoss to Add Identifiers to HTTP Session IDs

  1. On Machine #1, open JBOSS_HOME/jboss-as/server/all/deploy/jboss-web.deployer/META-INF/jboss-service.xml.

  2. Locate:

    <attribute name="UseJK">
    

    and set the value to true:

    <attribute name="UseJK">true</attribute>
    
  3. Save the file.

  4. Repeat steps 1-3 on Machine #2.

13.10.5.9 Giving Identities to JBoss Servers to Match workers.properties Entries

  1. On Machine #1, open JBOSS_HOME/jboss-as/server/all/deploy/jboss-web.deployer/server.xml.

  2. Locate:

    <Engine name="jboss.web"
    

    and add an attribute jvmRoute as follows, with value node1 for Machine #1 (and later node2 for Machine #2):

    <Engine name="jboss.web"
      defaultHost="localhost" jvmRoute="node1">
      ......
    </Engine>
    
  3. Save the file.

  4. Repeat steps 1-3 on Machine #2.

13.10.5.10 Setting Up Oracle RTD SDDS Data Source and Copying to JBoss Deploy Directory

  1. On Machine #1, in RTD_HOME/package/jboss, choose your supported database and open the file appropriate to that database, as follows:

    • For DB2: rtd-db2-ds.xml

    • For Oracle: rtd-oracle-ds.xml

    • For SQL Server: rtd-sqlserver-ds.xml

  2. Replace the following:

    • ${DB_SERVER} with your database server

      For example: localhost

      Note:

      If the database is on a SQL Server named instance, specify the name of your database server using the format host_name\instance_name.
    • ${DB_PORT} with your database port

      For example: 50000 for db2, 1521 for oracle, 1433 for sqlserver

    • ${DB_NAME} with your database name

      For example: RTD for db2 and sqlserver, orcl for oracle

    • ${DB_USER} with your database user name

      For example: jsmith

    • ${DB_PASSWORD} with your database user password

  3. Save the file and copy it to JBOSS_HOME/jboss-as/server/all/deploy/.

  4. Repeat step 3 on Machine #2 by copying over the appropriate "-ds.xml" file to Machine #2.

13.10.5.11 Modifying JBoss Start Script

On Windows

  1. On Machine #1, open JBOSS_HOME/jboss-as/bin/run.bat.

  2. If you modified run.bat by applying the changes described in Section 6.1.4.1, "Modifying the Windows JBoss Start Script" in Oracle Real-Time Decisions Installation and Administration Guide, then revert those changes.

  3. Near the top of the file, add the following "set" lines, after making these substitutions:

    • Replace RTD_HOME_TO_REPLACE with your actual value, for example, C:\OracleBI\RTD

    • Replace MACHINE_1_IP_ADDR with Machine #1 IP address, for example, 10.234.7.2

    • Replace MACHINE_2_IP_ADDR with Machine #2 IP address, for example, 10.234.7.3

    Notes:

    1. You may need to replace some of the cluster-specific entries for your cluster configuration, such as -DJGroupsMulticastPort and -DJGroupsMulticastAddress. For more information on the configuration properties, see Chapter 13.3, "Cluster-Specific Configuration Properties" of Oracle Real-Time Decisions Installation and Administration Guide.
    2. To make the cluster unique, that is, to create an independent JBoss cluster on the network, change the values of the parameters RTD_JGROUPS_MULTICAST_ADDR and SDGroupName.

      For example, replace the equivalent lines in the following script with:

      set RTD_JGROUPS_MULTICAST_ADDR=228.64.16.55
      set JAVA_OPTS=%JAVA_OPTS% -DSDGroupName=OracleRtdCluster2
      
    set RTD_HOME=RTD_HOME_TO_REPLACE
    set RTD_CLUSTER_MEMBERS=MACHINE_1_IP_ADDR;MACHINE_2_IP_ADDR
    set RTD_JGROUPS_MULTICAST_ADDR=228.64.16.54
    
    set JAVA_OPTS=-Djboss.partition.name=OracleRtdPartition
    set JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.net.protocol.file.decodeFilePaths=true
    set JAVA_OPTS=%JAVA_OPTS% -Djboss.partition.udpGroup=%RTD_JGROUPS_MULTICAST_ADDR%
    set JAVA_OPTS=%JAVA_OPTS% -Djboss.hapartition.mcast_port=45501
    set JAVA_OPTS=%JAVA_OPTS% -Dhibernate.connection.release_mode=auto
    set JAVA_OPTS=%JAVA_OPTS% -Dbind.address=localhost
    
    set JAVA_OPTS=%JAVA_OPTS% -Dnologging=true
    set JAVA_OPTS=%JAVA_OPTS% -DSDLoggingPriority=DEBUG
    set JAVA_OPTS=%JAVA_OPTS% -DJGroupsMulticastAddress=%RTD_JGROUPS_MULTICAST_ADDR% 
    set JAVA_OPTS=%JAVA_OPTS% -DJGroupsMulticastPort=45502
    set JAVA_OPTS=%JAVA_OPTS% -DJGroupsDSMulticastAddress=%RTD_JGROUPS_MULTICAST_ADDR%
    set JAVA_OPTS=%JAVA_OPTS% -DJGroupsDSMulticastPort=45503
    set JAVA_OPTS=%JAVA_OPTS% -DSDGroupName=OracleRtdCluster
    
    set JAVA_OPTS=%JAVA_OPTS% -DTrustedClusterMembers=%RTD_CLUSTER_MEMBERS%
    
    set JAVA_OPTS=%JAVA_OPTS% -Drtd.home.dir=%RTD_HOME%
    set JAVA_OPTS=%JAVA_OPTS% -Drtd.log.file=%RTD_HOME%/log/server.log
    set JAVA_OPTS=%JAVA_OPTS% -DSDLoggingFileName=%RTD_HOME%/log/server.log
    set JAVA_OPTS=%JAVA_OPTS% -DDSPerfCounterLogFile=%RTD_HOME%/log/ds_perf.cvs 
    
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote=true
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=12345
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.ssl=false
    
    set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true
    
    set JBOSS_CLASSPATH=%RTD_HOME%/lib/jdbc/bijdbc14.jar
    set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%RTD_HOME%/lib/jdbc/sqljdbc.jar
    set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%RTD_HOME%/lib/jdbc/db2jcc_license_cu.jar
    set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%RTD_HOME%/lib/jdbc/db2jcc.jar
    set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%RTD_HOME%/lib/jdbc/ojdbc14.jar
    
  4. Save the file.

  5. Repeat steps 1-3 on Machine #2.

On Unix

  1. On Machine #1, open JBOSS_HOME/jboss-as/bin/run.sh.

  2. If you modified run.sh by applying the changes described in Section 6.1.4.2, "Modifying the Unix JBoss Start Script" in Oracle Real-Time Decisions Installation and Administration Guide, then revert those changes.

  3. Near the top of the file, add the following "set" lines, after making these substitutions:

    • Replace JAVA_HOME_TO_REPLACE with your actual value

    • Replace RTD_HOME_TO_REPLACE with your actual value, for example, C:\OracleBI\RTD

    • Replace MACHINE_1_IP_ADDR with Machine #1 IP address, for example, 10.234.7.2

    • Replace MACHINE_2_IP_ADDR with Machine #2 IP address, for example, 10.234.7.3

    Notes:

    1. You may need to replace some of the cluster-specific entries for your cluster configuration, such as -DJGroupsMulticastPort and -DJGroupsMulticastAddress. For more information on the configuration properties, see Chapter 13.3, "Cluster-Specific Configuration Properties" of Oracle Real-Time Decisions Installation and Administration Guide.
    2. To make the cluster unique, that is, to create an independent JBoss cluster on the network, change the values of the parameters RTD_JGROUPS_MULTICAST_ADDR and SDGroupName.

      For example, replace the equivalent lines in the following script with:

      RTD_JGROUPS_MULTICAST_ADDR=228.64.16.55
      JAVA_OPTS="$JAVA_OPTS -DSDGroupName=OracleRtdCluster2"
      
    JAVA_HOME="JAVAHOME_TO_REPLACE"
    export JAVA_HOME
    
    RTD_HOME="RTD_HOME_TO_REPLACE"
    RTD_CLUSTER_MEMBERS=MACHINE_1_IP_ADDR;MACHINE_2_IP_ADDR
    RTD_JGROUPS_MULTICAST_ADDR=228.64.16.54
    
    JAVA_OPTS=-Djboss.partition.name=OracleRtdPartition
    JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.net.protocol.file.decodeFilePaths=true"
    JAVA_OPTS="$JAVA_OPTS -Djboss.partition.udpGroup=$RTD_JGROUPS_MULTICAST_ADDR"
    JAVA_OPTS="$JAVA_OPTS -Djboss.hapartition.mcast_port=45501"
    JAVA_OPTS="$JAVA_OPTS -Dhibernate.connection.release_mode=auto"
    JAVA_OPTS="$JAVA_OPTS -Dbind.address=localhost"
    
    JAVA_OPTS="$JAVA_OPTS -Dnologging=true"
    JAVA_OPTS="$JAVA_OPTS -DSDLoggingPriority=DEBUG"
    JAVA_OPTS="$JAVA_OPTS -DJGroupsMulticastAddress=$RTD_JGROUPS_MULTICAST_ADDR"
    JAVA_OPTS="$JAVA_OPTS -DJGroupsMulticastPort=45502"
    JAVA_OPTS="$JAVA_OPTS -DJGroupsDSMulticastAddress=$RTD_JGROUPS_MULTICAST_ADDR"
    JAVA_OPTS="$JAVA_OPTS -DJGroupsDSMulticastPort=45503"
    JAVA_OPTS="$JAVA_OPTS -DSDGroupName=OracleRtdCluster"
     
    JAVA_OPTS="$JAVA_OPTS -DTrustedClusterMembers=$RTD_CLUSTER_MEMBERS"
     
    JAVA_OPTS="$JAVA_OPTS -Drtd.home.dir=$RTD_HOME"
    JAVA_OPTS="$JAVA_OPTS -Drtd.log.file=$RTD_HOME/log/server.log"
    JAVA_OPTS="$JAVA_OPTS -DSDLoggingFileName=$RTD_HOME/log/server.log"
    JAVA_OPTS="$JAVA_OPTS -DDSPerfCounterLogFile=$RTD_HOME/log/ds_perf.cvs"
     
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
    
    JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
    
    JBOSS_CLASSPATH="$RTD_HOME/lib/jdbc/bijdbc14.jar"
    JBOSS_CLASSPATH="$JBOSS_CLASSPATH:$RTD_HOME/lib/jdbc/sqljdbc.jar"
    JBOSS_CLASSPATH="$JBOSS_CLASSPATH:$RTD_HOME/lib/jdbc/db2jcc_license_cu.jar"
    JBOSS_CLASSPATH="$JBOSS_CLASSPATH:$RTD_HOME/lib/jdbc/db2jcc.jar"
    JBOSS_CLASSPATH="$JBOSS_CLASSPATH:$RTD_HOME/lib/jdbc/ojdbc14.jar"
    
  4. Save the file.

  5. Repeat steps 1-3 on Machine #2.

13.10.5.12 Changing Message Server Server Id on Machine #2

  1. On Machine #2, open JBOSS_HOME/jboss-as/server/all/deploy/jboss-messaging.sar/messaging-service.xml.

  2. Locate the ServerPeerID attribute line, and change the id from 0 to 1 as follows:

    <attribute name = "ServerPeerId>${jboss.messaging.ServerPeerId:1}</attribute>
    
  3. Save the file.

Note:

See JBoss Bug #JBAS-3968 https://jira.jboss.org/jira/browse/JBAS-3968.

13.10.6 Creating Oracle RTD Roles and Users

Before proceeding, create Oracle RTD roles and users in JBoss for each machine in your cluster. See Section 6.3, "Creating Oracle RTD Roles and Users" in Oracle Real-Time Decisions Installation and Administration Guide for more information.

As you follow the instructions in this section, be sure to edit the users.properties file in the all directory rather than the default directory. Specifically, the directory JBOSS_HOME/jboss-as/server/default/conf/users.properties that is mentioned in Section 6.3.1 in Oracle Real-Time Decisions Installation and Administration Guide should be JBOSS_HOME/jboss-as/server/all/conf/users.properties when you are using a clustered environment. Create the file if it does not already exist.

Similarly, you should edit the roles.properties file in the all directory rather than the default directory. In particular, the directory JBOSS_HOME/jboss-as/server/default/conf/roles.properties that is mentioned in Section 6.3.2 in Oracle Real-Time Decisions Installation and Administration Guide should be JBOSS_HOME/jboss-as/server/all/conf/roles.properties when you are using a clustered environment. Create the file if it does not already exist.

13.10.7 Starting the JBoss Application Server

To start the JBoss application server, perform the following tasks:

  1. On Machine #1, open a command window (cmd) and 'cd' to: JBOSS_HOME/jboss-as/bin/.

  2. Start JBoss by entering:

    (On Windows) run.bat --configuration=all --host=0.0.0.0

    (On Unix) run.sh --configuration=all --host=0.0.0.0

  3. Repeat steps 1-2 for Machine #2.

  4. Verify the identity of the IP addresses of Machine #1 and Machine #2 in their respective server.log files, located in JBOSS_HOME\jboss-as\server\all\log\server.log.

    For example, search for "I am" in the log file, and the IP address appears in an INFO message.

    If you have installed the Microsoft loopback adapter, the log may show a special IP address, such as 10.10.10.10. You must disable the Microsoft loopback adapter, to ensure that clustering operates as configured.

13.10.8 Deploying RTD.ear to the JBoss Cluster

To deploy RTD.ear to the JBoss cluster, perform the following tasks:

  1. Make sure that each JBoss Server in the cluster is running.

  2. On Machine #1, copy RTD_HOME/package/RTD.ear to JBOSS_HOME/jboss-as/server/all/farm/.

  3. Wait for RTD.ear to be deployed to Machine #2.

13.10.9 Undeploying RTD.ear from the JBoss Cluster

To undeploy RTD.ear from the JBoss cluster, perform the following tasks:

  1. Make sure that each JBoss Server in the cluster is running.

  2. On Machine #1, delete RTD.ear from JBOSS_HOME/jboss-as/server/all/farm/.

  3. Wait for RTD.ear to be undeployed from Machine #2.

13.10.10 Stopping the JBoss Application Server

To stop the JBoss application server, perform the following tasks:

  1. On Machine #1, open a command window (cmd) and 'cd' to: JBOSS_HOME/jboss-as/bin/.

  2. Stop JBoss by entering:

    (On Windows) shutdown.bat --server=localhost:1099 -S -u username -p password

    (On Unix) shutdown.sh --server=localhost:1099 -S -u username -p password

13.10.11 JBoss and Oracle RTD Logs

The JBoss log is located at JBOSS_HOME/jboss-as/server/all/log/server.log.

The Oracle RTD log is located at RTD_HOME/log/server.log.