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