3 Scaling Your Deployment

This chapter describes how to manage the capacity and availability of your deployment of Oracle Business Intelligence. By default, Oracle Business Intelligence system components are installed in a cluster configuration and are scalable. User web requests can be directed to one of many Oracle BI Presentation Services components. In turn, each Presentation Services component can take advantage of the availability of multiple Oracle BI Servers.

You can expand or reduce the capacity of the system by adjusting the number of processes available to the cluster. Increasing or decreasing the capacity of a system by making effective use of resources is known as scalability. A scalable system can handle increasing numbers of requests without adversely affecting response time and throughput.

This chapter includes the following sections:

About Scaling Oracle Business Intelligence

Scaling is the process of increasing or decreasing the capacity of the system by changing the number of processes available to service requests from Oracle Business Intelligence clients.

Scaling out a system provides additional capacity, while scaling in a system reduces capacity. Scaling is also a critical part of configuring a deployment for high availability. You can expand or reduce the capacity of the system by adjusting the number of processes that are available to the cluster. A cluster consists of multiple server instances that run simultaneously and work together to provide increased scalability and reliability.

Scaling the Oracle Business Intelligence environment applies principally to resource-intensive system processes and Java components. When you deploy more processes, Oracle Business Intelligence can handle more requests while staying responsive to requests.

Vertical scaling involves adding more Oracle Business Intelligence components to the same computer, to make increased use of the hardware resources on that computer. For example, Oracle Business Intelligence can be vertically scaled by increasing the number of system components servicing requests on a given computer and results in increased use of the hardware resources on a given computer.

Horizontal scaling involves adding more computers to the environment. For example, Oracle Business Intelligence is horizontally scaled by distributing the processing of requests across multiple computers.

You can scale both Oracle Business Intelligence Java components and system components. See About the Administration Server, Managed Servers, and System Components.

The three system components that support both horizontal and vertical scale-out are Oracle BI Presentation Services, the Oracle BI Server, and the JavaHost.

Oracle BI Scheduler uses Presentation Services and Oracle BI Server processes to perform computationally intense work on its behalf, while the Cluster Controller only manages other components and does not itself do any computationally intense work. Because of this, there is no need to scale out either Oracle BI Scheduler or the Cluster Controller. You can distribute these two processes as needed for high availability deployments, but they do not need to be scaled for capacity.

How Do I Know When to Scale Out Processes?

Scale out system components and Managed Servers based on observed load. You can use the performance metrics that are provided in Fusion Middleware Control to monitor process state and to determine when you must increase capacity to improve performance. For example, you might want to add a computer to the deployment when CPU usage is over 50%, or when memory use is close to the system limit. See Monitoring Service Levels for more information about viewing system metrics.

You also must scale out processes to achieve redundancy when you want to configure a highly available Oracle Business Intelligence environment. See Deploying Oracle Business Intelligence for High Availability.

What Processes Should I Scale?

Oracle Business Intelligence provides support for scale-out using a combination of the Oracle Business Intelligence installer (for horizontal scale-out) and WebLogic Scripting Tool (WLST) to scale system components both vertically and horizontally.

Follow these guidelines for scaling Managed Servers and system components:

  • Ensure that you run at least one Managed Server on each computer in the deployment. During installation the Oracle Business Intelligence Configuration Assistant provisions one Managed Server. Do not disable or remove it.

  • Do not remove individual Java components, because many perform essential services for the system. Keep a full set of Java components on each Managed Server. Any unused components likely do not have a significant performance impact.

  • You can decide based on observed load which system components to run on each computer. You can have 0 or more of each component type on a given computer in the deployment. For example, you can have three Oracle BI Servers, two JavaHosts, and four Presentation Services components. By default a symmetric set of components is created on the scaled out computer.

  • You do not need to scale any configured HTTP servers along with either the Managed Servers or system components. HTTP server configuration is independent of the number of processes that you run.

Setting Up Shared Files and Directories

