服务器配置管理
服务器配置管理
服务器参数分为必须一致的配置、建议一致的配置、独立配置三类,服务器配置管理模块专为集群配置文件globalReportConfig.xml提供友好的配置界面,页面上的参数分为必须一致的配置和建议一致的配置项。
必须一致的配置:在集群方式部署下,各个服务器上的该类参数值必须一致,此类型参数的值存在系统库中,不会出现不一致的情况。
建议一致的配置:在集群方式部署下,建议该类参数值一致,此类型的参数同时存在于globalReportConfig.xml和localReportConfig.xml文件中。用户需要个性化设置时,可以通过修改localReportConfig.xml文件实现,localReportConfig.xml中同名参数的优先级高于globalReportConfig.xml。
独立配置:存储于各服务器的本地文件localReportConfig.xml,用于各服务器的个性化设置。
服务器配置的使用
appUrlPrefix
表示访问报表时的URL中WEB服务器地址、端口及WEB应用名组成的一个串,如http://192.168.0.1:8080/myWebApp,直接将该串写入参数值。
一般不用设置,程序可以自动拼出此串。但有时访问申请经过了服务器的多重转发,造成拼出来的串不对时,需要设置此值。特殊情况:如果出现多台机器集群或者内外网多个IP等情况,可能导致最终拼出来的ip不正确,又不能指定死ip,此时可以用/APPMAP来配置。
cachedParamsTimeout
提交给报表的参数在缓存中保存的时间,以分钟为单位,在文本框后面显示单位,如果不设此参数,默认为120分钟。
cachedReportTimeout
报表缓存保存的时间,以分钟为单位,超过设定时间的报表缓存会被服务器清除。不超时的情况下,如果客户端请求同样的报表(包括参数等完全相同)且alwaysReloadDefine为"no"的话,新请求返回的结果来自报表缓存,即不再重新计算报表。
如果不设此参数,缺省值是120分。
maxCellNum
动态控制并发数设置,为当前报表系统能运算的最大单元格数。与maxConcurrentForReport不同,此设置不针对报表个数(静态并发控制),而是细化到所有报表计算后的总单元格数。如,该值设定为1000000,不论有多少报表同时在计算,只要计算后的总单元格数小于等于该设定值均可加载。其中,举例来说如果同时计算的前10张报表请求总共有960000个单元格,此时如果再有一超过40000单元格报表的请求时,该请求会处在等待状态。但如果有其他请求报表计算后单元格数小于或等于40000的,是可以正常计算的,通过此方式报表服务器能发挥最大性能,始终是最高效率运行。
该数值的大小取决于硬件的配置,一般来说内存越大,这些数值可以设得越大,但最多建议不要超过2000000。
注:该功能结合智能的单元格控制器,报表发来请求时,首先算该报表能扩展多少个单元格,并非直接取数计算展现报表。因此,如果扩展单元格超过设定的最大单元格数时,报表就不在继续计算取数计算报表了。
alwaysReloadDefine
报表运算时是否每次都重新读取报表定义。该配置为缓存功能的总开关,设置为no为开启缓存,yes为关闭缓存。
设置为yes,那么每次新报表请求都直接装载模板重新计算报表,不会读取缓存。
设置为yes,新读取的模板、新计算的报表及报表分页结果都会被缓存
设置为yes,意味着缓存对象会不断增加,直到缓存对象过期才会被清除。所以,如无特殊需要,建议不要设置alwaysReloadDefine为yes。如果必须关闭alwaysReloadDefine,建议设置报表缓存时间较短,例如30分钟,用户浏览一个报表30分钟内还未执行翻页打印导出操作,再次执行报表相关操作的可能性比较小。这样可以让缓存对象及时被清除,避免占用过多缓存。(缓存时间设置见cachedReportTimeout配置)
建议开发测试阶段设为yes,以免报表定义改动以后,访问报表不能及时刷新。正式上线后,应将其设为no.
alwaysReloadDefine设置为no,开启缓存功能。开启缓存功能后可通过tag标签的useCache与timeout两个属性来控制具体的每一个报表是否使用缓存和缓存有效时间。
如:自定义报表展现的页面中TAG中使用useCache和 timeout属性。
<report:html name="report1"
reportFileName="api/wangge.raq"
useCache="yes" //是否使用缓存
timeout="30" //从缓存系统中取多少分钟内产生的报表,如果没有此时间内的,则产生一个新报表,该属性的单位为分钟
/>
上述属性的设置表示在如果A用户读取了报表wangge.raq,那么在30分钟内,如果B用户去读取wangge.raq报表时,系统不再计算该报表,只是从缓存中读取该报表,并返回给B用户,同时将缓存中wangge.raq的缓存时间修改为B用户读取的时间。
注:以上说明为报表以file方式发布,如果发布的类型是defineBean,那么,alwaysReloadDefine将失效,系统会启动缓存机制,如果不需要缓存,建议通过一个动态变化的值来命名beanName属性,当然在request中保存的对象名与之一一对应
jspCharset
jsp字符集,默认值为UTF-8。使用v4的report:html标签时,会根据服务器配置管理中jspCharset, 规定了提交数据时,对数据中中文内容的编码。
- 用户使用自己写的页面,则JSP与这个设置的编码方式要一致
- 在V5中用参数表单,则reportConfig.xml中jspCharset也要设成UTF-8
- 用V5产品的其他功能,不需要特意指定此值。
- 若用户的数据库里要存GBK,可在数据源单独设置编码。
letterSpacingClass
单元缩进格处理类
dataSource
该属性针对v4设计的报表,报表运算时所引用的数据源的JNDI名称,用于在对应数据库执行数据集脚本。
如,某v4报表中用到数据源“test1”,数据库为oracle。那么,此处应至少配置为“test1,oracle;”,多数据源间用";"隔开即可。
另外,此处还有其他属性,完整格式如下
“数据源的JNDI名称,数据库类型[,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码][,SQL是否需要转码];[重复--多个数据源]……”
数据库类型按图3所示填写,图3中不存在的数据库类型,参数值都写为写unknown。
数据库中使用的字符集编码,一般为GBK或iso-8859-1。
SQL是否需要转码:有些数据库的字符集不是中文的,如果在执行的SQL语句中带有中文时,就会执行不正确。配置之前可以做一个简单的数据集为中文SQL的报表测试一下,如果执行结果不对,那么就需要设置此参数。参数值为1,表示要转码,为0或不设此参数值表示不需要转码。如:"test1,oracle;exercise,sqlsvr,1,iso8859-1,GBK,0;……"。
第一个数据源配置为应用中的缺省数据源,即如果在报表的数据集定义中没有指定数据源名称,则使用此数据源。
cachedReportDir
报表缓存的文件夹(绝对路径,windows下如E:/work/cache),如在unix系统中,用户应对此文件夹有写的权限,并根据报表的数量和访问量的大小以及缓存超时的时间,分配一个合理的空间大小。如果不设此参数或设置错误,则采用JDK默认的临时文件夹。
生成缓存文件名与cachedIdPrefix(如设置为“A”)设置有关,格式为“A_”+数字形式。
CSSFile
样式配置文件
reportFileHome
针对v4设计器设计报表,编辑好的报表文件在应用中存放的位置,该值支持方式:
(1)相对路径,可相对于WEB应用根目录,如“/mis2/reportcenter/res”,当url访问报表时,只传报表名称即可,如“http://localhost:8800/reportmis/mis2/vrsr/showReport1.jsp?raq=abcd1.raq“,服务器会自动到“/mis2/reportcenter/res”查找”abcd1.raq“文件。
(2)绝对路径,分隔符用“/”,如“D:/myReport/web/reportFiles”
jreVersion
jre安装包的版本,取值为“1.5”、“1.6”等
maxWaitTimeForReport
内存溢出后,最长等待多久才允许新任务访问,以秒为单位,一般建议为30。
注:当配置为“9999”时,此处不起作用,即不再限制。
maxConcurrentForReport
报表WEB应用中服务器可以同时计算的报表的个数,如果超过设定值,其他报表请求可能会处于等待状态(当等待报表个数超过maxWaitForReport设定时重新发请求,而非等待),以便有效控制服务器的内存使用量。该数值的大小取决于硬件的配置,一般来说内存越大,这些数值可以设得越大,但最多建议不要超过100。
举例:当前值设定为10,那么报表服务器最多只允许10张报表处于运算状态,只有等其中至少运算完后一个报表后,才会依次递补执行新请求或正在等待运算的报表。
注:当配置为“9999”时,此处不起作用,即不再限制。
maxWaitForReport
报表WEB应用中服务器可以等待计算的报表的个数,以便有效控制服务器的内存使用量。该数值的大小取决于硬件的配置,一般来说内存越大,这个数值可以设得越大,但最多建议不要超过100。
举例:当前值设定为10,那么报表服务器最多只允许10张报表请求处于等待运算状态(排队),后来的报表需重复发请求,直到计算或处于等待状态。
注:当配置为“9999”时,此处不起作用,即不再限制。
jreInstallName
客户端使用applet打印的时候,需要安装jre环境,若不安装则无法采用applet打印。
此处设置为方便没有安装jre环境的客户端,会自动根据该项配置到应用根目录下查找jre文件下载并安装,此处配置的是应用根目录下jre文件的完整名称。如“jre-6u24-windows-i586.exe”
产品包有自带默认jre安装包,位于应用根目录下,如果要替换其他版本jre文件,需同时修改此配置项值。同理,如果此处配置改变,那么也要对应放入相应版本的jre安装文件包。
errorPage
错误处理页
flashGraphDir
V4flash统计图目录
独立配置项
JNDI前缀(JNDIPrefix):Tomcat需要加JNDI前缀java:comp/env,Weblogic的JNDI前缀为空。
日志配置文件(logConfig):配置日志配置文件的名称和路径,可以为绝对路径或者相对路径,相对路径相对于/reportmis/WEB-INF。日志配置文件中保存的是日志相关的配置。
授权文件(license):公司提供授权文件名及其路径,可以设置成绝对路径也可以设置为相对路径,相对路径是相对于:/reportmis/WEB-INF。
报表缓存的前缀 (cachedIdPrefix):生成报表缓存号时的前缀串,只有在集群环境中并且多台服务器共享一个报表缓存目录时才需要设置。
缓存报表的资源ID(reportDefineCacheByResIDs):需要缓存的报表的资源ID,多个ID使用逗号分隔。
缓存报表的数目(reportDefineCacheNum):可以缓存的报表的最大数目。
服务器配置文件的优先级
reportConfig.xml的优先级最高,当reportConfig.xml存在时,都以此文件中的配置值为准,集群时各节点以本地xml里配的值为准。当没有reportConfig.xml时localReportConfig.xml优先级最高,其次是globalReportConfig.xml。
注:网站下载的安装包里,globalReportConfig.xml是入库的,localReportConfig.xml不入库的,reportConfig.xml不入库且不带在安装包里。
用户在做产品升级时,如之前没有修改该过reportConfig.xml,需要手动删掉原来的reportConfig.xml,升级后直接使用新的localReportConfig+globalReportConfig组合配置方案。
用户在做产品升级时,如之前修改过reportConfig.xml,需手动维护reportConfig.xml(此时集群配置管理页面无效)或者删掉该xml,手动重新对应分别配置localReportConfig.xml和globalReportConfig.xml。