Tag Archives: obiee cache

Oracle BIEE 10.1.3.4 TMP and Cache Files Still in Original Path After Modifying NSQConfig.ini File

Modified the NQSConfig.ini file to change the TMP directory and the DATA_STORAGE_PATH (Cache).
Restarted the BI server and presentation server and noticed that files are not being written to the expected locations.

For example, the TMP directory was changed from:

WORK_DIRECTORY_PATHS = “/u01/app/oracle/product/10.1.3/obiee/OracleBIData/tmp”;

To:
WORK_DIRECTORY_PATHS = “/obi-tmp/tmp”;

The DATA_STORAGE_PATH was changed from:
DATA_STORAGE_PATH = “C:\OracleBI\server\Data\Temp\Cache” 500 MB ;

To:
DATA_STORAGE_PATH = “/obi-tmp/cache” 500 MB;

After making these changes, the TMP and cache files are still being written to the original locations.
Cause

Cache and TMP file locations are controlled by NSQConfig.ini parameters and the SATEMPDIR environment variable.
While the NSQConfig.ini file had been partially updated, the SATEMPDIR had not been updated at all.

The cache settings need to be updated in the NSQConfig.ini file under “[MDX_MEMBER_CACHE]” and “Query Result Cache Section.”

If the SATEMPDIR environment variable is not set and both cache locations are not updated in the
NSQConfig.ini file, the files will continue to write to the default locations.
Solution

Please complete/verify the following steps to change TMP and Cache File locations:

1. Open the NQSConfig.ini file and verify/modify desired paths for the TMP and Cache files.
You should leave original values in the file, but prefix with a “#” symbol to comment out the value.
For example:

TMP Files

#WORK_DIRECTORY_PATHS = “/u01/app/oracle/product/10.1.3/obiee/OracleBIData/tmp”;
WORK_DIRECTORY_PATHS = “/obi-tmp/tmp”;

Cache Files

Query Result Cache Section

[ CACHE ]

ENABLE = NO;
// A comma separated list of <directory maxSize> pair(s)
// e.g. DATA_STORAGE_PATHS = “d:\OracleBIData\nQSCache” 500 MB;
#DATA_STORAGE_PATHS = “/u01/app/oracle/product/10.1.3/obiee/OracleBIData/cache” 500 MB;
DATA_STORAGE_PATHS = “/obi-tmp/cache” 500 MB;

[ MDX_MEMBER_CACHE ]

#DATA_STORAGE_PATH = “/u01/app/oracle/product/10.1.3/obiee/OracleBIData/cache” 500 MB;
DATA_STORAGE_PATH = “/obi-tmp/cache” 500 MB;

2. Then update the SATEMPDIR environment variable to show the same physical path as the WORK_DIRECTORY_PATHS variable in the NSQConfig.ini file (“/obi-tmp/tmp”).
The SATEMPDIR is only applicable to the TMP files.

NOTE: On Linux/Unix systems, this environment variable is defined in the common.sh file in the OracleBI/setup directory.

On Windows, the SATEMPDIR is defined under System Settings -> Advanced -> Environment Variables.

3. After making these changes, stop the BI Presentation Server and BI Server. Then restart.

4. After restarting, you will see .tmp and cache files written to the new directories.

Cache persistence

There’re a few well-written articles on about OBIEE caching configuration and strategies already. However, I’m posting a solution that I’ve found while investigating an unexpected behavior with tpl cache files disappearing for no reason (no updates in polling table, no manual purge, no BI services restart). Here’s the solution from Oracle:

The behavior was resolved when customer modified the refresh interval for the Repository variables that exist in their Repository.
When a dynamic repository variable is updated, cache is automatically purged. This is designed behavior. Cache will be invalidated (i.e. purged) whenever the initialization block that populates dynamic repository variable is refreshed. The reason that refreshing a variable purges cache is that if a variable was used in a calculation, and the variable changed, then cache would have invalid data. By purging cache when a variable changes, this problem is eliminated.

Since this is the designed functionality, Change Request 12-EOHPZ3 titled ‘Repository variable refresh purges cache’ exists on our database to address a product enhancement request. The workaround is to go through the dynamic repository variables and verify that the variables are being refreshed at the correct interval. If a variable needs to be refreshed daily, there may be a need to set up a cache seeding .bat file that runs after the dynamic variable has been updated. If the cache seeding .bat file runs prior to the refresh of the dynamic variable refresh, then the cache will be lost.

I think they should try to cover similar thing in OBIEE documentation.