文档详情

解读润乾的动态并发控制.docx

发布:2017-04-19约2.38千字共3页下载文档
文本预览下载声明
润乾提供了动态并发控制,可以更有效更优秀的进行报表访问的动态并发控制,精确控制报表访问的单元格数,性能文档中关于此部分的描述不够详细,提供本文档作为补充。 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限制不允许计算。 通过上面的配置举例应该可以了解到这几个配置项的关系了。 补充说明: 报表计算,报表分页,均需要做动态并发控制,它们所预留
显示全部
相似文档