Configuring Memory Guard and Data Model Properties

Implement the memory guard features by setting the properties in the Administration > Runtime Configuration > Properties page or by using the runtimepropertiesconfig.sh command line utility.

The Memory Guard and Data Model property settings in the Administration > Runtime Configuration > Properties page are described for each category in the following sections of tables.

Memory Guard

Property description Default Value

Maximum report data size for online reports

300MB

Maximum report data size for offline (scheduled) reports

500MB

Free memory threshold

500MB

Maximum report data size under the free memory threshold

free_memory_threshold/10

Maximum wait time for free memory to come back for offline (scheduled) reports

30 (seconds)

Minimum time span between garbage collection runs

300 (seconds)

Maximum wait time for free memory to come back above the threshold value

30 (seconds)

Process timeout for online report formatting

600 (seconds)

Maximum rows for CSV output

1000000

Data Model

Property Description

Maximum data size limit for data generation

Default value: 500MB

Maximum XML data size in that can be generated from the execution of a data model. This setting applies to both online report requests and to requests submitted through the scheduler. When the size of the file generated by the data engine exceeds the value set for this property, the data engine terminates execution of the data model and throws an exception.

Validation rule: [1-9][0-9]*[KB|MB|GB]?

Examples:
  • 123MB

  • 128974848

  • 2GB

  • 2147483648

To turn this property off, enter 0 or a negative number.

Maximum sample data size limit

Default value: 1MB

Maximum file size of a sample data file that can be uploaded to the data model editor.

Enable Data Model scalable mode

Default: True

Processing large data sets requires the use of large amounts of RAM. To prevent running out of memory, activate scalable mode for the data engine. In scalable mode, the data engine takes advantage of disk space when it processes the data.

You can also set this property for specific data models. The data model setting overrides the system setting here. See Setting Data Model Properties in Data Modeling Guide for Oracle Business Intelligence Publisher.

Enable Auto DB fetch size mode

Default value: True

When set to True, BI Publisher calculates and sets database fetch size at run time according to the total number of data set columns and total number of query columns.

This setting avoids out of memory conditions, but can significantly slow processing times.

When set to True, any other DB fetch size settings are ignored.

This setting is recommended for implementations of BI Publisher that frequently process complex queries of hundreds of columns, such as Oracle Fusion Applications implementations. This setting is not recommended for most general implementations of BI Publisher.

Setting this property will override the data model- level database fetch size properties.

When set, this property takes effect for all data models and can significantly slow processing time.

DB fetch size

Default value: 20 (rows)

The maximum database fetch size for a data model. This property value takes effect only when Enable Auto DB fetch size mode is set to False. When the fetch size is met, the rows are written to a temp file and another fetch is executed; this process is repeated until all the rows are returned to the temp file.

A smaller fetch size requires more round trips from BI Publisher to the database and can impact overall processing time; however, the smaller data chunks ensure against excessive memory usage.

This property can also be set at the data model level. The data model setting overrides the server property.

SQL Query Timeout

Default: 600 seconds

Time out for SQL query-based data models. If the SQL query is still processing when the time out value is met, the error "Failed to retrieve data xml." is returned.

This property can also be set at the data model level. The data model setting overrides the server property here.

All BI Publisher reports running online will have a maximum SQL query timeout of 10 minutes irrespective of the settings at the instance level or data model level to avoid stuck threads and server outages.

Enable Data Model diagnostic

Default value: False

Setting this property to true will write data set details, memory, and SQL execution time information to the log file. Oracle recommends setting this property to true only for debugging purposes. When set to true, processing time is increased.

Enable SQL Session Trace

Default value: False

Setting this property to True writes a SQL session trace log to the database for every SQL query that is executed. The log can then be examined by a database administrator.

Oracle recommends that you turn this property on only in test and development environments.

To enable this property, the user that you define for the database connection must be granted the Alter Session privilege on the database (Syntax: GRANT ALTER SESSION TO <USER NAME>). The connection user is defined here: Setting Up a JDBC Connection to the Data Source.

Enable SQL Pruning

Default value: False

