`

配置润乾报表的缓存

 
阅读更多

配置润乾报表的缓存

<wbr></wbr>

<wbr></wbr>

任务背景

不管报表引擎的算法如何优化,报表数据量大到一定程度,用户并发数多到一定程度,服务器的性能总会告急,因此,报表引擎的任务一方面是优化算法,另一方面也是更重要的,是要提供有效的缓存机制与并发控制机制。

<wbr></wbr>

面临困难

报表的缓存,乍一听似乎挺简单的,不就是把算好的报表存下来,然后再次访问时不用再次计算了,直接从缓存里读取吗?实际做起来需要考虑的细节很多,并不那么容易。

首先,要考虑参数和宏。大部分报表都是有参数或者宏的,不同的参数和宏,会算出不同的结果报表,因此,报表的缓存不仅仅和报表模板关联,还和参数、宏有关系,只有参数和宏完全相同的时候,才能从缓存里读取。

其次是缓存时间的问题,如果某个缓存的报表不断地被访问,那么用户访问到的始终是旧报表,无法更新,因此报表缓存的时候还需要记录缓存的时间,而用户访问的时候可以请求多长时间内缓存的报表,从而保证一定的新鲜度。

接着,还需要考虑报表模板的更新问题,一旦报表模板更新了,就要触发该报表的缓存清除,从而保证用户访问到的是新的报表。而这种缓存的清除,不能影响到别的报表。

最麻烦的要数集群的情况了,目前的集群有两种,一种是session和服务器绑定,一旦登陆了就始终访问同一台服务器;另一种是session复制的机制,session不和服务器绑定,可能一会访问这台服务器,一会访问另一台服务器,这种情况用户参数还必须跟着session走。

集群的时候,在A服务器上缓存的报表,在B服务器上是找不到的,此时只能在服务器之间进行通讯,互相查找、读取缓存的报表。

<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> 小小的缓存问题,却引发了如此多的麻烦事,不过不用烦恼,润乾报表4.0新推出的缓存机制,很好地解决了上述问题。实现步骤非常简单:</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

实现步骤

1、<wbr> 在reportConfig.xml文件中,把alwaysReloadDefine属性设为no</wbr>

2、<wbr> 在调用报表的jsp中,把 &lt;report:html 标签的useCache属性设为yes,同时设上timeout属性,即调用多少分钟内缓存的报表。</wbr>

<wbr></wbr>

<wbr></wbr>

效果演示

配置润乾报表的缓存

<wbr></wbr>

图1、没有使用缓存,每一次访问,都会与数据库交互一次

配置润乾报表的缓存

<wbr></wbr>

图2、启动缓存机制,再次访问时不再计算,而是直接生成HTML

<wbr></wbr>

分享到:
评论

相关推荐

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

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

    C#读取web.config配置,建立高速缓存机制

    C#作为.NET平台上的主要开发语言,提供了丰富的API来读取web.config文件中的配置信息,并且可以通过建立高速缓存机制来优化应用程序的性能。 首先,Web.config配置文件的作用是给.NET应用程序提供一个统一的配置...

    geoserver配置图层缓存

    在处理大量请求时,为了提升服务响应速度和用户体验,配置图层缓存是必不可少的步骤。本篇文章将深入探讨如何在Geoserver中配置图层缓存,以及缓存对性能的影响。 一、图层缓存的重要性 图层缓存是Geoserver优化...

    mysql8的配置文件,包含端口 缓存配置

    mysql8的安装配置文件 包含端口 缓存 用户名密码的配置

    finereport缓存问题

    FineReport 缓存技术是指 FineReport 报表系统中的一种性能优化技术,旨在提高报表执行的速度和效率。该技术包括数据集缓存和模板结果共享缓存两个方面。 一、数据集缓存 数据集缓存是 FineReport 报表系统中的一...

    squid 配置缓存服务器

    ** squid 配置缓存服务器** Squid 是一个广泛使用的开源 HTTP 代理服务器和缓存系统,它能够显著提高网络访问速度,减轻服务器负载,同时提供内容过滤、访问控制等功能。在本文中,我们将深入探讨如何配置 Squid ...

    Spring集成的Hibernate配置二级缓存

    3. **配置Spring整合Hibernate**:在Spring的配置文件(如applicationContext.xml)中,我们需要配置Hibernate SessionFactory,并指定缓存相关的bean。例如: ```xml &lt;!-- other configurations --&gt; ...

    mybatis+redis缓存配置

    ### MyBatis与Redis缓存配置详解 #### 一、MyBatis缓存机制概述 在MyBatis中,缓存是一项重要的性能优化措施。它能够显著减少数据库的访问次数,提高应用程序的响应速度。MyBatis提供了两种级别的缓存支持:一级...

    javaWeb中Ehcache缓存配置说明

    ### JavaWeb中Ehcache缓存配置详解 在JavaWeb应用开发中,缓存技术扮演着至关重要的角色,它能够显著提升应用性能和响应速度,减少数据库负担。Ehcache作为一款广泛使用的开源缓存解决方案,其高效、灵活的特性受到...

    hibernate配置二三级缓存

    ### Hibernate配置二级与三级缓存详解 在Java开发领域中,Hibernate作为一种流行的ORM(对象关系映射)框架,被广泛应用于数据库操作。为了提高应用程序的性能,Hibernate支持多种级别的缓存机制,其中最为常见的是...

    为Spring集成的Hibernate配置二级缓存

    3. **配置Spring**:在Spring的配置文件(如`applicationContext.xml`)中,配置Hibernate SessionFactory,并注入二级缓存配置。以下是一个配置示例: ```xml &lt;!-- 其他Hibernate属性 --&gt; ...

    二级缓存配置

    ### 二级缓存配置 #### 一、概述 在软件开发过程中,为了提高系统的性能与响应速度,常常会采用缓存技术来存储频繁访问的数据。其中,Hibernate作为一款流行的Java持久层框架,提供了多种级别的缓存支持,包括一级...

    从0到1项目搭建-集成 Redis 配置MyBatis二级缓存

    基于 SpringBoot 从0搭建一个企业级开发项目,基于SpringBoot 的项目,并集成MyBatis-Plus、Redis、Druid、Logback ,并使用 Redis 配置 MyBatis 二级缓存。

    配置EhCache二级缓存

    ### 配置EhCache二级缓存 #### 一、简介 EhCache是一个高性能、易于使用的开源缓存系统,最初由 Terracotta 组织开发。它支持多种缓存模型,包括本地缓存和分布式缓存。由于其简单易用且功能强大,EhCache 成为了 ...

    OSCACHE配置URL实现页面缓存的Fliter(修改配置无需重启)

    标题 "OSCACHE配置URL实现页面缓存的Filter(修改配置无需重启)" 提示我们讨论的是一个使用OSCache(OpenSymphony Cache)库来缓存Web应用程序中特定URL页面的过滤器配置。OSCache是一个开源的Java缓存框架,用于提高...

    Spring基于注解的缓存配置--web应用实例

    在本实例中,我们将深入探讨如何在Spring框架中利用注解来实现缓存配置,特别是在Web应用程序中的实际应用。Spring Cache是一个强大的功能,它允许我们高效地管理应用程序中的数据,减少不必要的数据库查询,提高...

    Spring缓存配置

    **Spring缓存配置详解** 在Java Web开发中,Spring框架以其强大的功能和灵活性深受开发者喜爱。其中,Spring的缓存管理是提升应用性能的关键部分,它允许我们将经常访问但变化不频繁的数据存储在内存中,以减少对...

    缓存配置文件

    本篇文章将深入探讨Hibernate配置文件中的缓存配置,以及其路径概述。 首先,Hibernate的缓存分为一级缓存和二级缓存。一级缓存是SessionFactory内部的一个内存结构,每个Session都会拥有自己的本地缓存,用于存储...

    ehcache缓存配置详解

    ehcache 缓存配置详解 Ehcache 是一个流行的 Java 缓存框架,提供了强大的缓存机制,帮助开发者提高应用程序的性能和可扩展性。 Ehcache 的配置主要包括 diskstore、defaultCache、cache 三个部分,这三个部分的...

Global site tag (gtag.js) - Google Analytics