Here’s a quick tip for BI Publisher Enterprise based on some first hand experience.
I was demonstrating bursting and delivery functionality in BIP Enterprise a couple weeks ago at VOUG and I had created a simple/quick report to assist in the demonstration.
During the Q&A, a question was asked regarding whether or not the report itself was dynamic based on data being pulled from the database (i.e. real-time data). To prove the point, I fired up SQL Developer and changed one of the values in the database and then confidently refreshed the report in BI Publisher fully expecting the report to reflect the new value.
It didn’t change! Exact same report with the exact same data… Hmmmmm…
Did I not ‘commit’ my changes to the database? … Nope, that’s not it…
Maybe Internet Explorer is caching the data? … Control-F5… Nope, that not it…
Well.. moving on…..
BIP Enterprise was behaving exactly like it’s supposed to. Caching of the dataset used to generate the report is turned on by default. This is to eliminate unnecessary trips to the database and reduce costly report generation cycles. This feature can be quite useful if your reports are not based on real-time data.
To turn off (or back on) caching at the report level, take a look at the general settings. There is an option called: ‘Enable document cache’.
Under Admin->Server Configuration you have the following options for the cache:
Cache Expiration (in minutes) – Defaults to 30 minutes
Cache Size Limit – Defaults to 1000
Maximum Cached Reports – Defaults to 50
Remember, these Server Configuration settings apply to the entire system, not just individual reports.
As a note, the cache only applies to a report document per user. So if enabled and a user is requesting a report with the same layout, output type and parameters as a previous request, the report will be retrieved from the cache (Pending the system wide settings mentioned above).
So, if you ever run into the problem of making changes to the underlying data and then you do not see those changes in your actual output, check out the cache settings, that’s likely the culprit.