Applies to Oracle Database queries only that use Standard SQL. If your query returns many columns but only a subset are used by your report template, SQL pruning returns only those columns required by the template. Setting this property enhances processing time and reduces memory usage. Note that Enable SQL Pruning is also a data model-level property that can be turned on or off for particular data models to override this server-level setting.

SQL pruning is not applicable for PDF, Excel, and E-text template types.

For information about the data model setting, see Setting Data Model Properties in Data Modeling Guide for Oracle Business Intelligence Publisher.

Using runtimepropertiesconfig.sh Command Line Utility

This section describes how to use the runtimepropertiesconfig.sh command line utility to configure the memory guard properties.

Command Line Utility Requirements

To run the runtimepropertiesconfig.sh command line utility, you must do the following:

  • Set the environment variable. For example, export JAVA_HOME=/home/jdk/jdk1.8.0_40. By default, JAVA_HOME=$BI_HOME/jdk

  • Unzip the <BI_HOME>/modules/BIPConfigService.zip file and place the runtimepropertiesconfig.sh utility in <BI_HOME>/modules/BIPConfigService/bin directory.

    cd <BI_HOME>/modules

    unzip —d BIPConfigService BIPConfigService.zip

  • Change directory to the location of the runtimepropertiesconfig.sh command line utility.

    cd <BI_HOME>/modules/BIPConfigService/bin

  • Provide the path for BI_DOMAIN_HOME when the utility prompts.

    For example: /user_projects/domains/bidomain/

Syntax

runtimepropertiesconfig.sh <Operation> <Options>

where

Operation: update, get, or help

Options for update operation : KEY1=VALUE1,KEY2=VALUE2

Options for get operation: KEY1,KEY2

Memory Guard Properties

Property Description
server.ONLINE_REPORT_MAX_DATA_SIZE Maximum report data size for online reports

Default value: 300MB

server.OFFLINE_REPORT_MAX_DATA_SIZE Maximum report data size for offline (scheduled) reports

Default value: 500MB

server.FREE_MEMORY_THRESHOLD Free memory threshold

Default value: 500MB

server.MAX_DATA_SIZE_UNDER_FREE_MEMORY_THRESHOLD Maximum report data size under the free memory threshold

Default value: free_memory_threshold/10

server.MINIMUM_SECOND_RUN_GARBAGE_COLLECTION Minimum time span between garbage collection runs

Default value: 300 (seconds)

server.WAIT_SECOND_FOR_FREE_MEMORY Maximum wait time for free memory to come back above the threshold value

Default value: 30 (seconds)

server.ONLINE_FORMATTING_PROCESS_TIMEOUT Process timeout for online report formatting

Default value: 600 (seconds)

server.MAX_ROWS_FOR_CSV_OUTPUT Maximum rows for CSV output

Default value: 1000000

server.XML_DATA_SIZE_LIMIT Maximum data size limit for data generation

Default value: 500MB

server.MAX_SAMPLE_XML_DATA_SIZE_LIMIT Maximum sample data size limit

Default value: 1MB

server.DB_FETCH_SIZE DB fetch size

Default value: 20

server.SQL_QUERY_TIMEOUT SQL Query Timeout

Default value: 600 (seconds)

Example E-1 Update Memory Guard Properties

The following command updates the values of server.ONLINE_REPORT_MAX_DATA_SIZE and server.SQL_QUERY_TIMEOUT properties.

./runtimepropertiesconfig.sh update server.ONLINE_REPORT_MAX_DATA_SIZE=223MB,server.SQL_QUERY_TIMEOUT=600

Example E-2 List Values of All Memory Guard Properties

The following command lists the values of all the memory guard properties.

./runtimepropertiesconfig.sh get

Example E-3 List Values of Specified Memory Guard Properties

The following command retrieves the values of the specified properties.

./runtimepropertiesconfig.sh get server.ONLINE_REPORT_MAX_DATA_SIZE,server.SQL_QUERY_TIMEOUT

Example E-4 Get Help

The following command lists all the memory guard properties along with the default value.

./runtimepropertiesconfig.sh help