报表缓存配置

当报表数据量较大,计算过程中消耗大量内存,或计算时间比较长,我们建议开启报表缓存设置。如果发布的报表类型是file,那么只要设置alwaysReloadDefineno,就开启了报表缓存机制,它在计算时,在指定的时间内,报表模板文件仅加载一次,报表仅运算一次。其它操作都从缓存中提取,如翻页等等。如果发布的文件类型是defineBean,那么,alwaysReloadDefine将失效,系统会启动缓存机制,如果不需要缓存,建议通过一个动态变化的值来命名beanName属性,当然在request中保存的对象名与之一一对应.

缓存系统是以报表模板为某报表的缓存总入口,如果设成的yes,那么每次有人访问时都会重新加载模板,总入口就改变了,以前的缓存就没用了。alwaysReloadDefine为系统是否启用缓存提供了一个总开关,我们还可以通过tag标签的useCachetimeout两个属性来控制具体的每一个报表是否使用缓存数据,即是否重新计算数据。alwayReloadDefine属性设置为no时,tag标签中的useCachetimeout属性才会起作用。当设置useCacheyestimeout30时,系统在报表运算过程中将启动缓存,并且每次计算仅取30分钟以内生成的有效报表,如果没有此时间内的,则产生一个新报表。

报表缓存功能配置在raqsoftConfig.xml中,raqsoftConfig.xml小节中的(5)(6)(7)(13)有说明,如下所示:

<property name="cachedReportDir" value="E:\work\report\cached"/>

<property name="cachedIdPrefix" value="A"/>

<property name="cachedReportTimeout" value="30"/>

<property name="alwaysReloadDefine" value="yes"/>

想要了解更多关于报表运算或集群缓存的使用可参考《高级指南》性能管理小节。