Caching Problem with Nested Datasets [message #805362] |
Thu, 23 February 2012 12:17  |
Eclipse User |
|
|
|
Hello everybody!
In my report I have a list, which contains a grid and another list. Every item has its own scripted dataset.
(OuterList - Dataset, Grid-Dataset, InnerList-Dataset)
The inner objects contain different datas depending on the row - index of the outer dataset.
When executing, the beforeopen(), open(), fetch() - methods are called for the dataset of the inner grid
but only the open() - method is called for the dataset of the (inner)list!?
beforeopen() and fetch() are ignored due to a caching-mechanism.
Is there a way to influence or deactivate this caching of a certain dataset (without deactivating cache generally)?
Why the dataset attached to the grid is not cached?
Is anybody aware of this functionality?
bug 364631
handled a similar problem.
There i found following comment:
Quote:This bug is reproduced by BIRT team. We will look into it and get back.
Please be noted that we usually only expect the one data set query to be
executed only once cross the report execution. So it is not suggest to write
script that based on the assumption that the data set query being execute
multiple times. As this multiple time execution might be optimized by BIRT.
For this specific case, please add a dummy data set parameter to your data set
in nested table, this will lead BIRT to treat the data set as "dynamically
changing" so that do not optimize the execution.
I was not able to reproduce the "dynamically changing" with dataset parameter.
In fact I use several parameters in datasets (paths, parent row index,...)
I am using BIRT version 2.6., but going to migrate next months to 3.7.
|
|
|
Re: Caching Problem with Nested Datasets [message #806296 is a reply to message #805362] |
Fri, 24 February 2012 14:54   |
Eclipse User |
|
|
|
Any chance you can create a report that we can run that shows the issue?
Jason
On 2/23/2012 12:17 PM, andi notOfYourInterest wrote:
> Hello everybody!
> In my report I have a list, which contains a grid and another list.
> Every item has its own scripted dataset.
> (OuterList - Dataset, Grid-Dataset, InnerList-Dataset) The inner objects
> contain different datas depending on the row - index of the outer dataset.
> When executing, the beforeopen(), open(), fetch() - methods are called
> for the dataset of the inner grid but only the open() - method is called
> for the dataset of the (inner)list!? beforeopen() and fetch() are
> ignored due to a caching-mechanism.
>
>
> Is there a way to influence or deactivate this caching of a certain
> dataset (without deactivating cache generally)? Why the dataset attached
> to the grid is not cached?
> Is anybody aware of this functionality?
>
> bug 364631
> handled a similar problem.
>
> There i found following comment:
> Quote:
>> This bug is reproduced by BIRT team. We will look into it and get back.
>>
>> Please be noted that we usually only expect the one data set query to be
>> executed only once cross the report execution. So it is not suggest to
>> write
>> script that based on the assumption that the data set query being execute
>> multiple times. As this multiple time execution might be optimized by
>> BIRT.
>>
>> For this specific case, please add a dummy data set parameter to your
>> data set
>> in nested table, this will lead BIRT to treat the data set as
>> "dynamically
>> changing" so that do not optimize the execution.
>
>
> I was not able to reproduce the "dynamically changing" with dataset
> parameter.
> In fact I use several parameters in datasets (paths, parent row index,...)
>
>
> I am using BIRT version 2.6., but going to migrate next months to 3.7.
|
|
|
|
|
|
|
|
|
|
Re: Caching Problem with Nested Datasets [message #841684 is a reply to message #841351] |
Wed, 11 April 2012 12:14  |
Eclipse User |
|
|
|
Thanks for updating!
Jason
On 4/11/2012 3:30 AM, andi deraendi wrote:
> Hi again!
>
> Some news:
>
> The workaround:
> Quote:
>> We found an extension-point "org.eclipse.birt.core.FactoryService" and
>> implement our own
>> "EngineExecutionHints.populateCachedDataSets(DataEngineImpl,
>> IDataQueryDefinition[])".
>
>
> does not work because extension-point
> "org.eclipse.birt.core.FactoryService" is not really for extending (, I
> suppose).
>
> Shure it is possible to map an own extension, but it is not predictable
> if this extension is used.
>
> (org.eclipse.birt.core.framework.eclipse.EclipsePlatform.createFactoryObject(String))
>
> ->
> org.eclipse.core.internal.registry.BaseExtensionPointHandle.getExtension(String)
>
> returns first found Factory ('equals()')
>
> In our case the plugin-dependencies cause an earlier registration of the
> default implementation (-> DataEngineFactory) as our own implementation.
>
> Migrating to 3.7.2 solves this issue!!
|
|
|
Powered by
FUDForum. Page generated in 0.06234 seconds