为啥每次数据库发生变化都需要刷新 Pentaho 报表数据缓存

Posted

技术标签:

【中文标题】为啥每次数据库发生变化都需要刷新 Pentaho 报表数据缓存【英文标题】:Why do I need to refresh Pentaho report data cache everytime there is a change in database为什么每次数据库发生变化都需要刷新 Pentaho 报表数据缓存 【发布时间】:2015-04-06 13:47:23 【问题描述】:

如果数据库中确实存在数据,我想显示数据不可用,否则只显示该数据。我在 mysql 中创建了一个存储过程来实现这一点,它在 MySQL Workbench 中运行时运行良好。该过程采用两个输入参数和一个输出参数来显示文本“数据不可用,如果表中没有数据。

当我在 Pentaho Report Designer (PRD) 中调用此程序时,当有数据时显示数据,当没有数据时显示数据不可用文本。但是每次从表中截断数据或在相关表中加载数据时,我都会刷新报表数据缓存。

每次数据库发生变化时如何手动刷新报告缓存?

【问题讨论】:

【参考方案1】:

尝试以下更改 BA 服务器中的缓存时间。 1) 停止 BA 服务器。 2) 导航到\biserver-ee\tomcat\webapps\pentaho\WEB-INF\classes 3) 备份文件ehcache.xml 4) 打开文件ehcache.xml 5) 向下滚动到内容。

<cache name="report-dataset-cache"
maxElementsInMemory="50"
eternal="false"
overflowToDisk="false"
timeToIdleSeconds="1"
timeToLiveSeconds="2"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="1"
/>

6) 减少 timeToIdleSeconds、timeToLiveSeconds、diskExpiryThreadIntervalSeconds 的值(默认为 300 秒左右) 7) 保存并重启BA服务器。

要更改 PRD:

在珠三角根据下图改变

【讨论】:

嗨@Marlon Abeykoon,我尝试了这个解决方案,但它对我不起作用。我们不能以某种方式禁用存储库缓存吗?【参考方案2】:

在工具/选项下,您一般可以禁用数据库缓存

【讨论】:

以上是关于为啥每次数据库发生变化都需要刷新 Pentaho 报表数据缓存的主要内容,如果未能解决你的问题,请参考以下文章

需要避免每次构建时浏览器刷新的情况

为啥每次刷新页面sessionid都变呢 - 技术问答

每次刷新页面时随机链接?

create http request每次token发生变化

为啥委托中需要一些方法?

刷新页面后,我退出了吗?为啥?