I'm not sure to understand how this dataset cache works in Report Engine 4.2, please is there any resource or documentation which could help? Is this cache shared across several reports executions, or only used within a single execution (when a dataset is accessed multiple times in a report)?
We checked all our datasets have a property "Needs cache for data-engine" set to true, though it appears only a few of them actually create a dataEngine Object in the tmpDir Birt engine folder, using RE API. In fact it seems only datasets which have a row limit defined use a dataEngine cache.
Any link to documentation/information will be much appreciated!
With this property, we can see most of the time a report runs, it creates 3 files in a DataSetCacheObject temp folder:
It seems BIRT tries to reuse a dataset cache previously built, even across different user sessions, this is very interesting. Is there an expiration time? I assume it is related to this "time.data", is it possible to control this through an API or a property?
That cache option should only be used in a design situation:
This setting allows user to cache a data set in disk. If set to negative value, all rows in data set will be cached. If set to zero, the function is disabled. If set to positive number, specific number of rows will be cached. Should only be used in a design situation.
Change setting to clear.
You probably want to try:
Memory per Query that is used before caching to disk. Defaults to 10 MB. Used inside and outside of designer.