When you have multiple instances of a given Oracle Business Intelligence component, files and directories including global cache and shared Oracle BI Scheduler scripts are located on a shared storage device (such as NAS or SAN).

Using shared files and directories simplifies management of your system (see the following illustration) including scale out of Oracle Business Intelligence components.

This section contains the following topics:

Changing the Singleton Data Directory (SDD)

Oracle Business Intelligence metadata is stored in a singleton data directory (SDD).

The default location is set to:

DOMAIN_HOME/bidata

The SDD path is defined in the file bi-environment.xml, located in:

DOMAIN_HOME/config/fmwconfig/bienv/core/bi-environment.xml

See Key Directories in Oracle Business Intelligence.

  1. Create a shared directory and make sure it is available on all hosts.

    For example, on Windows:

    dir \\example.com\dir

    For example, on UNIX:

    ls /oraclehome/user_projects/domains/bi/bidata

  2. Stop all Oracle Business Intelligence processes by running the following command located in:

    DOMAIN_HOME/bitools/bin

    For example on UNIX enter:

    ./stop.sh
    
  3. Backup the file bi-environment.xml, and existing SDD if desired.
  4. Open the file bi-environment.xml for editing, and specify the singleton path.

    For example:

    <bi:singleton-data-directory>/oraclehome/user_projects/domains/bi/bidata/</bi:singleton-data-directory>
    
  5. Save the file.
  6. Copy the contents of the bidata directory to the shared directory previously created.
  7. Start all Oracle Business Intelligence processes by running the following command located in:

    DOMAIN_HOME/bitools/bin/

    For example on UNIX enter:

    ./start.sh
    

The SDD is now configured for all host computers.

Setting Up the Global Cache

The global cache is a query cache that is shared by all Oracle BI Servers participating in a cluster.

See About the Global Cache.

It is recommended that you configure the global cache so that cache seeding and purging events can be shared by all Oracle BI Servers participating in a cluster.

Managing Capacity in Oracle Business Intelligence (Vertically Scaling)

You can change the number of Oracle Business Intelligence system components to suit capacity requirements.

You should first configure shared files and directories for clustered components to use (see Setting Up Shared Files and Directories).

You can change the number of BI System components to suit capacity requirements.

The commands described in this section should only be used by advanced users.

Adding System Components

You can add BI System Components to a computer when the system is stopped (offline).

Note:

If SSL is configured, see Configuring SSL in Oracle Business Intelligence in Security Guide for Oracle Business Intelligence Enterprise Edition

