为啥每次数据库发生变化都需要刷新 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 报表数据缓存的主要内容,如果未能解决你的问题,请参考以下文章