Oracle Reports Services Publishing Reports to the Web with Oracle9i Application Server
Release 1.0.2 for Windows NT and UNIX

Part Number A86784-02

Library

Solution Area

Contents

Index

Go to previous page Go to next page

6
Configuring Oracle Reports Services Server Clusters

This chapter will show you how to configure Oracle Reports Services servers in a cluster to improve performance and loading balancing. This becomes important as the need to deliver information to a rapidly growing user base becomes more demanding.

Oracle Reports Services servers clustering addresses this demand by leveraging your organization's existing hardware investment by plugging in additional application servers as they are needed. This enables the processing capabilities of your Oracle Reports Services servers to grow as your organization grows.

Before you begin to configure your Oracle Reports Services servers for clustering, you should be familiar with the basic Oracle Reports Services architecture. See Chapter 1, "Publishing Architecture and Concepts" for more information. You must also have already set up your Oracle Reports Services using a basic configuration. See Chapter 3, "Configuring the Oracle Reports Services Server on Windows NT and UNIX" for more information.

6.1 Clustering Overview

Suppose that you have three machines configured as Oracle Reports Services servers that you want to cluster. These machines are described below:

Table 6-1  Example Server Machines Descriptions
Machine/Server TNS name  Description  Master/Slave 

NT-1 

4 CPU NT server 

Master 

NT-2 

2 CPU NT server 

Slave 

SUN-1 

2 CPU Sun Solaris workstation 

Slave 


Note:

The decision to make the NT-1 machine the master server was arbitrary. The number of CPUs was not a determining factor. 


For step-by-step instructions on configuring Oracle Reports Services servers in a cluster as described in this overview, see Section 6.2, "Configuring Oracle Reports Services Servers in a Cluster Example".

You will designate NT-1 as the master, then set the CLUSTERCONFIG parameter to enable this server to recognize NT-2 and SUN-1 as slaves. To simplify this example, the MAXENGINE parameter and MINENGINE parameter for the master and each slave server are set to the number of CPUs available on each machine.

Once the machines are configured, you will send report requests to the master server (that is, SERVER=NT-1) which redirects the reports to the slaves. When the master server is started, it checks the configuration file. The master contacts each of the slave servers in the order that they are listed in the configuration file and notifies them to start up the defined number of engines (for example, two engines each). When the slave engines are started, they are under the control of the master, which allocates jobs to them using a round-robin algorithm.

Suppose that the master server (that is, NT-1) receives seven report requests. The master uses its four engines to run the first four reports. For the fifth and sixth reports, the master redirects the requests to the two NT-2 engines to run them. When the master receives the seventh report, it redirects the request to the first SUN-1 engine to run it. All output is written to a central cache (that is, one that is shared by all servers). The master sends the output back to the requestor (for example, a Web browser).

It is possible for slave servers to remain fully functional Oracle Reports Services servers in their own right if they can start engines independently of the master server. Suppose that the MAXENGINE and MINENGINE parameters of the NT-2 Oracle Reports Services configuration are set to three. This means that three engines are dedicated to the NT-2 Oracle Reports Services servers and can receive requests without the master's knowledge. When configured as a slave server (that is, the MAXENGINE and MINENGINE parameters in the master configuration for NT-2 are set to two), the NT-2 Oracle Reports Services has a total of five engines started: three engines that are dedicated to the NT-2 server and two engines are dedicated slaves to the master.

6.2 Configuring Oracle Reports Services Servers in a Cluster Example

This section provides step-by step instructions for configuring Oracle Reports Services server clusters. This example describes the following:

In this example, you will configure the server machines for clustering as described in Table 6-1, " Example Server Machines Descriptions".

The following assumptions have also been made for each machine:

6.2.1 Enabling Communication Between Master and Slaves

On the NT-1 machine (master) you open the tnsnames.ora located in the ORACLE_HOME\NET80 directory in a text editor, and add the following. The nt-2.world and sun-1.world are the names of the server instances and .world is the domain specified in the NAMES.DEFAULT_DOMAIN setting in the sqlnet.ora file. If the NAMES.DEFAULT_DOMAIN setting is not defined in the sqlnet.ora, then omit .world from the name of the server instance:

nt-2.world=(ADDRESS=(PROTOCOL=tcp)(HOST=nt-2)(PORT=1949))
sun-1.world=(ADDRESS=(PROTOCOL=tcp)(HOST=sun-1)(PORT=1949))

On the NT-2 machine (slave) you do the following:

  1. Open the tnsnames.ora located in the ORACLE_HOME\NET80 directory in a text editor, and add the following, where nt-1.world is the name of the server instance and .world is the domain specified in the NAMES.DEFAULT_DOMAIN setting in the sqlnet.ora file. If the NAMES.DEFAULT_DOMAIN setting is not defined in the sqlnet.ora, then omit .world from the name of the server instance:

    nt-1.world=(ADDRESS=(PROTOCOL=tcp)(HOST=nt-1)(PORT=1949))
    
    
  2. Open the nt-2.ora (the Oracle Reports Services configuration file) located in the ORACLE_HOME\REPORT60\SERVER directory, and set the INITEGINE parameter to 0. This ensures that the only engines created at startup are the ones started by the master.

  3. Repeat steps 1 and 2 on the SUN-1 server machine. In step 2, edit the sun-1.ora configuration file.

6.2.2 Configuring the Master Server

In this section your will configure the master using the following settings:

The ENGLIFE and MAXIDLE parameters for the master server's engines are implied for all slave engines. The unit of measure for the MAXIDLE parameter is minutes and the ENGLIFE parameter is the number of engines.

