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:

3.1 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 Section 1.3.3, "About the Administration Server, Managed Servers, and System Components" for more information about these 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.

3.1.1 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 Section 5.1, "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 Section 4, "Deploying Oracle Business Intelligence for High Availability" for more information.

3.1.2 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.

3.2 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). This simplifies management of your system (see Figure 3-1) including scale out of Oracle Business Intelligence components.

Figure 3-1 Scaling Out and Shared Storage

Description of Figure 3-1 follows
Description of ''Figure 3-1 Scaling Out and Shared Storage''

This section contains the following topics:

3.2.1 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

For more information, see Section 1.4, "Key Directories in Oracle Business Intelligence".

To change the singleton data directory (SDD):

  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.

3.2.2 Setting Up the Global Cache

The global cache is a query cache that is shared by all Oracle BI Servers participating in a cluster. For more information, see Section 5.4.6, "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.

To set up the global cache:

  1. Use the Performance tab of the Capacity Management page in Fusion Middleware Control to set the Global cache path and Global cache size options.

    For more information, see Section 5.5.4, "Using Fusion Middleware Control to Set Global Cache Parameters".

3.3 Managing Capacity in Oracle Business Intelligence (Vertically Scaling)

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

You should first configure shared files and directories for clustered components to use (for information, see Section 3.2, "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.

3.3.1 Adding System Components

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

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.

    For more information, see Section 1.3.3.2, "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.

To add system components:

  1. Create a system component using an appropriate WLST command from:

    ORACLE_HOME/oracle_common/common/bin/wlst.sh

    Use the following syntax to create an Oracle BI Presentation Server component:

    createOBIPSComponent(domainHome, machine)

    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 to create a new Presentation Services system component on UNIX, enter:

    createOBIPSComponent("/oraclehome/user_projects/domains/bi", "m1")
    

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

    Table 3-1 Create BI Component Commands

    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 lists all of the system components in the domain.

    getBISystemComponents(domainHome, instanceId)

    This command displays details of system component with specified instanceID.


    The newly created system component instance name (or component details) is displayed.

  2. Start the new component in:

    DOMAIN_HOME/bitools/bin/

    For example, enter:

    ./start.sh 
    

    For information, see Section 2.3.2, "Starting Oracle Business Intelligence Component Processes in a Domain".

Post Conditions

  • The new component is created.

  • New port(s) are allocated.

  • The new component is started.

For more information, Section 8.3.3, "Using the WebLogic Scripting Tool (WLST)".

3.3.2 Removing System Components

You can remove an unwanted or inactive Oracle Business Intelligence 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). For information, see Section 1.3.3.2, "About System Components".

To remove a system component:

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

    DOMAIN_HOME/bitools/bin/

    For example on UNIX enter:

    ./stop.sh
    

    For more information, see Section 2.3.1, "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.

    For more information, Section 8.3.3, "Using the WebLogic Scripting Tool (WLST)".

  3. The deleted system component name is displayed.

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

    DOMAIN_HOME/bitools/bin/

    For example on UNIX enter:

    ./start.sh
    

    For more information, see Section 2.3.2, "Starting Oracle Business Intelligence Component Processes in a Domain".

3.4 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 (for information, see Section 3.2, "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. For information, see "Load Balancing in a Cluster" in Oracle Fusion Middleware Using 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.

For more information, Section 8.3.3, "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 Section 3.4.1, "Adding New Computers"), then ensure SSL is correctly set up (see "Configuring SSL in Oracle Business Intelligence" in Oracle Fusion Middleware Security Guide for Oracle Business Intelligence Enterprise Edition).

3.4.1 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.

To add a new computer:

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

  1. On the master computer, run the clone script:

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

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

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

  2. On the new machine, install WebLogic Server and Oracle Business Intelligence.

    For information, see Oracle Fusion Middleware Installation Guide for Oracle Business Intelligence.

  3. Test connectivity between the two hosts.

  4. Copy the pack file from the master host computer (the one with the Admin server) to the new computer.

  5. On the new computer, apply the pack file by running the unpack command.

    For example in:

    ORACLE_HOME/oracle_common/common/bin

    ./unpack.sh –domain=DOMAIN_HOME -nodemanager_type=PerDomainNodeManager

  6. Re-synchronize the data source on new machine.

    Run the script in:

    DOMAIN_HOME/bitools/bin/sync_midtier_db.cmd

    For more information, see Table D-3, "Synchronize Mid-Tier Database Connection Details Command".

  7. On the new computer, start node manager using the startNodeManager script.

    For example in:

    /oraclehome/user_projects/domains/bi/bin
    

    Enter:

    ./startNodeManager.sh
    
  8. On the master host computer, start inactive components in:

    DOMAIN_HOME/bitools/bin/

    Enter:

    ./start.sh 
    

    For information, see Section 2.3.2, "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.

3.4.2 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.

Pre-requisites

If possible, you should stop active components on the target computer before removing it using the status.sh and stop.sh scripts. For information, see Section 2.3, "Using Commands to Stop, Start, and View Status of Oracle Business Intelligence Processes".

To remove an existing computer:

  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.

3.5 Validating That Your System Has Been Scaled Correctly

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 Section 2.3.3, "Viewing the Status of Oracle Business Intelligence Components in a Domain".

3.5.1 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.

To view status for system components:

  1. Go to the Business Intelligence Overview page, as described in Section 8.2.2, "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

    Click the 'Help for This Page' Help menu option to access page-level help.

Figure 3-2 shows the Processes tab of the Availability page.

Figure 3-2 Processes Tab of Availability Page in Fusion Middleware Control

Description of Figure 3-2 follows
Description of ''Figure 3-2 Processes Tab of Availability Page in Fusion Middleware Control''

3.5.2 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.

To view status for Managed Servers:

  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.

Figure 3-3 shows the Summary of Servers page.

Figure 3-3 Summary of Servers Page in Oracle WebLogic Server Administration Console

Description of Figure 3-3 follows
Description of ''Figure 3-3 Summary of Servers Page in Oracle WebLogic Server Administration Console''