Skip to end of metadata
Go to start of metadata

Product versions:
Xcelsius 2008
BusinessObjects Enterprise XI 3.1 SP3

Table of contents

This article is part of a series

Introduction

This article provides guidelines on how to tune the Xcelsius servers in BOE XI 3.1 SP3. All relevant parameters are available from the Central Management Console (CMC) or the Query As A Web Service (QaaWS) Publishing Wizard. The first part of this article details the process flow of a client request for a result set that has not been cached yet; it helps better understand the timeouts and other settings explained in the second part.

Process Flow

This diagram focuses on the infrastructure process flow and explains what a session, job or connection are. It complements the process flow described in How does the Xcelsius caching work in XI 3.1 SP3, which focuses on the functional logic of what to cache, re-use,etc. In this diagram, we assume the client requests a result set that is not already in the cache.

Step #

What is happening

1

HTTP (SOAP) request from Flash file to QaaWS web service where the QaaWS servlet checks the BOE session...

2

...and redirects the request to an Xcelsius Cache Server via CORBA. The Xcelsius Cache Server initiates a Connection (start of the "Idle Connection Timeout") and checks whether the query result is in the cache and if so can be re-used...

3

...if not, it connects to the Xcelsius Processing Server which initiates a Connection (start of the "Idle Connection Timeout") and delegates the request to one of its children. The Processing Server (xcproc.exe on Windows) has a pool of child processes (java.exe on Windows) and handles the load balancing. For better performance, the Processing Server always start child processes ahead of time (before there is an actual need for one). You will always see more child processes available than the current number of concurrent requests. The request is forwarded as is to ...

4

...the child process which initiates a Job (start of the "Idle Job Timeout"). The job sends the SQL query to the database and fetches the result set and sends it back to the Xcelsius Processing Server. The job will terminate when "Idle Job Timeout" is reached.

5,6

If the SQL needs to be re-generated, the Xcelsius Processing Child connects to the Web Intelligence Processing Server and requests the new SQL statement. The Web Intelligence Processing Server will use one Connection to process the request and close it right after it sends the SQL statement back to the Xcelsius Processing Child.

7,8

The job sends the SQL query to the database and fetches the result set and sends it back to the Xcelsius Processing Server. The job will terminate when "Idle Job Timeout" is reached.

9,10,11

The Xcelsius Processing Server receives the result set and forwards it to the Xcelsius Cache Server. Again here, the 2 Connections will close when "Idle Connection Timeout" is reached.

12

HTTP (SOAP) response from QaaWS web service to from Flash file

Important notes :

  • the Xcelsius cache is stateless and a Connection or Job cannot be re-used by the same user or a different user. You want a Connection and Job to close as early as possible after the request was processed, hence the recommendation below to have the 3 Idle timeouts equal and set to slightly higher than the longest running database query.
  • steps 3-10 only happen if the cached data cannot be re-used, see the decision tree in How does the Xcelsius caching work in XI 3.1 SP3
  • steps 5 and 6 only happen if the SQL statement needs to be re-generated, see the decision tree in How does the Xcelsius caching work in XI 3.1 SP3

Query As A Web Service tuning parameters

Setting

Default Value

Suggested Value

Definition

Web Service base URL

N/A

N/A

Refer to Query As A Web Service documentation

Session Time-Out in seconds

60

amount of time the data is valid for

This is essentially how long the query result set will be kept in the cache by the Xcelsius Cache Server (warning). For best performance, it should be set to the highest value possible so the system does not have to query the database again, and as long as the result set is valid for. This really depends on the data expiration frequency, or how often the data is refreshed on the database side. But typically this could be days for dimension values and hours for measure values.

Authentication mode

secEnterprise

authentication method used in your environment

Refer to Query As A Web Service documentation, it can be secEnterprise, secLDAP, secWinAD, Consumer Defined

Xcelsius Cache Server tuning parameters

Setting

Default Value

Suggested Value

Definition

Cache Files Directory

%DefaultDir%
/XcelsiusCacheServer
/temp

leave the default

Cache location on the file system, one directory per Xcelsius Cache Server instance (multiple instances cannot share their cache)

Maximum Cache Size (KB)

256000 (256Mb)

TO DO

TO DO

Idle Connection Timeout (minutes)

20

a few seconds higher than the longest running query

see explanation in the Process Flow section of this article

Xcelsius Processing Server tuning parameters

Setting

Default Value

Suggested Value

Definition

Temporary Directory

%DefaultDir%
/XcelsiusProcessingServer
/temp

leave the default

Temporary directory, one folder per Xcelsius Processing Server instance

Maximum Concurrent Jobs (0 for automatic)

0

leave the default

The default value is 500 and should work fine for most implementations. You may want to decrease that value if the average size of result sets is high (but it should not be since they are to be consumed in a dashboard) to avoid high memory consumption problems.

Maximum Lifetime Jobs Per Child

1000

Unless some queries are suspected as unstable, increase that value to 10000.

This is the maximum number of jobs a child process will ever process. The process will restart when he reaches that value. You can increase that value to avoid too frequent restarts if all queries are reasonably small and stable, and there is no sign of degradation over time.

Maximum Number of pre-started Children

1

leave the default

The system will automatically start new child processes when there is more demand and balance the load among children processes. Setting that value would make the system start too many child processes too early and also increase the memory footprint.

Idle Connection Timeout (minutes)

20

a few seconds higher than the longest running query

see explanation in the Process Flow section of this article

Idle Job Timeout (minutes)

60

a few seconds higher than the longest running query

see explanation in the Process Flow section of this article

Web Intelligence Processing Server tuning parameters

Setting

Default Value

Suggested Value

Definition

Maximum Connections

50

TO DO

 

  • No labels

1 Comment

  1. Unknown User (ji0983e)

    Great info. Could you please update the suggested values, marked as "TO DO?"
    Thanks!