Data sources with non-serializable data and data set caching [message #491785] |
Thu, 15 October 2009 16:16  |
Eclipse User |
|
|
|
Hi,
I am using a home-made ODA driver, which provides data sources for EMF
models. The driver makes use of the newly added Java Object type [1] to
return the original model objects, which enables you to access them in
JavaScript expressions. For example, you can write row["type"].name to
avoid more complex constructions to navigate the model. So far so good.
Under certain circumstances BIRT serializes query results to cache them
during report generation (see [2]). It seems the cache kicks in as soon
as a data set is used more than once in a report -- even if both
instances use different parameter bindings and yield different results.
The problem is that EMF model objects are usually not serializable and
BIRT's caching mechanism throws an exception in this case.
However, in my opinion it doesn't make much sense to cache data from an
in-memory model to disk. Therefore, I would like to disable the data set
caching to avoid this problem. The best would be if the ODA driver could
provide BIRT with a hint that it should not cache its data at all. Is
there a way to do this? I haven't found one.
Browsing through BIRT's code [3] I've seen some indications which imply
that the caching meachnism is configurable. Unfortunately the
corresponding settings seem not to be available in the report designer.
Is there any other way to disable caching per data source, data set, or
report out of the box/without using the API?
[1] https://bugs.eclipse.org/285108
[2] https://bugs.eclipse.org/178897#c14
[3] DataSourceQuery.execute(), DataSetCacheManager, DataSetCacheConfig, ...
--
Andreas
|
|
|