On the NT-1 server machine (master) you do the following:

  1. Open nt-1.ora (the Oracle Reports Services configuration file) located on ORACLE_HOME\REPORT60\SERVER directory.

  2. Edit the configuration file according to settings below:

    maxconnect=4096
    sourcedir="X:\Source"
    cachedir="X:\Cache"
    cachesize=50
    minengine=0
    maxengine=4
    initengine=4
    maxidle=60
    englife=50
    
    

    The NT-1 machine is mapped to the central server on the X: drive.

  3. Edit the configuration file according to the settings below:

    clusterconfig="(server=nt-2
    minengine=0
    maxengine=2
    initengine=2
    cachedir="W:\Cache")
    (server=sun-1
    minengine=0
    maxengine=2
    initengine=2
    cachedir="/share/Cache")"
    
    

    where:

    server 

    is the TNS service entry name of the slave server. 

    minengine 

    is the minimum number of runtime engines this master server should have available to run reports. 

    maxengine 

    is the maximum number of runtime engines this master server has available to run reports. 

    initengine 

    is the initial number of runtime engines started by this master server. 

    cachedir 

    is the central cache directory for this master server. 

Usage Notes

When configuring the master server, you should consider the following:

This completes the configuration. Eight engines will start when the master server is started.

6.2.3 Running Reports in a Clustered Configuration

To run report requests to Oracle Reports Services servers that have been configured for clustering, you specify the master server in the SERVER command line argument (that is, SERVER=NT-1)along with any other relevant arguments for the thin client executable. The master server assigns incoming jobs to the engines on the slave servers.

If you set the REPORTS60_REPORTS_SERVER environment variable to the master server, then you can omit the SERVER command line argument. See Appendix D, "Environment Variables" for more information.

See Chapter 4, "Running Report Requests" for more information on the various report request methods you can use.

See Section 6.2.4, "Resubmitting Jobs When an Engine Goes Down" if you have problems submitting report requests to the server cluster.

The master server's jobs can be monitored by using the Oracle Reports Services Queue Viewer in the Queue Manager. Refer to the Oracle Reports Services Queue Manager online help for more information.

6.2.4 Resubmitting Jobs When an Engine Goes Down

If an engine goes down while a report is running, then the Retry settings defined in the SCHEDULE command line argument dictate whether the job will be re-run. If no Retry settings have been specified, then the job is lost. This job failure, however, will be logged against the server log file, and displayed in the list of jobs in the Queue Manager. If the command line includes retry settings, then the master server will re-run the job with the next available engine.

Suppose that you have submitted a job with the Retry option set to 2 in the SCHEDULE command line argument. The master server starts the report request on the second slave engine on the NT-2 server. However, the NT-2 server runs out of temporary space and the job terminates. The master server will resubmit the job. Assuming that no other jobs have been submitted, this job is assigned to the first engine on the SUN-1 server.

The retry option is useful for giving you fail-over support, but should be used with caution. For example, setting the retry to a large number might not solve the problem. The resubmitted job might always fail if the underlying problem is with the report itself, not the engine.

6.2.5 Adding Another Slave Server to the Master

You want to add another slave server to the existing cluster configuration as defined in the following table:

Table 6-2  Additional Server Machine Description
Machine/Server TNS name  Description  Master/Slave 

SUN-2 

4 CPU Sun Solaris server 

Slave 

This example assumes that this machine has already been configured as an Oracle Reports Services server. The TNS service entry name for Oracle Reports Services server is the machine name.

On the SUN-2 server machine (slave), open the sun-2.ora (the Oracle Reports Services configuration file) located in the ORACLE_HOME\REPORT60\SERVER directory and add the following, where nt-1.world is the name of the server instance and .world is the domain specified in the NAMES.DEFAULT_DOMAIN setting in the sqlnet.ora file. If the NAMES.DEFAULT_DOMAIN setting is not defined in the sqlnet.ora, then omit .world from the name of the server instance:

nt-1.world=(ADDRESS=(PROTOCOL=tcp)(HOST=nt-1)(PORT=1949))

On the NT-1 server machine (master), do the following:

  1. Open the tnsnames.ora file located in the ORACLE_HOME\NET80\ADMIN directory and add the following entry, where sun-2.world is the name of the server instance and .world is the domain specified in the NAMES.DEFAULT_DOMAIN setting in the sqlnet.ora file. If the NAMES.DEFAULT_DOMAIN setting is not defined in the sqlnet.ora, then omit .world from the name of the server instance:

    sun-2.world=(ADDRESS=(PROTOCOL=tcp)(HOST=sun-1)(PORT=1949))
    
    
  2. Open the nt-1.ora (the Oracle Reports Services configuration file) and add the following bold text to the already existing CLUSTERCONFIG parameter:

    clusterconfig="(server=nt-2
    minengine=0
    maxengine=2
    initengine=2
    cachedir="W:\Cache")
    (server=sun-1
    minengine=0
    maxengine=2
    initengine=2
    cachedir="/share/Cache")
    (server=sun-2
    minengine=0
    maxengine=4
    initengine=4
    cachedir="/share/Cache")"
    
    
  3. Shut down and restart the master server so that the master server can recognize the newly configured slave server.

Suppose that while you were configuring the SUN-2 machine as a slave server, another administrator took down the NT-2 machine (for example, to perform a backup). While the NT-2 machine is still down, you restart the Oracle Reports Services server on the NT-1 machine. The NT-1 machine was able to start the slave engines on the two Sun machines, but could not start the slave engines on the NT-2 machine because it was down.

Because the NT-1 server is polling all the slave servers, once the NT-2 machine is brought back up and Oracle Reports Services started, the NT-2 machine will be detected automatically by the NT-1 server. When the four slave engines start, they are available to receive jobs from the master.


Go to previous page Go to next page
Oracle
Copyright © 2000 Oracle Corporation.

All Rights Reserved.

Library

Solution Area

Contents

Index