解读润乾的动态并发控制.docx
文本预览下载声明
润乾提供了动态并发控制,可以更有效更优秀的进行报表访问的动态并发控制,精确控制报表访问的单元格数,性能文档中关于此部分的描述不够详细,提供本文档作为补充。
1.reportConfig.xml中的动态并发控制配置项
动态并发访问的配置通过reportConfig.xml进行控制,相关配置项为maxCellNum,defaultCellNum,格式如下:
config
namemaxCellNum/name
value100000/value
/config
config
namedefaultCellNum/name
value2000/value
/config
其中maxCellNum是用于指定动态并发配置的主要指标,用来表示在同一时刻,所能计算的最大的单元格数量。服务器在运算过程中,动态的智能判断当前并发访问的格子数是否达到预设值,如果已经达到预设值,则阻止新任务访问,提示:报表格子数超标,稍候再访问。
defaultCellNum是用???指定默认的报表单元格数,该配置项未指定情况下默认值为20000,即认为一个报表需要占用的报表格数为20000。
2.报表模板中报表格数设置
报表属性里还提供了报表格数属性,如下图所示:
报表引擎在计算完数据集,计算报表之前,都会先读取报表格数属性,计算出该报表可能的格子数,然后叠加到内存中的一个当前格数变量中,然后利用这个变量和reportConfig.xml文件中的maxCellNum进行对比,如果当前格数超过了。maxCellNum,就不允许这个报表计算,如果没有超过,就进行计算。从而达到了动态控制并发数的目的。如果为在报表中指定该属性,就按照reportConfig.xml中defaultCellNum指定的格数计算。
下面做几个配置的举例
配置举例1:
reportConfig.xml设置
config
namemaxCellNum/name
value19999/value
/config
报表中未设置格子数,访问任何报表均报cell num exceeds limit错误。
原因分析:reportConfig.xml未指定defaultCellNum,按照默认值20000处理,那么如果如设置maxCellNum为19999,报表在未指定报表格数的情况下,格数都为20000,大于19999,均不允许计算。
配置举例2:
reportConfig.xml设置
config
namemaxCellNum/name
value19999/value
/config
报表中设置格子数为10,访问该报表正常,访问其他报表报cell num exceeds limit错误。
原因分析:reportConfig.xml未指定defaultCellNum,按照默认值20000处理,如设置maxCellNum为19999,报表在未指定报表格数的情况下,格数都为20000,大于19999,均不允许计算。对设置了格数为10的报表,因格数小于20000,故允许运算该报表。
配置举例3:
reportConfig.xml设置
config
namemaxCellNum/name
value19999/value
/config
config
namedefaultCellNum/name
value2000/value
/config
报表中未设置格子数,访问报表正常。
原因分析:reportConfig.xml指定defaultCellNum为2000,报表在未指定报表格数的情况下,格数都为2000,小于maxCellNum设置的19999,均允许计算。
配置举例4:
reportConfig.xml设置
config
namemaxCellNum/name
value19999/value
/config
config
namedefaultCellNum/name
value2000/value
/config
报表中设置格子数20000,访问报表报cell num exceeds limit错误,访问其他报表正常。
原因分析:reportConfig.xml指定defaultCellNum为2000,报表在未指定报表格数的情况下,格数都为2000,小于maxCellNum设置的19999,均允许计算。但是设置了格数为20000的报表,由于格数超过maxCellNum限制不允许计算。
通过上面的配置举例应该可以了解到这几个配置项的关系了。
补充说明:
报表计算,报表分页,均需要做动态并发控制,它们所预留
显示全部