Java软件报表软件技术博客

java报表软件技术汇总 java报表软件制作 报表软件新闻
posts - 355, comments - 100, trackbacks - 0, articles - 3
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理
静态并发控制

应用服务器的承载能力是有限的,当并发的用户数超过其承载能力,服务器肯定要出错。因此,控制并发数的能力是必须的。

最常用的办法是静态并发控制,FineReport就提供了这样的办法,其基本思路是:在服务器端预先配置允许并发的最大线程数,当请求线程超出了这个数,就采用一种策略保证当前的线程数不超过最大线程数,同时保证等待的线程能进来计算,客户端不会出现很大的延迟。

动态并发控制

当服务器对性能要求比较高的时候,光有静态并发控制是不够的。举例来说,服务器限定了允许最大20个线程访问,平均每个线程占用内存20m,总计服务器可以接受400M内存的耗用。可是,当正好每个线程访问的报表数据量都非常小时,也许20个线程加起来耗用的内存不足100M,此时多余的300M内存就浪费了;如果正好20个线程中某几个线程访问的报表数据量非常大,有可能一个线程占用的内存就超过100M,此时20个线程加起来占用内存可能远远超过400M,直接导致服务器内存溢出。同样的道理,对于CPU占用也是适用的。

因此,FineReport报表在提供简单静态并发数控制的基础上,为了合理的资源分配,并保证服务器的安全和流畅性,同时引入了动态并发控制的概念。

根据服务器硬件和Java虚拟机的配置,在服务器运算的过程中,动态的判断当前并发访问的所占用的资源是否达到预设值,如果已经达到预设值,则控制新进访问线程。

这种动态并发控制,和简单的并发数控制结合使用,更加灵活,更加合理。

缓存报表执行结果

在并发访问的机制下,经常出现同一报表被不同用户连续多次重复访问,此时如果能够把第一次算出的报表缓存下来,再次访问时直接从缓存中读取,则可以大大减少服务器的运算消耗。并且因为节省了报表的执行过程,可以大大加快访问速度。

对于带有参数的报表,当用户采用相同的参数进行重复访问时,也可以利用缓存,减少重复的计算。对于带有不同参数的报表会缓存不同的报表执行结果。因此如果第二次这第一次执行的参数不一样,报表就会重新计算,并缓存该报表和参数对应的结果报表。因此,对于有参数的报表来说,缓存时还必须识别参数的值。

打开菜单:服务器|缓存设置,设置报表直接结果缓存参数,如下图所示

 

 




评论

# re: 报表部署配置优化  回复  更多评论   

2010-07-01 17:23 by 圣光永恒
顶LZ技术贴,很好用的软件

# re: 报表部署配置优化  回复  更多评论   

2010-07-02 17:18 by 朱向前
讲的还是很有道理的

# re: 报表部署配置优化  回复  更多评论   

2010-07-03 17:04 by 何小妖
@圣光永恒
FineReport报表是一款纯java编写的、集数据展示(报表)和数据录入(表单)功能于一身,针对软件开发商和系统集成商,用于快速构建企业信息系统的中国式Web报表软件。

# re: 报表部署配置优化  回复  更多评论   

2010-07-03 17:05 by 何小妖
finereport~~~~

只有注册用户登录后才能发表评论。


网站导航: