使用嵌入式Pentaho Report Designer Classic Engine生成报告后,避免使用数据缓存

时间:2013-11-30 22:01:58

标签: java caching reporting pentaho

我正在使用Vaadin 6.8和pentaho classic engine 5.0.1嵌入到我的应用程序中。我已成功生成所需格式的报告,并已建立参数。当我注意到在生成报告之后,有一些像数据缓存这样的东西,它不允许我从数据源获取更新的数据(报告定义中的MySQL jdbc)。报告生成器正在生成新文件,但由于此缓存而未更新数据,这意味着,即使我直接在数据库中更新,也会生成具有相同数据内容的不同文件。我被迫关闭我的vaadin应用程序并再次生成报告以获取报告数据的更新,但我不能每次关闭用户会话以使其按要求运行。

经过多天我发现了这一点,它解释了禁用数据缓存足以避免此问题:

http://forums.pentaho.com/showthread.php?82765-Engine-3-8-disable-data-caching

我试图通过我的java类设置 config-key ,但我不知道如何设置该密钥,因此我决定更多地搜索这个,并在下一个链接,说这是可能的,但使用BI服务器。:

http://infocenter.pentaho.com/help/index.jsp?topic=%2Fperformance_tuning_guide%2Ftopic_reporting_caching.html

我的应用程序在服务器中单独运行,我不能使用BI服务器,因为我只需要报告生成器,这就是使用嵌入式报告生成器的目的。如何通过Java类或以我可以在Java应用程序中处理所有内容的方式设置config-key?或者如何使用经典引擎避免数据缓存生成报告?

1 个答案:

答案 0 :(得分:1)

我发现在没有全局 config-key 的情况下避免数据缓存的唯一方法是在编辑报表时在Pentaho的报表设计器主报表属性中定义data-cache = false。