报表知识库
我要提问

如何使计算某个报表导致内存溢出时,其他报表运算不影响

报表在运行过程中经常会出现如果查询数据量大的时候,报表显示不出来,甚至会出现out of memory的问题,一旦出现此问题,整个系统的报表就不能用了,连最简单的报表也打不开,但是应用系统还是能用,也就是说应用并没有死机。在这种情况下自然就会希望可以做到就算数据量大,显示很慢或者显示不出来,也不会影响其他报表的显示。

在润乾报表系统中,当某一大报表计算出现内存不足,无法进行计算也就是内存溢出时,并不会导致整个系统崩溃,也就是说是有条件在此时让系统仍然可以计算其他报表的。我们需要做的就是修改reportConfig.xml文件中的maxWaitTimeForReport属性(默认是9999秒),此选项设置的是等待计算报表时间,默认值由于时间比较大,所以当大报表计算内存溢出后,系统会认为报表依然在运算,会等待9999秒直到超时,此时给用户的感觉就是其他报表也不能计算了。所以,建议一般情况下可以将此值设为300,那么当某一大报表计算导致内存溢出后,系统等待300秒之后此报表运算时间就会超时,系统则可以继续进行其他报表的运算了。