Best Practice 5 En

60
Best Practices with Business Objects Version 5 Last updated: July 30, 2002 Windows UNIX

Transcript of Best Practice 5 En

Page 1: Best Practice 5 En

Best Practices with Business Objects

Version 5 Last updated: July 30, 2002

Windows

UNIX

Page 2: Best Practice 5 En

BusinessObjects TM

Version 5.1

Best Practices with Business Objects

No part of the computer software or this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without permission in writing from Business Objects. The information in this document is subject to change without notice. If you find any problems with this documentation, please report them to Business Objects in writing at [email protected]. Business Objects does not warrant that this document is error free.

Copyright © Business Objects 2002. All rights reserved.

Portions © Copyright 1996, Microsoft Corporation. All rights reserved.

Printed in France.

Trademarks:

The Business Objects logo, BusinessMiner, BusinessQuery, and WebIntelligence are registered trademarks of Business Objects S.A. in the US and/or other countries.

The Business Objects tagline, Broadcast Agent, BusinessObjects, Personal Trainer, Rapid Deployment Templates, and Set Analyzer are trademarks of Business Objects S.A. in the US and/or other countries

Microsoft, Windows, Windows NT, Access, Microsoft VBA, the Visual Basic Logo and other names of Microsoft products referenced herein are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Oracle is a registered trademark of Oracle Corporation. All other names of Oracle products referenced herein are trademarks or registered trademarks of Oracle Corporation.

All other product and company names mentioned herein are the trademarks of their respective owners.

