报表性能优化方案之报表缓存路径

1. 问题描述

若启用了磁盘缓存,默认的会在C:\Documents and Settings\Administrator\.FineReport80(windows下)下创建cache即缓存文件夹,一般呢,C盘的空间会很小,如保存在C盘会增加对C盘的压力,那么有没有方法让其保存到别的盘符下呢?

解决方案提供工具:报表开发工具FineReport。

2. 解决方案

通过修改%FR_HOME%\WebReport\WEB-INF\resources\目录下的cache.xml文件(报表管理平台中设置缓存,提交后会生成该文件,如果没有则新建),给Basic标签增加cacheDirectory属性,如将缓存文件保存在D:\Cache目录下,具体代码如下:

1 . <? xml version = " 1.0 "  encoding = " UTF-8 " ?>   
2 .   < CacheParameters xmlVersion = " 20110221 " >   
3 .     < Basic maxMemSize = " 4194304 "  cacheDirectory = " D:\Cache " />   
4 .     < DBConfig >   
5 .        < CacheConfig maxElementsInMemory = " 10 "  memoryStoreEvictionPolicy = " LRU "  timeToIdleSeconds = " 0 "  timeToLiveSeconds = " 0 " />   
6 .     </ DBConfig >   
7 .     < CPTConfig >   
8 .        < CacheConfig maxElementsInMemory = " 10 "  memoryStoreEvictionPolicy = " DISK_CPT "  timeToIdleSeconds = " 200 "  timeToLiveSeconds = " 40 " />   
9 .     </ CPTConfig >   
10 .     < AlwaysReloadTpl >   
11 .         <! [CDATA[ true ]] >   
12 .     </ AlwaysReloadTpl >   
13 .   </ CacheParameters >   

1注:Basic的cacheDirectory属性表示的就是缓存路径,另外一旦自定义缓存路径了,那么默认的缓存文件夹就会被自动删除。

按照上述的设置后,重启Web服务器,缓存文件将会保存在D盘Cache目录下,若没有Cache文件夹,会自动创建该文件夹;当web服务器关闭时,报表缓存会自动清除,即删除Cache文件夹的所有文件。

注:缓存路径一定要设置为某个独立的文件夹下,切忌与其他文件共用一个目录,如报表的缓存目录跟Web服务器工程的相同,则会删除web服务器工程下的内容。



欲了解更多中式java报表软件?请点击

你可能感兴趣的:(报表性能优化方案之报表缓存路径)