Assumptions:

  • You must have appropriate file system permissions.

  • Ports are allocated from the Oracle Business Intelligence port range, unless otherwise specified.

  • Supported system component types are OBIPS (BI Presentation Server), OBICCS (Cluster Controller), OBIJH (BI JavaHost), and OBISCH (BI Scheduler).

    OBIS is not scaled out because OBIS instances are managed as part of service instances.

    See About System Components.

  • You can only create two instances each of the component types OBICCS, OBISCH (one active, one passive). Therefore, if it is required to add another instance on another host, then an existing instance must first be removed.

  1. Start the WebLogic Scripting Tool (WLST).

    ORACLE_HOME/oracle_common/common/bin/wlst.sh

  2. Select your domain using the readDomain(DOMAIN_HOME) command.

    For example on UNIX:

    readDomain(‘/oraclehome/user_projects/domains/bi’)

    For example on Windows:

    readDomain(‘D:\\Oracle\\Middleware\\ORACLE_HOME\\user_projects\\domains\\bi’)

  3. Create the new Presentation Services system component(s) using an appropriate WLST command.

    All commands take a DOMAIN_HOME a machine name and an optional port specification.

    createOBIPSComponent(domainHome, machine, port=<portnumber>)

    Where machine is the WebLogic logical computer name (for example 'm1'). Use WLST or the WebLogic Admin Console (if running) to discover the logical machine name.

    For example on UNIX:

    createOBIPSComponent(‘/u01/../../domains/bi’,'m1’)

    For example on Windows:

    createOBIPSComponent(‘D:\\Oracle\\Middleware\\ORACLE_HOME\\user_projects\\domains\\bi,'m1’)

    Command Description

    createOBICCSComponent(domainHome, machine, port=None, portMonitor=None)

    This command creates a new cluster component.

    createOBISCHComponent(domainHome, machine, port=None, portMonitor=None,portScript=None)

    This command creates a new scheduler component.

    createOBIPSComponent(domainHome, machine, port=None)

    This command creates a new BI Presentation Server component.

    createOBIJHComponent(domainHome, machine, port=None)

    This command creates a new JavaHost component

    listBISystemComponents(domainHome)

    This command returns an object listing all of the system components in the domain.

    getBISystemComponents(domainHome, instanceId)

    This command displays details of system component with specified instanceID.

  4. Once command(s) have completed successfully, then you must commit the changes using the updateDomain('DOMAIN_HOME') command.

    The WLST command is same for all environments.

    For example:

    updateDomain()
  5. Close the domain using the closeDomain('DOMAIN_HOME') command.

    The WLST command is same for all environments.

    For example:

    closeDomain()
  6. Start the new component in:

    DOMAIN_HOME/bitools/bin/

    For example, enter:

    ./start.sh 
    

    See Starting Oracle Business Intelligence Component Processes in a Domain.

    Note:

    If you make a mistake or decide to abandon changes, you should use the closeDomain() command without using the updateDomain() command.

Post Conditions

  • The new component is created.

  • New port(s) are allocated.

  • The new component is started.

See Using the WebLogic Scripting Tool (WLST).

Removing System Components

You can remove an unwanted or inactive Presentation Services system component instances from a computer.

Assumptions:

  • Run commands when system is stopped (offline), as long as you have appropriate file system (offline) privileges.

  • Supported system component types are OBIPS (BI Presentation Server), OBICCS (BI Cluster Controller), OBIJH (BI JavaHost), and OBISCH (BI Scheduler). See About System Components.

  1. Stop the system using the stop script located in:

    DOMAIN_HOME/bitools/bin/

    For example on UNIX enter:

    ./stop.sh
    

    See Stopping Oracle Business Intelligence Component Processes in a Domain.

  2. Delete a system component by running the deleteBISystemComponent WLST command from ORACLE_HOME/oracle_common/common/bin/wlst.sh:

    deleteBISystemComponent(domainHome, instanceId)

    Where domainHome is the DOMAIN_HOME for the domain, and instanceID is the BI component ID (for example, obips1, obis4)

    For example:

    deleteBISystemComponent("/oraclehome/user_projects/domains/bi", "obips1")
    

    This removes system component(s) and un-allocates ports.

    See Using the WebLogic Scripting Tool (WLST).

    The deleted system component name is displayed.

  3. Start the system by running the following command located in:

    DOMAIN_HOME/bitools/bin/

    For example on UNIX enter:

    ./start.sh
    

    See Starting Oracle Business Intelligence Component Processes in a Domain.

Managing Availability in Oracle Business Intelligence (Horizontally Scaling)

If you have multiple instances of a given Oracle Business Intelligence component in the deployment, you should first configure shared files and directories for the clustered components to use.

See Setting Up Shared Files and Directories.

After horizontally scaling out, you typically configure an HTTP server and load balancer to distribute requests across multiple managed servers. See Load Balancing in a Cluster in Administering Clusters for Oracle WebLogic Server. If a front end load balancer has been setup, then you must set the WebLogic Server Front-End Host and Port for the BI cluster (bi_cluster).

The commands described in this section should only be used by advanced users. Note that availability commands automatically create a symmetric set of processes when configuring additional hosts.

See Using the WebLogic Scripting Tool (WLST).

Note:

To add a new node to a cluster when SSL has been configured, you must scale out to the new cluster (see Adding New Computers), then ensure SSL is set up correctly (see Configuring SSL in Oracle Business Intelligence in Security Guide for Oracle Business Intelligence Enterprise Edition).

Adding New Computers

You can add a new computer to extend the BI cluster across multiple computers, increasing availability and capacity.

Assumptions

  • The new computer must meet the same install pre-requisites (for example, operating system, memory).

  • SDD must have been set up.

  • ORACLE_HOME must be the same absolute path on both computers.

  • It is recommended, but not required, that the DOMAIN_HOME is the same on both hosts.

  • A symmetric set of active-active components is created on the new computer.

  • The BI system must be stopped (offline).

  • You must have appropriate file system (offline) or Weblogic Administrator (online) permissions.

  • The same ports are allocated as on the original host.

  • The managed server is added to the existing Oracle Business Intelligence cluster.

  • Cluster Controller, Scheduler and BI Server mastership is not changed.

  • Note that optional base computer and server parameters are provided to support the case where m1/bi_server1 has been deleted.

  • Unless provided the computer (WebLogic machine) name will default to the listen address and must be less than 32 characters.

Adding a new computer creates an additional managed server, node manager, system components, and services on the new computer.

  1. Shutdown all services on the master computer (node 1) before running the clone script:
    ORACLE_HOME/user_projects/domains/bi/bitools/bin/stop.sh
  2. On node 1, run the clone script:

    The script creates the Jar file containing the domain directory and updates the config.xml file in node 1 with the new host name, Managed Server and BI System Components.

    DOMAIN_HOME/bitools/bin/clone_bi_machine.sh|cmd [-m <new machine name>] <listen address> <Jar file>

    <new machine name> is optional and defaults to the listen address.

    The SSL certificate step is done for you in the script.

    For example:

    ORACLE_HOME/user_projects/domains/bi/bitools/bin/clone_bi_machine.sh example.com /oracle/nfs_shared/clone/demobi2.jar

  3. On the new computer (node 2), install WebLogic Server and Oracle Business Intelligence.

    See Installing and Configuring Oracle Business Intelligence.

  4. Test connectivity between the two hosts.
  5. Copy the Jar file from the master computer (node 1 with the Admin server) to the new computer (node 2).
  6. On the new computer, apply the Jar file by running the unpack command.

    ORACLE_HOME/oracle_common/common/bin/unpack.sh -template=[location of copied jar file from master node] –domain=DOMAIN_HOME -nodemanager_type=PerDomainNodeManager

    Note:

    The syntax to display help is: ./unpack.sh|cmd -help.

    For example:

    /../../Oracle_Home/oracle_common/common/bin/unpack.sh -template=/refresh/home/oracle/nfs_shared/clone/demobi2.jar -domain=/../../Oracle_Home/user_projects/domains/bi -nodemanager_type=PerDomainNodeManager

  7. Start the following components:

    On node 1: Node Manager, Admin server, Managed server for node 1 and BI System Components for node 1.

    On node 2: Node Manager and Managed server (this is so the config.xml can be created).

    The BI System Components for node 2 should remain down for now.

    Note:

    If Node Manager on node 2 is started, then all other components can be started using the same script from node 1. So you can start the components in this order:
    • On node 2:

      Node Manager for node 2

    • On node 1:

      Node Manager for node 1.

      Admin server.

      Managed server for node 1

      BI system components for node 1

    For example:

    Node 2:

    /../../Oracle_Home/user_projects/domains/bi/bin/startNodeManager.sh

    Node 1:

    /../../Oracle_Home/user_projects/domains/bi/bitools/bin/start.sh -i AdminServer,bi_server1,obis1,obips1,obiccs1,obijh1,obisch1,bi_server2

  8. Re-synchronize the data source on new machine (node 2).

    On node 2 run the following script:

    DOMAIN_HOME/bitools/bin/sync_midtier_db.sh

    See BI-Specific WLST Command Reference.

  9. On the master host computer (node 1), start the new BI System Components for node 2:

    DOMAIN_HOME/bitools/bin/

    Enter:

    ./start.sh -i obis2,obips2,obiccs2,obijh2,obisch2 
    

    The scaled out process is complete and all components should be running now.

    See Starting Oracle Business Intelligence Component Processes in a Domain.

Post Conditions

  • Computer, Managed server, Node Manager and System Components are created.

  • Service instances are registered on the second computer.

  • Ports are allocated.

Note:

If you’re upgrading to version 12.2.1.2 or later, after horizontally scaling your system you may encounter an error when uploading your repository (using the uploadrpd command) similar to:
Operation failed. 
An exception occurred during execution, please check server logs. 
uploadRpd Failed: Did not receive a success response to REST call.
The log will display an error similar to:
Aug 16,2017 22:10:32 oracle.bi.lcm.rest.si.rpd.RpdEndpointV1 
SEVERE - Exception during RPD file upload: java.io.IOException: No such file or directory
If this occurs, create a folder on the master machine: ORACLE_HOME/user_projects/domains/DOMAIN_HOME/bidata/service_instances/<serviceinstanceKey>/metadata/datamodel

Rerun the uploadrpd command. The command will generate a file into the newly created folder and continue with the upload process.

Removing Existing Computers

Remove a failed or redundant computer from a BI Cluster.

Assumptions

  • No binaries, configuration or state is deleted from the removed computer.

  • Cluster Controller, Scheduler and BI Server mastership is unchanged.

  • You cannot remove the master computer.

  • Service Instance registrations can be added or removed.

  • The BI system can be running (online) or stopped (offline).

  • You must have appropriate file system (offline) or Weblogic Administrator (online) permissions.

  • The command does not result in a loss of service.

  • The command can only result in a loss of availability if forced by the user.

Prerequisites

If possible, you should stop active components on the target computer before removing it using the status.sh and stop.sh scripts. See Using Commands to Start, Stop, and View Status of Oracle BI EE Processes.

  1. Use the deleteBIMachine WLST command to remove components created by cloneBIMachine or clone_bi_machine.sh in:

    ORACLE_HOME/oracle_common/common/bin/wlst.sh

    For example:

    deleteBIMachine(DOMAIN_HOME, <machine>)

    Or run the delete_bi_machine.sh script in:

    DOMAIN_HOME/bitools/bin/delete_bi_machine.sh|cmd machineName

  2. The command displays the removed computer name.

Post Conditions

  • Computer, Managed Server, Node Manager and System Components are removed from that computer.

  • Service Instances are unregistered from that computer.

  • Ports are unallocated.

Validating That Your System Has Been Scaled Correctly

Components need to be validated to ensure they are configured properly for your system’s size and scope.

You can use Fusion Middleware Control and the Oracle WebLogic Server Administration Console, and the command line to verify the status of the scaled-out components.

This section contains the following topics:

For information about using a command to see the status, see Viewing the Status of Oracle Business Intelligence Components in a Domain.

Using Fusion Middleware Control to View System Component Availability

You can use Fusion Middleware Control to view the status of all system components in your deployment.

  1. Go to the Business Intelligence Overview page, as described in Displaying Oracle Business Intelligence Pages in Fusion Middleware Control.
  2. Display the Processes tab of the Availability page.

    On this page, you can:

    • View the status of all configured system components

    • View the host, and port of each system component running

    • Start, stop, or restart all processes

    • Start, stop, or restart selected system components

The following illustration shows the Processes tab of the Availability page.

Using the Administration Console to View Managed Server Availability

You can use the Administration Console to view the status of all Managed Servers in your deployment.

  1. Log in to the Oracle WebLogic Server Administration Console.
  2. Select Environment, then select Servers to go to the Summary of Servers page. On this page, you can see any Managed Servers that were added on new hosts in your deployment.

The next illustration shows the Summary of Servers page.