This software and documentation is commercial computer software under Federal Acquisition regulations, and is provided only under the Restricted Rights of the Federal Acquisition Regulations applicable to commercial computer software provided at private expense. The use, duplication, or disclosure by the U.S. Government is subject to restrictions set forth in subdivision (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at 252.227-7013.

U.S. Patent Numbers 5,555,403 and 6,247,008

Part Number: 3B3-50-500-01

Edition: 1

Page 3: Best Practice 5 En

Business Objects Documentation Supplement 3

Contents

Chapter 1 Introduction 5

Overview ........................................................................................................................ 6

Chapter 2 Tuning the System 9

Network and System Configuration ........................................................................ 10

General Server Tuning ................................................................................................ 12

Web Servers .................................................................................................................. 13

Chapter 3 Tuning your BusinessObjects Deployment 17

Skill Set Requirements for Business Objects ............................................................ 19

WebIntelligence Clusters ............................................................................................ 21

Configuring the Cluster Modules ............................................................................. 21

Deploying with Distributed Architecture ............................................................... 26

Universe Design and Development .......................................................................... 27

Supervisor and the Repository .................................................................................. 32

Accessing Data ............................................................................................................. 36

Connectivities .............................................................................................................. 37

Bomain.key File ........................................................................................................... 39

Troubleshooting .......................................................................................................... 39

Storage .......................................................................................................................... 40

UNIX Specific Tips ...................................................................................................... 40

WebIntelligence OLAP Administration ................................................................... 41

Chapter 4 Optimizing Document Design 43

Document Design ........................................................................................................ 44

Improving Overall Document Computation Time ................................................ 49

Page 4: Best Practice 5 En

Contents

4 Business Objects Documentation Supplement

Chapter 5 Enhancing Performance 53

Improving Login Time ................................................................................................54

Enhancing Performance/Usability from InfoView ................................................55

Enhancing Performance from BusinessObjects .......................................................56

Enhancing Performance from BusinessObjects 5i in 3-Tier Mode ..............................................................................................................58

Enhancing Performance from Broadcast Agent ......................................................58

Page 5: Best Practice 5 En

Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

In this chapter

❑ Overview 6 Other Available Resources 7 What this Document is Not 7

Page 6: Best Practice 5 En

Introduction

6 Business Objects Documentation Supplement

Overview

The purpose of this document is to provide some guidelines for using Business Objects desktop and server products efficiently.

This document is currently a collection of miscellaneous advice grouped into the following main categories:

• Tuning the System

• Tuning your Business Objects Deployment

• Document Design

• Enhancing Performance

The information presented in this document is compiled from advice from Business Objects consultants and internal testing. As a whole, this advice can improve overall system performance, specific functions such as document generation, or simply make the products easier to use. If you have a tip, trick, or other practice appropriate for this guide, share it with other customers and consultants by submitting it for this guide. All feedback should be addressed to:

[email protected]

The organization and format of this document is such that little effort is required; a simple sentence will do, a couple of phrases dashed off in an email message. Be civic-minded! If this document has helped you, help it to help others! With your contributions, we can post regular updates, and this collection can become a veritable Users’ Bible.

Note: The information in this document is meant to be applied to most versions of Business Objects products. The exact wording of some settings and menu command structures may vary from version to version. In general, we have used the wording and menu structures from the latest release of Business Objects 2000 (5.1/2.7). Specific versions are mentioned when appropriate.

Screen shots in this document refer to Windows 2000 only; when the workflow is different on NT4, it is described.

Page 7: Best Practice 5 En

Overview

Business Objects Documentation Supplement 7

Other Available ResourcesIf this guide does not provide the information that you are seeking, remember that another guide in the documentation suite may be more appropriate for your topic.

What this Document is NotThis is what many of you out there call a "working document," which means that it will evolve and be re-published regularly over time. We hope that all of you who read this document will eventually contribute to it.

This document does not replace other valuable resources like consultants, product documentation, or online resources.

This document is not a deployment guide; the suggestions presented here are high-level and do not require detailed system sizing. We do suggest, however, that you save old settings and parameters so that you can reinstate them if the setting suggested in this guide does not meet your expectations in terms of performance improvement. Use this document as a set of rough guidelines that you can adjust to meet your deployment requirements and specific configuration.

Page 8: Best Practice 5 En

Introduction

8 Business Objects Documentation Supplement

Page 9: Best Practice 5 En

Tuning the System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

In this chapter

❑ Network and System Configuration 10

❑ General Server Tuning 12 Windows Specific 12 UNIX Specific 13

❑ Web Servers 13 IIS Web Server on Windows 14 Apache Web Servers on UNIX 14

Page 10: Best Practice 5 En

Tuning the System

10 Business Objects Documentation Supplement

Network and System Configuration

• Closely monitor your system for bottlenecks, especially when performance is less than satisfactory. Bottlenecks are caused when part of the system is not running fast enough to keep up with the demands placed on it. The most common bottlenecks occur for the following reasons:

• Slow disks or disk arrays aren't able to handle I/O requests quickly enough

• The system is starved for memory, so applications are forced to swap to disk, which can slow response

• The system is out of processor power

• The network interface is overloaded

• Remove as many network components in the system as possible between the WEBINTELLIGENCE server, the repository and the corporate databases. Keep all the system components physically close to each other. It is especially important to keep the database and the WEBINTELLIGENCE server close to each other.

• Put WEBINTELLIGENCE, the repository and the corporate database on a switched hub, preferably the same switched hub. This hub should be running at at least 100 mbps full duplex.

• Use the fastest network cards and hardware possible.

• Remove all unrequired protocols.

• Use optic fiber when possible.

• Keep all system components in the same subnet and going into a dedicated switch.

• Any extranet server should have as few devices as possible between it and the WAN connection.

Page 11: Best Practice 5 En

Network and System Configuration

Business Objects Documentation Supplement 11

• Under Windows 2000, select Background services in the Application response box (My Computer > Properties > Advanced > Performance Options):

Note: Under Windows NT4, set the Foreground Application Performance boost to None (My Computer > Properties > Performance).

Page 12: Best Practice 5 En

Tuning the System

12 Business Objects Documentation Supplement

General Server Tuning

• The server should be dedicated to WEBINTELLIGENCE system usage.

• Purchase machines that will allow more CPUs to be added later. CPU will often be the first resource that WEBINTELLIGENCE uses up.

• You can never have too much memory on a server. Remember, though, that memory is not the only possible bottleneck in a deployment.

• When estimating the number of servers you need for your user population, use the formulas contained in the Business Objects documentation, specifically the Deployment Guide and the UNIX Performance, Optimization and Sizing Guide in particular if you have a UNIX server, but understand that these are just general guidelines. Each configuration and type and conditions of usage is different; you will only be able to pinpoint what your optimal configuration is by benchmarking, benchmarking and more benchmarking.

• “The most serious bottleneck is an overloaded or slow disk (I/O).” from Sun Performance and Tuning, Adrian Cockcroft & Richard Pettit. Choose SCSI disks for the best I/0 performance and, if using RAID arrays, put frequently accessed files on RAID 0 or 0+1.

• Use RAID disks for Storage, with the operating system on its own disk (RAID 0 or 1, and the Application and WEBINTELLIGENCE servers on RAID 5).

Windows Specific• Uninstall extraneous applications present on the machine, like Outlook

Express, MS Wallet, etc.

• Stop the SMTP and ftp publishing services, and all other unused Windows services.

• Change display properties from 65536 to 256 or fewer colors, and 800 x 600 display.

• For Windows deployments, install WEBINTELLIGENCE on an NTFS (NT File System) partition.

• Ensure that you have set the correct default language:

• On Windows NT: Start Menu > Settings > Control Panel > Regional Settings > Regional Settings > Set as system default locale

• On Windows 2000: Start Menu > Settings > Control Panel > Regional Options > Set Default

Page 13: Best Practice 5 En

Web Servers

Business Objects Documentation Supplement 13

• Use a defragmentation utility regularly to maintain a well-optimized disk subsystem.

• Use a fixed size for the Paging File size rather than a dynamic one (Control Panel > System > Performance tab).

• On Windows server machines in general, never log on at the console. This will slow down your server.

• Regularly check for memory shortage by monitoring the system’s total virtual memory usage over time (including physical RAM and paging file usage), using Performance Monitor. If the paging file is constantly being resized, there is insufficient physical memory.

• Paging files should go on the fastest disk or RAID array.

UNIX Specific• Check for redundant processes and programs and remove them.

• On Solaris, use 1 GB RAM for 2 CPUs on NT, and 1 GB RAM for 1 CPU.

• Have plenty of free disk space and make sure the permanent page file is set to approximately 150% the physical RAM.

• Refer to the UNIX Performance, Optimization and Sizing Guide for UNIX-specific, detailed sizing and optimization instructions.

Web Servers

Web servers are an element of your deployment that can be tuned relatively easily to improve performance. If you are deploying a cluster, you can put your web server on a Windows or a UNIX node, but UNIX is recommended because it has the best throughput.

Never bind web servers to virtual IP addresses. You can bind web servers on the same network interface in other ways, such as by binding them on different ports rather than addresses.

For example:webserver1 = http://ipaddress:8080

webserver2 = http://ipaddress:9090

Page 14: Best Practice 5 En

Tuning the System

14 Business Objects Documentation Supplement

IIS Web Server on Windows• Increase memory cache size for IIS.

• Measure the amount of HTML produced and the time it takes to produce it (see the Deployment Guide for more information). If it takes too long, modify the document to take less time: try creating multiple reports (tabs) in full-client documents, or creating a hyperlink index in WEBINTELLIGENCE documents.

Apache Web Servers on UNIXCompile your Apache web server to run in DSO mode. Not only can you dynamically link in other modules such as SSL, but it runs much faster than CGI mode while still being able to process CGI requests.

• Enable access and error log files. They do not impact performance.

• You may also want to edit the Apache httpd.conf file and edit the following parameters to optimize the performance of your web-based deployment:

Note: These parameters were adjusted and tested internally to quantify the effect of the new values. These tests were executed on a WEBINTELLIGENCE 2.7 deployment. The adjusted values are applicable to the tested deployment. Adjust these parameters then test your deployment before definitively changing these values.

Tip: Keep backup text versions of configuration files so that you can reinstate old values if the adjusted values prove ineffective after testing.

• KeepAliveTimeout: we recommend increasing this to 120

• MaxClients: set this to at least the maximum number of users likely to log in to your system. Another possibility is to set MaxClients to 2.5 times the number of concurrent users (2.5 times the maximum number of users actively using the system at any one time; example: for 20 concurrent users, 20 * 2.5 = 50 MaxClients)

• MinSpareServers (set this to the average number of users * 3)

• MaxSpareServers (set this to the peak number of users * 3)

Page 15: Best Practice 5 En

Web Servers

Business Objects Documentation Supplement 15

There are many other parameters you can change. See both the Installation and Update Guide for UNIX and the UNIX Performance Optimization and Sizing Guide for more information.

Page 16: Best Practice 5 En

Tuning the System

16 Business Objects Documentation Supplement

Page 17: Best Practice 5 En

Tuning your BusinessObjects Deployment

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

In this chapter

❑ Skill Set Requirements for Business Objects 19

❑ WebIntelligence Clusters 21

❑ Configuring the Cluster Modules 21 General Advice 21 WIGenerator 22 BOManager 22 WISessionManager 24 WIStorageManager 25 WIDispatcher 26 Broadcast Agent Manager 26 WIAPIBroker 26

❑ Deploying with Distributed Architecture 26

❑ Universe Design and Development 27 Universe Design 27 Universe Development 28 Classes and Objects 30

Page 18: Best Practice 5 En

Tuning your BusinessObjects Deployment

18 Business Objects Documentation Supplement

Universe Joins 31 Universe Connections 31

❑ Supervisor and the Repository 32

❑ Accessing Data 36

❑ Connectivities 37

❑ Bomain.key File 39

❑ Troubleshooting 39

❑ Storage 40

❑ UNIX Specific Tips 40

❑ WebIntelligence OLAP Administration 41

Page 19: Best Practice 5 En

Skill Set Requirements for Business Objects

Business Objects Documentation Supplement 19

Skill Set Requirements for Business Objects

This section is a brief reminder of the skill sets required for using various products of the BUSINESSOBJECTS product suite. For products not in this list, and for the most up-to-date information on each product, refer to product documentation. You can search for and download product documentation from:

http://www.techsupport.businessobjects.com

Use the Documentation Roadmap, available on the Documentation page, to locate the documentation you need. This roadmap provides you with a starting point for approaching documentation about installing, configuring and using your Business Objects solution.

Deployment Skill Set RequirementsThis person should be familiar with the hierarchical structure of his or her company, have basic Windows and/or UNIX administration skills and a basic knowledge of the products in the Business Objects product line. Refer to the Deployment Guide for information.

Installation Skill Set Requirements

The person responsible for installation of Business Objects products should have the following skill set:

• For desktop products: Windows administration knowledge

• For the Enterprise Server Products: Windows NT and/or Unix administration, web server administration, network administration, basic knowledge of the products in the Business Objects product line. Refer to the Installation and Update guides (UNIX and Windows) for information.

BusinessObjects Skill Set Requirements End users who build BUSINESSOBJECTS documents using personal or corporate business data should be familiar with the Microsoft Windows desktop environment and conventions. Refer to BusinessObjects User’s Guide for information on the additional skills required.

Designer Skill Set Requirements

A universe designer should have a good working knowledge of SQL and of relational database management systems. In addition, this person should be familiar with the type of data and the logical structure of the organization’s databases. Refer to the Designer’s Guide.

Page 20: Best Practice 5 En

Tuning your BusinessObjects Deployment

20 Business Objects Documentation Supplement

Supervisor Skill Set RequirementsThis person should be familiar with the way organization of the company, and have a basic knowledge of the products in the Business Objects product line. Refer to Supervisor’s Guide for information.

WebIntelligence System Administrator Skill Set Requirements

System administrators must have a working knowledge of the concepts of distributed computing systems, HTTP server technology, and large server systems. To successfully install WEBINTELLIGENCE, the person or team of people installing the WEBINTELLIGENCE system must have the following skills:

• Windows or UNIX administration skills

• Database connectivity administration skills

• Web server administration skills

Refer to WebIntelligence System Administrator’s Guide for information.

Developer Suite and Application Server Skill Set Requirements To configure application servers to work with Business Objects products, you should have a working knowledge of the concepts of distributed computing systems and HTTP server technology. You should also have a basic knowledge of the products in the Business Objects product line. Familiarity with WEBINTELLIGENCE is assumed. Refer to Installing and Configuring Application Server for information.

Page 21: Best Practice 5 En

WebIntelligence Clusters

Business Objects Documentation Supplement 21

WebIntelligence Clusters

• Disable network connections to other servers on cluster nodes (mapped drives).

• On Windows cluster nodes, disable the following services:

• NNTP

• SMTP

• MSDTC

• IIS -- unless you need to use the IIS web server!

Although single OS platform clusters are the best, you can mix Windows and UNIX servers in the same cluster, but you must remember the following rules:

• Always put the cluster manager on a UNIX server.

• You can put your web server on a Windows or a UNIX node, but UNIX is recommended because it has the best throughput.

• Put your printer on a Windows node, because UNIX machines can print directly to Windows printers whereas Windows machines cannot print directly to UNIX printers.

Configuring the Cluster Modules

General Advice• Disable logging whenever and wherever it is not absolutely necessary. This

includes WEBINTELLIGENCE internal and user activity traces, as well as logging on the web server, CORBA/ORB, and middleware. Note that user logging must be enabled if AUDITOR is being used.

• Use the WIGenerator parameter Node Load Factor to take full advantage of the capacity of each cluster machine.

• To minimize dead user sessions due to users closing the browser rather than logging out, drop WIGenerator and other module timeouts to 20-30 minutes. You can set session timeout to 60 minutes.

• If possible, process thin-client documents on certain machines, and full-client documents on others.

Page 22: Best Practice 5 En

Tuning your BusinessObjects Deployment

22 Business Objects Documentation Supplement

• Put the heavier processing load on cluster nodes, leaving the cluster manager freer to perform its control and management functions.

• Use the fastest disk possible on the server running the WIStorageManager and WISessionManager, as the throughput on this server is one of the critical aspects for performance.

• In larger deployments, an all cluster manager deployment (therefore multiple clusters, using a Cisco Local Director or equivalent) may be the best strategy if you are concerned about system uptime. If every machine is a cluster manager, failover is excellent! Multiple session managers can speed up login, and can, depending on the workflow, minimize network traffic. Note that this multiple cluster manager configuration is not supported for use with a single instance of AUDITOR.

WIGenerator• Enable a WIGenerator on the same machine as the web server and the HSAL.

• Enable WIGenerator processes on nodes where BUSINESSOBJECTS processes are not enabled, and vice versa. Performance is improved when specific nodes process full-client or thin-client documents.

• Enable no more than one instance per processor.

• If you’re using WEBINTELLIGENCE 2.6 SP1 or later, use multiple instances of WIGenerator on a single server as a way of preventing a single instance from becoming a bottleneck if multiple WIQT processes are launched simultaneously.

BOManagerThe BOManager is the server responsible for launching and handling busobj processes. To prevent the BOManager from trying to load too many busobj processes, we recommend that you leave the following BOManager parameters

Page 23: Best Practice 5 En

Configuring the Cluster Modules

Business Objects Documentation Supplement 23

at the default values specified in the WEBINTELLIGENCE Administrator Panel, or if you increase them, to tune them to values inferior to the values in the following table:

* Note the following definitions: loaded processes refers to the number of processes alive on the server at a given time. Concurrent processes refers to the number of active processes (processes which are opening, refreshing, calculating full-client documents) at a given time

** The Deployment Guide provides formulas for estimating the amount of memory required for busobj and wiqt processes running on one server. As these formulas indicate, increasing the number of busobj processes on a server increases the amount of memory required on the server.

BOManager Parameter

Default Value

Maximum Recommended Value

Max. number of busy processes

4 Set this value the maximum number of users concurrently using a busobj process.*Consider CPU and memory restrictions when setting this value (this value should be less than 5 per processor).

Max. number of loaded processes

10 This value must be greater than the Max. number of busy processes value. This value should be less than 28 for standard deployments.This value must be less than the limit permitted by the memory on the server.**

Min. number of loaded processes

2 Set this value to 1, then increase up to 7.5 per processor.*

Page 24: Best Practice 5 En

Tuning your BusinessObjects Deployment

24 Business Objects Documentation Supplement

Refer to...

Note: The above settings must be considered in light of available RAM and the setting for non-interactive heap in servconf. If the non-interactive heap is set to 1536 (for large documents), you may need to decrease the number of BUSINESSOBJECTS processes, since there is only 40 MB available for the heap.

• Drop the Recycle Process (actions) parameter down to 10 for stability; this avoids getting unhandled_exceptions from BUSINESSOBJECTS processes.

• Drop the Delete inactive process after parameter to 1 or 2 minutes so the same process isn’t used over and over.

• If you’re having stability problems, increase the Keep exclusive process setting to 120. This may hurt performance, but it should improve stability.

• For faster full-client document display, install a printer driver on every machine on which this module is enabled. This enables the BOManager to use the local printer driver to determine the details necessary for displaying the document.

WISessionManager• With WEBINTELLIGENCE 2.5, you must synchronize the WISessionManager

timeout with the BOManager parameter: Delete inactive process after. This is not necessary for WEBINTELLIGENCE 2.6.

...this guide: for this information:

the Deployment Guide complete and detailed information on server memory requirements

the WebIntelligence Administrator Panel online help

tuning BOManager parameters

WebIntelligence System Administrator’s Guide

a description of each parameter mentioned above

Page 25: Best Practice 5 En

Configuring the Cluster Modules

Business Objects Documentation Supplement 25

WIStorageManager• Enable more than one WIStorageManager in a cluster and enable shared

storage. This allows you to have both load-balancing and failover between these modules.

• Even if you enable this module on a cluster node, enable it on the cluster manager as well.

• Increase the Storage maximum size to a size that is appropriate for your deployment, depending of the amount of disk space available (the default size is100 MB). This cache should be big enough to store all the documents from the repository (potentially very large) in addition to the *.html, meta file and *.pdf versions of those documents.

Page 26: Best Practice 5 En

Tuning your BusinessObjects Deployment

26 Business Objects Documentation Supplement

WIDispatcher• Enable WIDispatcher on the same machine as the web server and the HSAL.

If you have more than one web server, you should enable this module on each machine hosting a web server.

Broadcast Agent Manager• Enable Broadcast Agent Manager on at least two nodes per cluster, as a way

of providing failover.

• Don’t enable Broadcast Agent Manager on a machine running a resource-intensive process such as WIGenerator.

• Start the value for the Nb max running jobs parameter to 4 for a Quad machine (1 per CPU), then slowly increase it if performance allows.

• Do not set the Update Repository Delay parameter to Low. This can create a bottleneck of repository updates run at once. The default is 5 minutes. Use a value no lower than 60 seconds; a shorter interval cannot cope with a high volume of documents.

WIAPIBroker• Enable this module on each machine running WICOM or WIBean objects

(WEBINTELLIGENCE SDK).

Deploying with Distributed Architecture

When your deployment consists of clusters at different geographical locations:

• If your WAN is fast, centralize your security domain so that you can implement uniform security standards for all locations and control data access.

• Install BROADCAST AGENT on the WEBINTELLIGENCE server at each local site so that you can run the query and store the document. Importing and exporting documents to the local document domain will be more rapid.

Page 27: Best Practice 5 En

Universe Design and Development

Business Objects Documentation Supplement 27

Universe Design and Development

The following is a general workflow for universe design:

1. Identify reporting requirements.

2. Identify the database schema relevant to the universe you are creating.

3. Identify the primary and foreign keys of that schema.

4. Ensure there is representative data in that schema.

5. Ensure that the data and structure of that schema is stable and not likely to change dramatically during development without warning.

6. Insert universe tables one at a time, not in bulk, understanding how each table relates to rest of the universe.

7. Insert joins based on primary and foreign keys.

8. Decide on cardinalities of joins. Specify cardinalities manually as opposed to using the Detect Cardinalities feature in DESIGNER, because this feature relies on the structure and content of the database. Knowledge of primary and foreign keys will assist in cardinality decision.

9. Build relevant objects.

10. Test the universe by building queries in BUSINESSOBJECTS

11. Add any other elements to universe such as predefined conditions, hierarchies

Universe Design

Follow the general workflow and the following tips to design an effective universe that meets end users’ needs:

• Involve users at every step of the universe design and production process, especially in naming objects (this ensures the terminology is correct). During the Build phase, use the iterative process known as Rapid Application Development (RAD), which uses a group of pilot users to test the universes, provide feedback, test modifications, provide feedback, etc. This feedback loop is critical and will result in a more effective universe that will ultimately facilitate ad-hoc queries.

Page 28: Best Practice 5 En

Tuning your BusinessObjects Deployment

28 Business Objects Documentation Supplement

• Keep the universe business-focused, for example when naming objects and classes.

• Build universes by referring to existing company documents.

• Build universes by starting with user requirements.

• Specify standards for:

• Universe names: always carefully choose the universe name, as renaming a production universe is not recommended. If you change a universe name, you will have to repoint all documents created in that universe to the new name.

• Object definition guidelines

• Simple object names

• Complex object names

• Aggregate object names

• Class names

• Alias names

• Help text

Universe DevelopmentTake user requirements at face value, remaining in business terms. Basic rules of thumb:

• Do not normalize. Database designers apply a series of rules to eliminate redundancy of information in a database, i.e. having the same piece of data stored in more than one place. Use Multi-Dimensional Modeling instead.

• When several developers are working on one universe, remember that the Lock universes on import feature will only prevent people from exporting over the universe in the repository. This feature will not prevent someone from importing the universe and making changes, although they will not be able to export those changes back to the repository until the lock has been removed. Therefore if several developers have the ability to import and export the same universe, coordinate their efforts to avoid development on a universe that is out of date.

• Use the comments text box (File > Parameters > Summary > Comments) to record the status and changes of a universe for other developers. This text is only visible in DESIGNER, whereas the description text (shown on the Definition tab) is visible to end users when they select an available universe.

Page 29: Best Practice 5 En

Universe Design and Development

Business Objects Documentation Supplement 29

Use this latter description to represent a business description of the universe's purpose.

• Always define cardinality, even for self joins, to avoid cardinality warning messages.

• Lay out your structure window with cardinalities facing the same direction. This helps you identify and visualize the contexts.

• Use the Tools > Detect Contexts feature of DESIGNER to manage your contexts.

• Always arrange tables logically in the structure window.

• Always detect loops and contexts.

• Always check integrity.

• If the universe is bigger than 1MB, divide it into multiple universes. When you select File > Open, you load the universe into RAM. For example, if the universe is 1.39 MB, then it uses 1.5MB RAM. This could have had an impact on the RAM available to your system.

• Use aggregate awareness, which speeds up query time by using special tables containing pre-calculated data. Do all aggregation on the server side instead of in the document (this can result in huge time savings).

• Define aggregate SQL functions on universe measures. Fewer rows will be returned from the database thus making reports smaller and the calculation of their variables, ranks and alerters quicker.

• Remove unnecessary lists of values, such as on dates and measure objects.

• Base lists of values on lookup tables.

• After the Build phase, ensure an adequate Quality Control phase to verify the universes for technical accuracy (adherence to standards, review of object definitions for syntactic accuracy, validation of joins).

• In DESIGNER, under File > Parameters > SQL, set the following parameters:

• Set Cartesian products to Prevent. Universes should not allow Cartesian products since they are a symptom of incomplete joins and will affect performance and accuracy of query results.

• Select the multiple path options as shown below. Multiple SQL statements for each measure can negatively impact performance, although you may choose to enable this option during development since it may solve some

Page 30: Best Practice 5 En

Tuning your BusinessObjects Deployment

30 Business Objects Documentation Supplement

fan trap situations.

Classes and Objects• Do not use WHERE clauses in objects. Refer to the Designer’s Guide for more

information.

• Do not eliminate objects that can be derived from other objects (for example, don’t eliminate a Year of Sale object because you have already recorded a Date of Sale object).

• Use the minimum possible objects in a universe. 500 objects is the recommended maximum, because if there are too many objects, it takes users too long to find the objects they need.

• Create filter objects when possible. They make BUSINESSOBJECTS easier to use. For example, create an object called Year 2001. For users, it is easier to select this filter than build the condition themselves (they’d have to select the object, open an "Equal to" prompt, then type in 2001).

• Consider putting the full class path and object name in the object’s description. This may be a laborious process but one which is useful if you are working with a large universe. That way, when you open the query panel and

Page 31: Best Practice 5 En

Universe Design and Development

Business Objects Documentation Supplement 31

point to an object in the results or condition panes, its class appears in the object description pane.

• Always define help for objects. Start the help off with the object’s full name: this is particularly helpful to users if the object’s name is very long and cannot be fully displayed in the Query Panel.

• Dimension, Measure and Detail objects should be within their logical classes unless the measure objects are generic to the whole universe, in which case a General Measure class is created.

• Create a separate class for conditional objects. This gives the user immediate focus as to where the conditions reside and avoids ambiguity. If necessary, create separate subclasses within the Conditions class to organize the conditions logically.

• When renaming objects, do not copy and paste objects from one class to another and then cut the original objects. This method will cause errors in the Query Panel. Instead, simply drag and drop the object from one class to another and then rename the object. The Query Panel identifies an object by its ID and also by its name. If you change an object’s name, the Query Panel can find the object by its ID. If you drag and drop an object around the universe it will keep its ID, and the Query Panel will not generate an error.

• Format objects and measures within the universe. This prevents users having to spend valuable time formatting data from within the reporting tool every time they create a report.

Universe Joins• Avoid building universe tables with no joins, even if these tables are just

snapshots of Oracle materialized views.

• Optimize database performance by using shortcut joins. Shortcut joins provide an alternative path between two tables. Shortcut joins can improve query performance by using shorter paths and bypassing intermediate tables.

• Avoid outer joins where possible. Outer joins may have a negative effect on performance since more rows are returned. Additionally, some databases will not use indexes when outer joins are involved.

Universe ConnectionsWe recommend the following settings in File > Parameters > Edit Connection > Advanced:

Page 32: Best Practice 5 En

Tuning your BusinessObjects Deployment

32 Business Objects Documentation Supplement

• Keep the connection alive for X minutes: this prevents repeatedly opening and closing connections, and keeping connections open for excessively long periods. Set X according to your deployment needs, but we recommend limiting the connection to 10 minutes maximum. The most stable solution is to select the Disconnect after each transaction option.

• Array fetch size: test your deployment for the best array fetch size. Tuning this parameter can significantly reduce the time it takes for the query results to be returned. Increase the array fetch size when you have good network with low latency. If you have a slow network and high latency then you are often better with a lower value. Try different parameters: 1, 10, 20, 30, 40, 50, 100, 200, 500, 1000 and use the value that provides the best performance on your deployment. This parameter also exists in the connections to the Repository. Changing this parameter for the Document Domains can improve the time it takes to import and export documents by a considerable margin, and BROADCAST AGENT and WEBINTELLIGENCE will run faster as a result. It is important to test different parameter values from different locations, since results from one location may improve, while results from another location may decrease. The default provided by BUSINESSOBJECTS is often the best compromise.

Supervisor and the Repository

• When setting up your repository hierarchy, do not necessarily mimic your organization’s hierarchy, as it may result in the creation of levels and user groups which are functionally superfluous and degrade performance. Think carefully about the functions each user will realistically require, not the user’s hierarchical status in the organization.

• Restrict the number of groups to which individual users are assigned.

• There should be only two General Supervisors and once created should never be used except for cleaning up the repository and performing tasks only available to the General Supervisor profile such as adding and removing domains.

• Put the document and universe domain in the same database account as the security domain. If the connection is still open, the system can use connection pooling instead of creating another connection, which may help performance.

• Publish documents with normal Supervisor accounts only -- do not use the General Supervisor account. The General Supervisor can only publish at the Root Group level. If you do this, all sub groups have to check the enable/

Page 33: Best Practice 5 En

Supervisor and the Repository

Business Objects Documentation Supplement 33

disable flag on the document to see if it is enabled for their particular group. This leads to slower repository responses.

• It is strongly recommended that the repository domains are not administered via the same database account as operational data. This eases database maintenance and administration.

• Restrict the number of universes in a single repository.

• If the repository is likely to be large is it recommended that the repository is stored on a separate table space to that of the operational data.

• Under User Properties, the Full Checking identification strategy is not necessary if using NT Challenge Response.

• If NT authentication is not required, deselect the Enable WinNT authentication option in Tools > Options > Security Policy.

• If possible, deselect the Work with Timestamps and Work With Universe Overrides options in Tools > Options > Repository tab.

This reduces the number of SQL statements generated at login. This can improve performance over slow networks.

Work with TimestampsOption

Work with UniverseOverrides

Page 34: Best Practice 5 En

Tuning your BusinessObjects Deployment

34 Business Objects Documentation Supplement

• Enable Secured Mode in Tools > Options > Security Policy:

This is critical, as if this option is not checked, users can create other users with higher privileges than themselves, then use those logins, thereby circumventing the entire user privilege hierarchy.

• Disable all functions of Business Objects products for users who are not skilled enough are or not required to use them. This makes the products easier to use, and there is less risk of mistakes being made. (For example, in many situations, all the Query options in the Universe Parameters > SQL tab in SUPERVISOR can be disabled.)

Enable Secured Mode

Page 35: Best Practice 5 En

Supervisor and the Repository

Business Objects Documentation Supplement 35

• Closely monitor the size of the document domain. Refer to the Deployment Guide for details on memory requirements.

• Regularly purge all Inbox documents older than a given number of days from the repository. This lets you recover the document domain space taken up by documents which have been sent but not yet collected by users. This feature can be especially useful when regularly scheduled documents are sent using the Refresh according to the profile of each recipient option (report bursting).

• If you need to purge Inbox Documents, notify your users beforehand so they have time to retrieve the documents they require. Purges cannot be undone!

• Regularly delete old or outdated corporate documents from the repository. You can do this one document at a time, using the Tools > Delete Document command.

• Perform a regular "scan and repair" followed by a "Compact" on the repository at least once a week. This physically deletes all documents marked for deletion.

• If your repository contains lots of BUSINESSOBJECTS 4.x documents, re-publish them as 5.x documents. This optimizes document storage.

• In the Properties box of the top level group, select the Definitions tab. Check the Disable Login for 4.x release or earlier option, if your deployment does not require logins previous to the current release:

This reduces the amount of SQL generated at login.

optionversion loginDisable previous

Page 36: Best Practice 5 En

Tuning your BusinessObjects Deployment

36 Business Objects Documentation Supplement

• Keeping the set of default user rights in SUPERVISOR may improve the response time of the List of Values when an end user opens a document in INFOVIEW. The default user rights are displayed here:

• Select Enable Offline Login

• Select Enable Password Modification

• Select Enable Delete Document

Accessing Data

• Group different data sources in a single data warehouse. This will optimize the access and analysis of data for business users.

• Optimize your data source. Create aggregate tables and leverage the Business Objects aggregate awareness feature to speed up queries for summary data.

• Limit the number of Data Providers in order to increase the response time when retrieving the data.

Page 37: Best Practice 5 En

Connectivities

Business Objects Documentation Supplement 37

Connectivities

• By default, the Array Fetch Size for most databases is 50.

• Increase this value for fast networks.

• Decrease this value for poor networks.

• Limit the size of Result Set To when network performance is slow.

Page 38: Best Practice 5 En

Tuning your BusinessObjects Deployment

38 Business Objects Documentation Supplement

• Don’t forget that you can define connections in three places in SUPERVISOR:

• In the bomain.key file

• Tools > Repository

• Tools > Connections

Page 39: Best Practice 5 En

Bomain.key File

Business Objects Documentation Supplement 39

• The closer the corporate and repository databases are to the WEBINTELLIGENCE server, the better the performance.

• Ensure the latency of the network link between the WEBINTELLIGENCE server and the repository is as low as possible - under 10ms if possible. If the repository is on Oracle, you can use the TNSPing utility to test latency. If the latency is higher than 50ms, review the network structure and consider new switched hubs, relocation of the WEBINTELLIGENCE servers and repository database and to improve latency.

Bomain.key File

Always recreate the bomain.key file(s) when updating a version of BROADCAST AGENT, INFOVIEW or WEBINTELLIGENCE.

Troubleshooting

You can make troubleshooting your deployment easier by installing all modules (WEBINTELLIGENCE, BROADCAST AGENT, Zero Admin BUSINESSOBJECTS) plus the desktop products (BUSINESSOBJECTS, DESIGNER, and SUPERVISOR) on all server machines, then disabling individual modules depending on what products you choose to run on each machine.

This strategy is also useful when you make changes to your deployment: rather than having to uninstall or re-install different modules as the deployment’s needs evolve, you will be able to simply activate or deactivate the appropriate modules on the chosen server.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Troubleshooting an application

This strategy enables you to perform maintenance on the server that hosts an application while keeping the application available. For example, Server 1 hosts BROADCAST AGENT and requires maintenance. Since all modules of the BUSINESSOBJECTS suite, including BROADCAST AGENT, were installed on Server 2, you can simply activate BROADCAST AGENT on Server 2 (reinstallation is not necessary). Server 2 can serve as BROADCAST AGENT until maintenance is

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . performed on Server 1, and there is less interference to your deployment.

Page 40: Best Practice 5 En

Tuning your BusinessObjects Deployment

40 Business Objects Documentation Supplement

Storage

• Put important files such as databases on RAID 5 or RAID 1 because of their ability to recover data virtually instantly if a disk crashes. Use RAID 0 when speed is important (it is the only one of the RAIDs actually faster than a single hard drive).

• In cluster configurations, place the WIStorageManager drive outside the cluster configuration on a fast file server drive such as a RAID drive. This facilitates sharing if the cluster manager fails.

• Use shared Storage if you have a fast network. It allows both cluster nodes and multiple clusters using the same repository to share a single Storage space, which can be on a separate server or file system. This is beneficial in terms of storage space and failover.

UNIX Specific Tips

• If you distribute your WEBINTELLIGENCE system over several disks on a single UNIX server, we recommend you use 4 distinct partitions (each partition to be placed on one or more separate disks; a single partition may be defined within one, or over several striped disks):

• Partition 1: the WEBINTELLIGENCE software, including documentation

• Partition 2: the WIDATA directory and storage, containing user data

• Partition 3: the WEBITEMP directory, a temporary directory used by all concurrent users (whether this requires an entire disk, however, depends on how much user activity the system is supporting)This partition should be the most efficient for read/write access (for example, in the case of a write caching mechanism)

• Disk 4: the directories containing log and audit information.

• Mount the WEBINTELLIGENCE Temporary and Storage directories on a separate file system. These disks should have an extremely rapid I/O rate, especially for write operations.

• Use a separate directory for Audit files, regularly monitoring the disk space they use whenever the Audit utility is enabled.

• Create a link from the /var/tmp directory to a high-capacity disk, or to set the TMPDIR environment variable before starting the WEBINTELLIGENCE

Page 41: Best Practice 5 En

WebIntelligence OLAP Administration

Business Objects Documentation Supplement 41

system, with a directory mounted on a disk with lots of available space. This attenuates high peaks of disk use.

• For improved performance, set up your system to perform a routine at startup to clean up or backup log and audit files.

On Solaris, you can do this by customizing either of the following:

• The S99WebIntelligence script to perform this action at boot time.

• The wstart and wstop scripts to perform this action at each WEBINTELLIGENCE start and stop.

On AIX and HP-UX, you can do this by customizing the wstart and wstop scripts.

WebIntelligence OLAP Administration

OLAP servers are designed to initially present summarized, compact, aggregate data to the user. Users can then drill into the cube to view more detailed information. OLAP servers are optimized to retrieve data quickly. For information on OLAP servers and on WEBINTELLIGENCE OLAP, refer to WebIntelligence Guide for OLAP Data Sources.

Performance problems with WEBINTELLIGENCE OLAP may be linked to inappropriate querying. To optimize WEBINTELLIGENCE OLAP performance, carefully plan your document strategy, and match the appropriate technology to your queries, as follows:

Use OLAP for...OLAP data sources are fast and efficient for drilling into pre-calculated aggregate data, while they are less efficient in running queries with large volumes of details. Use WEBINTELLIGENCE OLAP for interactive, focused queries and drilling down to detail.

Use traditional SQL for...Running static queries that return a large number of detail rows and columns, with the intent of drilling up to the summary detail and exploring the data via filters, is a query strategy more appropriate for relational databases via BUSINESSOBJECTS. Traditional SQL is more efficient than OLAP servers for queries containing a large volume of details, while it is less efficient in executing highly summarized data.

Page 42: Best Practice 5 En

Tuning your BusinessObjects Deployment

42 Business Objects Documentation Supplement

Use UDS for...UDS DESIGNER allows you to take advantage of the capabilities of both a traditional relational database and an OLAP server. With this solution, users can analyze OLAP data and drill through to the relational reports. If your queries require this type of workflow, UDS provides the link to allow you to use both tools. Refer to the WebIntelligence OLAP Administration and Drill Through Guide for more information.

Page 43: Best Practice 5 En

Optimizing Document Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

In this chapter

❑ Document Design 44 BusinessObjects Documents 45 WebIntelligence Documents 46

❑ Improving Overall Document Computation Time 49

Page 44: Best Practice 5 En

Optimizing Document Design

44 Business Objects Documentation Supplement

Document Design

Dissatisfaction with the performance of a product is sometimes due to the user’s tendency to use the product in a way for which it was not designed. Documents that take a long time to run and refresh may not be designed in an optimal manner. Reports that are excessively long or complex may therefore lead to display issues such as long response time.

It is therefore important to strategically design documents with your system, network, and user population specifics in mind. These variables can be drastically different between deployments, and as a result, there are no fast rules on designing documents. The following general tips are designed to guide you in creating a document design strategy appropriate to your deployment:

• Documents over 200 MB will significantly impact performance. Keep and monitor your document size to well below this limit. The smaller the better. In general, limit document size to approximately 5 MB, but performance depends on your specific deployment, available resources, network specifics, etc.

• As with universe development, involve end users as soon as possible, as often as possible, and at every stage. Create document prototypes to demonstrate both for feedback and "educational" purposes. This will enable you to design the type of document that best needs your end users’ information needs.

• Define standards for document variable, block, table, chart, column, tab, and data provider names. This makes maintenance easier.

• Give each data provider a meaningful, user-friendly name.

• Produce a standard corporate document template, which may incorporate header/footer, title, logo, date/time, font and calculation formats. Save this as the default template.

• Whenever possible, use breaks to have better control over white spaces. Use sections for better navigability.

• Remove redundant or unused variables.

• Give each document a unique identifier. For example, make its title a combination of letters and/or numbers: A100, A101 etc. Keep documents in 'sets' and reflect this in the numbering. For example all inventory documents run from IN1000 to IN9999, all customer-related documents run from CU1000 to CU9999 etc. This makes identifying the document easier for retrieval, removes any confusion when relating to technical support.

Page 45: Best Practice 5 En

Document Design

Business Objects Documentation Supplement 45

• Restrict the amount of data returned to the client by placing conditions on query objects. This is especially valid over slower networks.

• Use user prompts in standard documents to restrict data and display relevant data to individual users under a common format. This can reduce the number of documents being developed for multiple users, and it avoids the possible wide-scale distribution of documents containing large and potentially irrelevant amounts of data.

BusinessObjects DocumentsThe following tips are specific to full-client (BUSINESSOBJECTS) documents:

• When creating full-client (BUSINESSOBJECTS) documents, reduce the number of calculations in a document to the required minimum (including the count calculation). Calculations (variables and formulas) created at the document level are performed upon the opening of the report by the BUSINESSOBJECTS process (BusObj on Windows and bolightsvr on UNIX). The more variables and formulas created at the document level, the heavier the load on system resources, and the greater the impact on performance when the report is opened or refreshed.

• With BUSINESSOBJECTS documents, have the first tab be a cover sheet containing information about the document. This opens up very quickly even if the tabs have to be generated.

• It’s better to create a single document with multiple report tabs rather than separate queries for separate documents, as this will result in more efficient processing for an On-Line Transaction Processing (OLTP) system.

• You can create different BUSINESSOBJECTS reports by adding more tabs that represent the data in numerous ways or use filters to display different values for a dimension for each report tab. This method works well with universes built on transaction databases where performance is an issue.

Page 46: Best Practice 5 En

Optimizing Document Design

46 Business Objects Documentation Supplement

• Limit data providers in the creation of a BUSINESSOBJECTS documents. Each data provider requires a separate connection to the database. A BusObj/bolightsvr process synchronizes all the data from each provider. The more data providers need be synchronized, the more machine resources are required by the BusObj/bolightsvr to accomplish this task.

• If you have multiple reports on separate report tabs and these reports draw their data from the same source, do not create a separate data provider for each report. Instead, create a “base” data provider that contains the data used by all the reports. Since BUSINESSOBJECTS retrieves data for each data provider, it is more efficient to retrieve data once and distribute it to several reports than to retrieve the same data several times.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Create reports showing revenue by country and resort, and revenue by country

In this example the Revenue and Country objects are common to both reports. Instead of creating a data provider for each report you create a data provider containing the Revenue, Country, and Resort objects and use these objects in both reports.

You can use the Query Panel to modify a data provider by selecting:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data > Edit Data Provider.

• Create Summary / Detail documents in BUSINESSOBJECTS using View > Outline. This allows you to fold and unfold the sections and/or data that corresponds to a break in the current block.

• Break up large BUSINESSOBJECTS documents into separate report tabs, so that the PDF/HTML is only generated for the tabs that the user requests. Less data is therefore transferred to the client browser.

• Choose the presentation format for BUSINESSOBJECTS documents according to their intended distribution media.

WebIntelligence DocumentsThe following tips are specific to thin-client (WEBINTELLIGENCE) documents:

• Avoid calculating sums and percentages in WEBINTELLIGENCE documents encompassing several thousand rows. The count calculation has a negative impact on performance on very long documents.

• Avoid designing 600-page long WEBINTELLIGENCE documents! This is a guideline, and not a concrete limit, but consider the impact on the server of processing such a document. Beyond the document processing stage, consider

Page 47: Best Practice 5 En

Document Design

Business Objects Documentation Supplement 47

the load on your network as the client requests such a document. Consider the number of users that request this particular document. All of these performance factors contribute to the response time of large and complex documents. Large WEBINTELLIGENCE documents have an especially negative impact in extranet and WAN deployments, which are network-bound. The smaller the web pages transferred to the client, the less client’s response time is affected by the network.

• Use drill functionality or the WEBINTELLIGENCE hyperlink index for section navigating.

Hyperlink

Drill

Index

Functionality

Page 48: Best Practice 5 En

Optimizing Document Design

48 Business Objects Documentation Supplement

• When creating WEBINTELLIGENCE documents, use the Row Count per Page option in the Web Panel.

This allows you to cut your document page by page. This may help some performance issues, as users will be able to see the first page of the document before the server can download the other pages.

Page 49: Best Practice 5 En

Improving Overall Document Computation Time

Business Objects Documentation Supplement 49

Improving Overall Document Computation Time

• For BUSINESSOBJECTS documents:

• Keep the number of variables to a minimum.

• Avoid linking multiple queries into a single document.

• Avoid having a single query with multiple select statements being "joined" or "synchronized" by BUSINESSOBJECTS.

• For Oracle connectivities, right-click on a table and use the Number of rows in table option. This can optimize querying when Oracle is running in rule-based mode.

• Install a printer driver on all Windows servers on which BOManager is enabled. This speeds up the display of the BUSINESSOBJECTS documents by enabling the busobj process to obtain display information from the driver. Any driver is appropriate, and a physical printer is not required on the system.

• From Service Pack 4 and later, you can optimize performance of your UNIX WEBINTELLIGENCE deployment by editing the following variables in the MyWebiEnv.sh file:

• BO_ProcessTypeFileInMemory: This setting allows you to specify the type of file to be loaded into memory. You can specify the file name in association with a wildcard (for example *) and the file extension in association with a wildcard (for example .*). You can specify several patterns, separating each of them by : (for example .*:*). The files specified will be loaded into memory during the session instead of being accessed from the file system.

• BO_BlocSize: This setting allows you to define/tune the minimum size (in bytes) for memory allocation, therefore reducing the number of reallocations due to consecutive small memory consumptions during a session.

• BO_FileInMemoryMaxSize: This setting allows you to define/tune the maximum size (in KB) for memory allocation when loading a file into memory, in association with the BO_ProcessTypeFileInMemory variable. Any document larger than the specified value will be accessed from the file system. This setting helps to protect against memory overload when handling large files.

• BO_AIX_NODEFERMODE: This setting only applies to the AIX platform. The DEFER mode is not accurate and should not be activated when activating the Memory caching mechanism with the variable

Page 50: Best Practice 5 En

Optimizing Document Design

50 Business Objects Documentation Supplement

BO_ProcessTypeFileInMemory and BO_FileInMemoryMaxSize, as explained above. In this case, you must deactivate DEFER mode by setting the variable BO_AIX_NODEFERMODE.

Refer to the WEBINTELLIGENCE readme for more information and examples on how to set these variables.

• Do not store data within a full-client document, especially if the document will be refreshed on open in INFOVIEW. In BUSINESSOBJECTS, when you export a document to the repository, make sure the data is purged from the cube: View > Data Manager > Results tab, Purge button.

As a document without data takes up less space in the repository, the export, import and refresh of the document are considerably quicker, as is the opening of the document in INFOVIEW.

Purge

Page 51: Best Practice 5 En

Improving Overall Document Computation Time

Business Objects Documentation Supplement 51

• Do not store HTML within a document, especially if the document will be refreshed on being opened in INFOVIEW (File > Publish to Corporate Documents, HTML Options button: Deselect the Store generated HTML in document option).

• You can reduce the time it takes to open the BUSINESSOBJECTS document and generate the HTML by breaking down the document into smaller documents and/or by breaking the report into separate report tabs. We suggest that you:

• Create a document per section and/or per report tab.

• Reduce the number and/or the complexity of the formulas in your documents whenever possible.

Note: With WEBINTELLIGENCE and BOManager, the HTML is generated for each report tab on an on-demand basis. Therefore, breaking up a BUSINESSOBJECTS report into several smaller reports within the same document will improve performance by generating (and transmitting to the client browser) only the HTML for the tab that the users actually select, as opposed to generating the entire HTML the entire document at once.

Uncheck thisOption

Page 52: Best Practice 5 En

Optimizing Document Design

52 Business Objects Documentation Supplement

Page 53: Best Practice 5 En

Enhancing Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

In this chapter

❑ Improving Login Time 54

❑ Enhancing Performance/Usability from InfoView 55

❑ Enhancing Performance from BusinessObjects 56

❑ Enhancing Performance from BusinessObjects 5i in 3-Tier Mode 58

❑ Enhancing Performance from Broadcast Agent 58

Page 54: Best Practice 5 En

Enhancing Performance

54 Business Objects Documentation Supplement

Improving Login Time

• Login time from a v4.x repository to a v5.x repository is improved when the client is also v5, as v5 uses an array fetch size (sends multiple rows at once).

• Login time improves if users belong to only one group, if the repository hierarchy contains fewer than three levels, and if few security restrictions are applied. This is particularly noticeable on poor networks.

• Increase the array fetch size in the bomain.key file. This should dramatically improve login time. But be careful about increasing this; if you have a user base all around the world, a high array fetch size may work less well if they need to go around the world. Test this properly.

• Use inheritance as often as possible for group's user rights. Inheritance works faster than setting specific group rights.

• Users should exist in only one group. If the user exists in more than one, the login time will increase.

• Disable the Enable real time user right update option. This means the user’s list of available universes is not checked against the repository in real time, but against the user’s own security files at the beginning of each session.

Page 55: Best Practice 5 En

Enhancing Performance/Usability from InfoView

Business Objects Documentation Supplement 55

Enhancing Performance/Usability from InfoView

• Have INFOVIEW users select the Enhanced Document Format viewing option rather than Standard HTML format in the Personal Options page.

• It provides a much more precise rendering of the document.

• The presentation is generated and streamed to the client browser page by page, not per tab or section.

• The server compresses the enhanced presentation before it is streamed to the client browser, where it is decompressed. This conserves network bandwidth and further improves performance.

• Have all users with BUSINESSOBJECTS 5.1 installed on their desktop select the BUSINESSOBJECTS option for viewing BUSINESSOBJECTS documents.

This minimizes the number of resource-intensive BUSINESSOBJECTS processes running on the server.

Page 56: Best Practice 5 En

Enhancing Performance

56 Business Objects Documentation Supplement

• Use categories! It makes INFOVIEW easier to use, and makes it easier to find the documents you need.

Enhancing Performance from BusinessObjects

• Make full use of the system’s presentation cache by scheduling corporate documents using the Faster Document Viewing Over The Web options in BUSINESSOBJECTS:

• Click File > Publish to Corporate Documents > Schedule > Actions tab:

Select this Option

Page 57: Best Practice 5 En

Enhancing Performance from BusinessObjects

Business Objects Documentation Supplement 57

• Click the Options button:

• In BUSINESSOBJECTS, schedule the frequent refresh of the corporate documents that you expect will be accessed by a significant number of WEBINTELLIGENCE users (for example, every 10 minutes). This will ensure that these documents are always up-to-date and that users won’t need to refresh the documents themselves. Next, disable full-client refresh rights for all users. Because the documents are refreshed so frequently, users are automatically guaranteed up-to-date documents anyway. WIQT processes are therefore used for user validation only, and the interaction between the server, the repository and the RDBMS is kept to a minimum.

• Consider having client-server mode users login in offline mode. This saves time because offline mode establishes a direct connection with the database(s) containing document data and bypasses the need for frequent transactions with the repository— a frequent source of system bottlenecks. 3-tier users can work locally to analyze previously refreshed reports, but cannot hit the database offline since in 3-tier mode, all transactions with the database are conducted via the WEBINTELLIGENCE server.

The disadvantage of this is that all document exchange is denied. It also means that new documents, modifications in users, etc. are not taken into account.

Page 58: Best Practice 5 En

Enhancing Performance

58 Business Objects Documentation Supplement

Enhancing Performance from BusinessObjects 5i in 3-Tier Mode

Network is the biggest issue in 3-tier deployments of BUSINESSOBJECTS. 3-tier deployments over Wide Area Networks may experience performance problems due to low network speed and high network latency.

If you have network issues with Service Pack 4 or later, consider deploying a reverse proxy, which enables a cache on the server side. The purpose of implementing a server-side reverse proxy is to optimize network performance when the client and server are located on a low-bandwidth network, or on separate networks. A reverse proxy retrieves user requests then forwards them to the requested resource, in this case, the WEBINTELLIGENCE server. A reverse proxy is often implemented in firewall deployments.

This type of configuration may improve performance, depending on your deployment specifics, by caching information inside the firewall. Reverse proxies are also deployed as a security measure, because they mask the network address of the WEBINTELLIGENCE server from clients outside of the internal network.

Enhancing Performance from Broadcast Agent

• Do not run too many jobs through BROADCAST AGENT at any given time.

• Use two or more Schedulers for each BROADCAST AGENT to provide failover. Even better is to have two Schedulers in two different clusters for enhanced failover.

• Make sure you give your documents enough time to run by using this formula:

no. of documents to be refreshed * average time to refresh a document / time available to run the scheduleIf you’re having problems, set the following BOManager parameters in the Business Objects Services Administrator:

• Auto shutdown BOManager after: 120 minutes or more

• Timeout for batch actions: 120 minutes or the number of minutes the longest job in batch processing should take to complete.

• When you configure your system’s connections, the Disconnect after every transaction option can have a major effect on performance and stability,

Page 59: Best Practice 5 En

Enhancing Performance from Broadcast Agent

Business Objects Documentation Supplement 59

although whether its activation has a beneficial effect depends on many factors. We suggest you try checking this option. If your site subsequently has connection issues, uncheck it.

• Regularly use the Scan and Repair utility that comes with SUPERVISOR to scan the repository tables used by BROADCAST AGENT for problems such as a BROADCAST AGENT without any declared timestamp, or invalid dates. You can use the same utility to fix the problem.

Page 60: Best Practice 5 En

Enhancing Performance

60 Business Objects Documentation Supplement