相关文件的配置

阅读(711) 标签: 配置文件,

本节将重点介绍web.xmlraqsoftConfig.xmlreportCenter.xml三个配置文件的参数说明,报表缓存配置,并发数控制,性能管理的推荐配置。详细内容介绍请参考具体小节。

web.xml

web.xml文件中要对报表系统中用到的servlettaglib进行配置,请将报表系统提供的web.xml文件中的<web-app>节点下的所有内容复制到你的应用的web.xml文件中相应的位置。

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<listener> 

    <listener-class>com.raqsoft.center.listener.UserSessionListener</listener-class> 

</listener>

<listener> 

  <listener-class>com.raqsoft.guide.web.GuideSessionListener</listener-class> 

</listener>

<!-- 报表中心手机登录状态过滤器  -->

    <filter>

  <filter-name>mobileLoginFilter</filter-name>

  <filter-class>com.raqsoft.center.console.mobile.MobileLoginFilter</filter-class>

 </filter>

<filter-mapping>

  <filter-name>mobileLoginFilter</filter-name>

  <url-pattern>/raqsoft/center/mobile/jsp/*</url-pattern>

</filter-mapping>

<!-- 报表中心浏览器版登录状态过滤器  -->

<filter>

  <filter-name>loginFilter</filter-name>

  <filter-class>com.raqsoft.center.console.LoginFilter</filter-class>

</filter>

<filter-mapping>

   <filter-name>loginFilter</filter-name>

  <url-pattern>/raqsoft/center/*</url-pattern>

</filter-mapping>

<filter-mapping>

  <filter-name>loginFilter</filter-name>

  <url-pattern>/reportCenterServlet</url-pattern>

</filter-mapping>

<filter>

   <filter-name>encodingFilter</filter-name>

  <filter-class>com.raqsoft.report.webutil.CharacterEncodingFilter</filter-class>

  <init-param>

  <param-name>encoding</param-name>

  <param-value>UTF-8</param-value>

  </init-param>

</filter>

<filter-mapping>

  <filter-name>encodingFilter</filter-name>

  <url-pattern>/*</url-pattern>

</filter-mapping>

  <servlet>

  <servlet-name>DLServlet</servlet-name>

  <servlet-class>com.raqsoft.guide.web.dl.DLServlet</servlet-class>

  <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet>

  <servlet-name>dataSphereServlet</servlet-name>

  <servlet-class>com.raqsoft.guide.web.DataSphereServlet</servlet-class>

  <load-on-startup>2</load-on-startup>

  </servlet>

  <!-- 访问路径均为: http://127.0.0.1:端口号/项目名称/reportCenter  -->

  <!-- 报表中心servlet定义  -->

<servlet>

  <servlet-name>reportCenterServlet</servlet-name>

  <servlet-class>com.raqsoft.center.console.ReportCenterServlet</servlet-class>

</servlet>

<!-- 报表中心上传servlet定义  -->

<servlet>

  <servlet-name>centerUpload</servlet-name>

  <servlet-class>com.raqsoft.center.console.file.UploadFilesServlet</servlet-class> 

  </servlet>

  <servlet>

  <servlet-name>reportServlet</servlet-name>

  <servlet-class>com.raqsoft.report.view.ReportServlet</servlet-class>

  <init-param>

  <param-name>configFile</param-name>

  <param-value>/WEB-INF/raqsoftConfig.xml</param-value>

  </init-param>

 <init-param>

  <param-name>headless</param-name>

  <param-value>none</param-value>

  </init-param>

  <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet>

  <servlet-name>setContext</servlet-name>

  <servlet-class>com.raqsoft.report.webutil.setContextServlet</servlet-class>

  <load-on-startup>4</load-on-startup>

  </servlet>

  <servlet>

  <servlet-name>com.raqsoft.report.usermodel.PrintSetupServlet</servlet-name>

  <servlet-class>com.raqsoft.report.usermodel.PrintSetupServlet</servlet-class>

  <init-param>

  <param-name>saveDisplayScale</param-name>

   <param-value>yes</param-value>

  </init-param>

  </servlet>

<!-- 保存客户端打印设置,可以修改这个参数值 -->

  <servlet>

  <servlet-name>com.raqsoft.report.view.PagedPrint</servlet-name>

  <servlet-class>com.raqsoft.report.view.PagedPrint</servlet-class>

  </servlet>

  <servlet>

  <servlet-name>InputServlet</servlet-name>

  <servlet-class>com.raqsoft.input.view.InputServlet</servlet-class>

  <load-on-startup>1</load-on-startup>

</servlet>

 

<!--远程服务-->

<servlet>

<servlet-name>ReportCenterServletIde</servlet-name>

<servlet-class>com.raqsoft.center.console.ide.ReportCenterServlet</servlet-class>

<init-param>

  <param-name>configFile</param-name>

  <param-value>/WEB-INF/raqsoftConfig.xml</param-value>

</init-param>

</servlet>

 

<servlet-mapping>

<servlet-name>ReportCenterServletIde</servlet-name>

<url-pattern>/reportCenterServlet/ide</url-pattern>

</servlet-mapping>

 

 

<servlet-mapping>

  <servlet-name>InputServlet</servlet-name>

  <url-pattern>/InputServlet</url-pattern>

</servlet-mapping>

  <servlet-mapping>

  <servlet-name>com.raqsoft.report.usermodel.PrintSetupServlet</servlet-name>

  <url-pattern>/servlet/PrintSetupServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>dataSphereServlet</servlet-name>

  <url-pattern>/servlet/dataSphereServlet</url-pattern>

  </servlet-mapping>

  <!-- 报表中心上传servleturl映射路径  -->

  <servlet-mapping>

  <servlet-name>centerUpload</servlet-name>

  <url-pattern>/reportCenterServlet/upload</url-pattern>

  </servlet-mapping>

  <!-- 报表中心servleturl映射路径  -->

  <servlet-mapping>

  <servlet-name>reportCenterServlet</servlet-name>

  <url-pattern>/reportCenterServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>reportCenterServlet</servlet-name>

  <url-pattern>/raqsoft/center/mobile/jsp/reportCenterServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>DLServlet</servlet-name>

  <url-pattern>/DLServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>DLServlet</servlet-name>

  <url-pattern>/DLServletAjax</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>reportServlet</servlet-name>

  <url-pattern>/reportServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>com.raqsoft.report.view.PagedPrint</servlet-name>

  <url-pattern>/servlet/pagedPrintServer</url-pattern>

  </servlet-mapping>

 

  <taglib>

  <taglib-uri>/WEB-INF/raqsoftReport.tld</taglib-uri>

  <taglib-location>/WEB-INF/raqsoftReport.tld</taglib-location>

  </taglib>

<taglib>

  <taglib-uri>/WEB-INF/raqsoftInput.tld</taglib-uri>

  <taglib-location>/WEB-INF/raqsoftInput.tld</taglib-location>

  </taglib>

<taglib>

  <taglib-uri>/WEB-INF/raqsoftQuery.tld</taglib-uri>

  <taglib-location>/WEB-INF/raqsoftQuery.tld</taglib-location>

  </taglib>

  <taglib>

  <taglib-uri>/WEB-INF/raqsoftAnalyse.tld</taglib-uri>

  <taglib-location>/WEB-INF/raqsoftAnalyse.tld</taglib-location>

  </taglib>

  <listener> 

  <listener-class>com.raqsoft.input.view.InputSessionListener</listener-class> 

 </listener>

<session-config>

     <session-timeout>30</session-timeout>

   </session-config>

</web-app>

 

说明:

1.headless属性值为none时表示不设置headless,缺省headless属性值为true

2.打印大数据量时,蓝色部分为必须配置,一般情况下,可配可不配。但只要配置了<servlet></servlet>就必须配<servlet-mapping></servlet-mapping>

raqsoftConfig.xml

关于润乾报表V2018的参数设置,请打开文件(WEB-INF/raqsoftConfig.xml)。内容如下:

<!--注意:为避免程序使用异常,raqsoftConfig.xml文件的编码格式必须设置为UTF-8 -->

<?xml version="1.0" encoding="UTF-8"?>

<Config Version="1">

    <Runtime >

<!—数据源中用户密码的加密级别:0表示明文,1表示密码加密-->

  <DBList encryptLevel="0">

    //报表应用demo数据源

<!--数据库类型编号,编号依次代表的数据库类型为:[UNKNOWN:0; ORACLE:1; SQLSVR:2; SYBASE:3; SQLANY:4; INFMIX:5; FOXPRO:6; ACCESS:7; FOXBAS:8; DB2:9; MYSQL:10; KINGBASE:11; DERBY:12; HSQL:13; TERADATA:14; POSTGRES:15; DATALOGIC:16;  IMPALA:17;  ESSBASE:101;] -->

      <DB name="reportdemo">

      <!--由于xml文件中不允许出现&等特殊字符,因此如果urlvalue值中需包含&等特殊字符时,则需先将特殊符号进行转义,如先将&写成"&amp;",再写入文件中-->

  <property name="url" value="jdbc:hsqldb:hsql://127.0.0.1/reportdemo" />

   <property name="driver" value="org.hsqldb.jdbcDriver" />

  <property name="type" value="13" />

  <property name="user" value="sa" />

  <property name="password" />

  <property name="batchSize" value="1000" />

<!--是否自动连接。如果设定为true,则可以直接使用db.query()函数来访问数据库;如果为false,则不会自动连接,使用前必须用connect(db)语句连接-->

  <property name="autoConnect" value="false" />

<!--数据库是否用模式名,例如:如果设置为true ,则在自动生成的sql语句中,会是select tbl.col1,tbl.col2 from tbl这样的语法,否则就是select col1,col2 from tbl -->

  <property name="useSchema" value="false" />

  <property name="addTilde" value="false" />

<!--数据库编码格式-->

  <property name="dbCharset" value="GBK" />

        <!--客户端编码格式-->

   <property name="clientCharset" value="GBK" />

<!--数据库取出来的内容是否需要转码,设置为true时,当数据库编码与前端不一致的,需要将数据库中的数据转码后呈现-->

  <property name="needTransContent" value="false" />

<!-- SQL语句是否需要转码,指从前端到数据库执行sql时,有可能需要转码把字符转成数据库的编码来填报或者查询-->

  <property name="needTransSentence" value="false" />

        <!-- SQL语句大小写是否敏感-->

  <property name="caseSentence" value="false" />

  </DB>

//查询和分析功能中DQL Server服务所需要的物理数据库demo数据源

      <DB name="dqldemo">

  <property name="url" value="jdbc:hsqldb:hsql://127.0.0.1/dqldemo" />

  <property name="driver" value="org.hsqldb.jdbcDriver" />

  <property name="type" value="13" />

  <property name="user" value="sa" />

  <property name="password" />

  <property name="batchSize" value="1000" />

  <property name="autoConnect" value="false" />

  <property name="useSchema" value="false" />

  <property name="addTilde" value="false" />

   <property name="dbCharset" value="GBK" />

  <property name="clientCharset" value="GBK" />

  <property name="needTransContent" value="false" />

  <property name="needTransSentence" value="false" />

   <property name="caseSentence" value="false" />

  </DB>

//配置查询和分析功能中所使用的DQL Server服务

      <DB name="DataLogic">

  <property name="url" value="jdbc:datalogic://127.0.0.1:3366/datalogic" />

  <property name="driver" value="com.datalogic.jdbc.LogicDriver" />

  <property name="type" value="16" />

  <property name="user" value="root" />

  <property name="password" value="root" />

  <property name="batchSize" value="1000" />

  <property name="autoConnect" value="false" />

  <property name="useSchema" value="false" />

  <property name="addTilde" value="false" />

  <property name="dbCharset" value="GBK" />

   <property name="clientCharset" value="GBK" />

  <property name="needTransContent" value="false" />

  <property name="needTransSentence" value="false" />

  <property name="caseSentence" value="false" />

  </DB>

  </DBList>

<!--路径设置需注意以下说明:

1,使用相对路径时,路径前不需要加反斜杠“/”

2,绝对路径前需要带盘符或者反斜杠“/”。带反斜杠“/”时为绝对路径,表示拼接上当前盘的根目录,例如该程序的根目录在D盘,那么/reportFiles即表示D:/reportFiles-->

        //集算器选项配置

  <Esproc>

      <!--设置集算器授权,可为相对路径,相对路径前面不需要加反斜杠”/”-->

   <license />

  <charSet>GBK</charSet>

<!--配置dfx文件寻址路径,可为相对路径,相对路径前面不需要加反斜杠”/”-->

  <dfxPathList>

  <dfxPath>WEB-INF/reportFiles</dfxPath>

  </dfxPathList>

  <dateFormat>yyyy-MM-dd</dateFormat>

   <timeFormat>HH:mm:ss</timeFormat>

  <dateTimeFormat>yyyy-MM-dd HH:mm:ss</dateTimeFormat>

<!--配置esProc主目录,主目录必须为绝对路径。主目录为空时则相对于WEB应用根目录-->

  <mainPath />

  <tempPath />

  <bufSize>65536</bufSize>

   <localHost />

  <localPort>0</localPort>

<!--在独立启动的tomcat中部署demo应用时,当raqsoftReportLog.properties文件定义的日志输出级别与logLevel的交集时才会输出日志。比如logLevelINFO级别,raqsoftReportLog.properties文件里的日志级别为DEBUG,那么web端日志则只会输出INFO级别的日志。-->

  <logLevel>DEBUG</logLevel>

  <callxParallel>1</callxParallel>

  <nodeParallel>1</nodeParallel>

  <zoneLockTryTime>3600</zoneLockTryTime>

  </Esproc>

      //报表选项配置

  <Report>

        <!--设置报表授权,可为相对路径,相对路径前面不需要加反斜杠”/”-->

  <license> </license>

<!--编辑好的报表文件在应用中存放的位置,其值可相对于WEB应用根目录;也可是绝对路径,分隔符用“/”表示,如d:/myReport/web/webapps/demo/ WEB-INF/reportFiles-->

  <home>WEB-INF/reportFiles</home>

  <styleConfig>tmp/reportStyleConfig.xml</styleConfig>

  </Report>

//填报表选项配置

    <Input>

<!--表示编辑好的填报表文件在应用中存放的位置,其值可相对于WEB应用根目录;也可是绝对路径,分隔符用“/”表示,如D:/myReport/web/webapps/demo/ WEB-INF/reportFiles ,相对路径前面不需要加反斜杠”/”-->

  <home>WEB-INF/reportFiles</home>

  </Input>

  </Runtime>

    <Server>

<!-- 设置JNDI数据源

<JNDIList>

//指定与报表中所使用数据源名称一致的JNDI数据源名称

  <JNDI name="jdbc/test">

        //数据库类型编号,0-14依次代表的数据库类型为:[UNKNOWN:0; ORACLE:1; SQLSVR:2; SYBASE:3; SQLANY:4; INFMIX:5; FOXPRO:6; ACCESS:7; FOXBAS:8; DB2:9; MYSQL:10; KINGBASE:11; DERBY:12; HSQL:13; TERADATA:14;]

  <property name="type" value="1"/>

  <property name="batchSize" value="1000"/>

    //引用数据库的JNDI数据源,格式为:java:comp/env/DataSource名称。通过JNDI名称找到DataSource,查找数据源时的环境串前缀,在不同的WEB服务器中不同,如Tomcat中是java:/comp/env,而WeblogicWebsphere中均不需要,可以不填。

服务器

Tomcat

Weblogic

Webshpere

Resin

Jboss

JNDIPrefix

java:/comp/env

java:/comp/env

Java:

 

  <property name="lookup" value="java:comp/env/jdbc/test"/>

  </JNDI>

  </JNDIList>-->

<property name="raqsoftDir" value="raqsoft" />

<property name="jspCharset" value="UTF-8" />

<property name="cachedReportDir" value=" cache/report" />

<property name="jreInstallName" value="jre-6u24-windows-i586.exe" />

<property name="cachedIdPrefix" value="A" />

<property name="maxWaitTimeForReport" value="9999" />

<property name="inputCachePath" value="cache/input" />

<property name="alwaysReloadDefine" value="yes" />

<property name="maxConcurrentForReport" value="9999" />

<property name="cachedReportTimeout" value="120" />

<property name="picFileExistTime" value="60" />

<property name="maxWaitForReport" value="9999" />

<property name="defDataSource" value="demo" />

<property name="maxDatasetValueNum" value="-1" />

<property name="logConfig" value="WEB-INF/raqsoftReportLog.properties" />

<property name="cachedParamsTimeout" value="120" />

<!-- 多个用分号隔开,例如:A  192.168.0.10,8888;B, 192.168.0.11, 8888 -->

<property name="clusterMember" value="serverName, host, port" />

<property name="maxCellNum" value="" />

<property name="appUrlPrefix" value="" />

<property name="errorPage4export" value="" />

<property name="webServerType" value="" />

<property name="isCachedFileShared" value="" />

<property name="defaultCellNum" value="" />

<property name="cacheMonitorInterval" value="" />

<property name="errorPage" value="" />

<property name="reportEnterUrl" value="" />

<property name="wrapInchingWidth" value="" />

<property name="wrapByChar" value="" />

<property name="letterSpacingClass" value="" />

<property name=" customFunction" value="" />

<property name="slimerjsDir" value="e:\slimerjs-0.10.3"/>

<property name="echartsJSUrlPrefix" value="http://localhost:6868/demo/raqsoft"/>

<property name="paramCheckClass" value=""/>

<property name="disallowedParamWordList" value=""/>

  </Server>

</Config>

以上参数说明如下:

(1)  logConfig表示报表系统日志记录配置属性文件。日志属性文件的配置说明请参照raqsoftReportLog.properties文件中的说明。

(2)  defDataSource表示用户在报表WEB应用中用到的缺省数据源。如果在润乾报表服务器上使用集算器输出的数据集,特别注意要保证数据源的一致性,即集算器文件用到的数据源名称和报表服务器配置的数据源名称一致。

(3)  jspCharset表示报表应用中的JSP页面的字符集,缺省值是UTF-8

(4)  cachedParamsTimeout表示提交给报表的参数在缓存中保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。

(5)  cachedReportDir表示报表/大报表缓存的文件夹。用户应对此文件夹有写的权限,并根据报表的数量和访问量的大小以及缓存超时的时间,分配一个合理的空间大小。如果用户没有写的权限或不设此参数或设置错误,则采用JDK默认的临时文件夹(JVM属性java.io.tmpdir的值)

(6)  cachedIdPrefix表示报表缓存的前缀。

cachedIdPrefix生成报表缓存号时的前缀串,只有在集群环境中并且多台服务器共享一个报表缓存目录时才需要设置。

(7)  cachedReportTimeout表示报表缓存保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。此值应根据实际内存大小、缓存文件夹空间大小来调节,一般在13小时之间。

(8)  maxCellNum 当前报表系统能运算的最大单元格数,能够动态控制并发数。该数值的大小取决于硬件的配置,一般来说内存越大,这些数值可以设得越大,但最多建议不要超过2000000

(9)  maxConcurrentForReport表示报表WEB应用中服务器可以同时计算的报表的个数,以便有效控制服务器的内存使用量。该数值的大小取决于硬件的配置,一般来说内存越大,这些数值可以设得越大,但最多建议不要超过100

(10)  maxWaitForReport表示报表WEB应用中服务器可以等待计算的报表的个数,以便有效控制服务器的内存使用量。该数值的大小取决于硬件的配置,一般来说内存越大,这个数值可以设得越大,但最多建议不要超过100

(11)  maxWaitTimeForReport表示内存溢出后,最长等待多久才允许新任务访问,以秒为单位,一般建议为30

(12)  appUrlPrefix表示访问报表时的URLWEB服务器地址、端口及WEB应用名组成的一个串,如http://192.168.0.1:8080/myWebApp。一般不用设置,程序可以自动拼出此串。但有时访问申请经过了服务器的多重转发,造成拼出来的串不对时,需要设置此值。特殊情况:如果出现多台机器集群或者内外网多个IP等情况,可能导致最终拼出来的ip不正确,又不能指定死ip,此时可以用/APPMAP来配置。

(13)  alwaysReloadDefine是否每次都重新读取报表定义,如设为yes,则不能享受性能管理提供的缓存功能可以在应用开发测试阶段设为yes,以免报表定义改动以后,网页访问报表不能及时刷新但应用正式上线以后,应将其设为no. 此时如果修改了报表定义, 应访问refreshReport.jsp来刷新相应的报表定义及其缓存。

(14)  errorPage4export增加一个WEB应用全局配置errorPage,用来指定tag中的exceptionPageinputExceptionPage的缺省值。

(15)  webServerType 应用服务器的类型。

(16)  jreInstallName 客户端使用打印applet的时候,如果没有安装jre环境,会自动根据该项配置到应用根目录下查找jre文件下载并安装。

(17)  clusterMember 集群时用于配置缓存机器和缓存端口号,目的用于实现集群主机之间的缓存同步

(18)  isCachedFileShared  配置是否共享缓存目录,目的用于实现集群主机之间的缓存同步

(19)  picFileExistTime表示缓存目录下图片文件的过期时间,时间单位为分钟,如果不设此参数,缺省值是60分。

(20)  defaultCellNum  预算单元格数。如果报表格数未设定,则按此设定数作为预算单元格数。目的是客户不必对所有报表逐一设报表格数表达式,而只对他认为的大报表进行设定。此属性只有设置了maxCellNum才有意义。

(21)  raqsoftDir  配置web应用中raqsoft目录相对于应用根目录的位置,raqsoft目录是部署报表环境所必须的系列目录,缺省默认为应用根目录下的raqsoft

(22)  maxDatasetValueNum  数据容量控制,用来控制报表系统并发数据集的数据总量峰值,以防报表服务器因为数据量太大而内存溢出造成服务器崩溃,其中单个数据集的数据量=字段数*行数。

(23)  inputCachePath   填报表上下载文件的临时缓存目录,可以是绝对路径或相对WEBROOT的相对路径。如果没有配置,系统默认在java的用户主目录下创建一个目录input_tmpdir。使用相对路径时,路径前不需要加反斜杠“/”。

(24)  cacheMonitorInterval 缓存监控程序执行缓存监控的时间间隔。

(25)  errorPage 展现报表错误信息的页面。使用报表标签exceptionPage也可以配置报表错误信息的页面,当exceptionPage缺省时,使用errorPage属性中配置的页面,当exceptionPage已经配置时,优先使用exceptionPage中配置的页面。

(26)  reportEnterUrl 展现报表时的页面url,对于某些系统中报表不是直接访问jsp时,需要指定此属性。比如struts里,是用.do来访问的。

(27)  wrapInchingWidth 自动换行时的留白宽度。

(28)  wrapByChar 自动换行时无需考虑避首避尾或者单词整体切分等等,属性值为yes或者no

(29)  letterSpacingClass 设定自动换行单元格的自定义字符间距的java类名。

(30)  customFunction自定义函数配置文件路径,自定义函数需要在customFunctions.properties中登记函数,该文件默认放置位置为:demo\WEB-INF\classes\config。当该文件放置到默认位置以外的位置时,需要配置customFunction属性。

(31)  slimerjsDir 设定slimerjs安装目录

(32)  echartsJSUrlPrefix配置echarts图形的js所在的父目录的访问地址,可将其配置成文件绝对路径的形式,也可以配成http方式。注:当应用以war包方式发布时,必须配置此项,且必须配置成http方式。不是以war包方式发布时,可以不用配置此项,程序会自动设置此项。

(33)  slimerjsDir echartsJSUrlPrefix属性主要用于Echarts统计图的导出和打印。具体可参考《教程》第三方图形导出与打印小节。

(34)  paramCheckClass设置参数值校验的类路径。

(35)  disallowedParamWordList设置报表的禁用参数值,多个参数值之间可用逗号分隔,英文字母不区分大小写。

XML文档中预定好的实体:实体必须以符号“&”开头,以符号“;”结尾

&lt; 

< 

小于号

&gt; 

> 

大于号

&amp; 

&

&apos; 

 

单引号

&quot; 

 

双引号

参数名均为大小写相关,用户必须根据自己应用的实际情况填写相应的参数值。



reportCenter.xml

关于润乾报表V2018报表中心的属性设置说明,请打开文件(WEB-INF/reportCenter.xml)。内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<reportCenter>

  <!-- 超级管理员密码初始为a000000 -->

  <managerPass>82273A6BA2126D3AF24CE2D0CB0AF515</managerPass>

  <roles>

  <!--下一个新增机构的roleId编号 -->

    <newId>2</newId>

    <!--机构角色,超级管理员和管理员不可修改。role标签的属性说明:

name:机构名称;

roleId:机构编号,用于区别角色;

nodeList: 角色可见的节点id—用于生成该角色登录时看到的节点树过滤;

dsList: 设计器中可用数据源远程服务登录能看到的数据源

    dirmodeRptList:报表设计器资源路径权限远程服务登录能看到的资源树和管理权限;

dirmodeDfxList:集算器设计器资源路径权限远程服务登录能看到的资源树和管理权限;

-->

    <role name="超级管理员" roleId="0" allAuth="true" nodeList="" />  

    <role name="管理员" roleId="1" allAuth="true" nodeList="" />

    <role name="访客" roleId="-1" dirmodeRptList="demo,1" nodeList="1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76" dsList="demo" dirmodeDfxList="demo,1" />

  </roles>

  <users>

<!--下一个新增用户的Id编号 -->

    <newId>2</newId>

    <!--user标签的属性说明:

id:机构名称;

roleId: 用户所属的机构角色id

name: 用户名;

password: MD5加密的用户密码

    email:邮箱;

phone:电话;

-->

    <user id="-1" name="raq_visitor" roleId="-1" password="82273A6BA2126D3AF24CE2D0CB0AF515" />

  </users>

  <!--用来存储DQL Server数据源与dctvsb文件关联关系-->

  <dbs>

    <db name="DataLogic">

      <dct>dcts/demo.dct</dct>

      <vsb>vsbs/demo.vsb</vsb>

    </db>

<db name="DataLogicMDB">

    </db>

  </dbs>

<!--查询分析管理中的文件列表。标签必须与后缀名一致,程序会自动根据标签名来区分文件类型-->

  <files>

    <dct>dcts/demo.dct</dct>

    <vsb>vsbs/demo.vsb</vsb>

    .. …

  </files>

  <!--机构可选的目录列表-->

  <paths>

    <path value="" />

    <path value="input" />

    <path value="dcts" />

    <path value="vsbs" />

    <path value="analyseFiles" />

    <path value="demo" />

  </paths>

  <!--功能树-->

  <tree>

    <newId>1</newId>

    <name scale="1.1" paged="1" scroll="0" raq="rpx/网格式报表.rpx" url="onLineUser.jsp">首页31</name>

  </tree>

  <newRptId>1</newRptId>

  <reports>

    <!-- rptdfx文件缺省路径,在上传时候可选择,等同于在paths中配置 -->

    <rptRoot>rpx</rptRoot>

    <dfxRoot>dfx</dfxRoot>

    <!-- 上传报表时候选择dfx脚本的话,可以将dfx保存到这里 -->

  </reports>

  <!--引用润乾报表核心配置文件的路径 -->

  <raqsoftConfig>WEB-INF/raqsoftConfig.xml</raqsoftConfig>

</reportCenter>

报表缓存配置

当报表数据量较大,计算过程中消耗大量内存,或计算时间比较长,我们建议开启报表缓存设置.如果发布的报表类型是file,那么只要设置alwaysReloadDefineno,就开启了报表缓存机制,它在计算时,在指定的时间内,报表定义文件仅加载一次,报表仅运算一次.其它操作都从缓存中提取,如翻页等等.如果发布的文件类型是defineBean,那么,alwaysReloadDefine将失效,系统会启动缓存机制,如果不需要缓存,建议通过一个动态变化的值来命名beanName属性,当然在request中保存的对象名与之一一对应.

alwaysReloadDefine为系统是否启用缓存提供了一个总开关,我们还可以通过tag标签的useCachetimeout两个属性来控制具体的每一个报表是否使用缓存,当设置useCacheyes,timeout30时,系统在运算过程中将,将启动缓存,并且每次计算仅取30秒以内生成的有效报表,如果没有此时间内的,则产生一个新报表.

报表缓存功能配置在raqsoftConfig.xml中,11.2.2节中的(5)(6)(7)(13)有说明,如下所示:

<property name="cachedReportDir" value=" E:\work\report\cached "/>

<property name="cachedIdPrefix" value="A"/>

<property name="cachedReportTimeout" value="30"/>

<property name="alwaysReloadDefine" value="yes"/>


并发数控制

大量客户端并发访问报表服务器时,容易出现服务器性能不够的情况,例如运算太慢、内存吃紧等,此时可以控制访问的并发数。

 

报表的并发控制在raqsoftConfig.xml中,11.2.2中的(8) (9)(10)(11)有说明,如下所示:

<property name="maxCellNum" value="100000"/>

<property name="maxConcurrentForReport" value="10"/>

<property name="maxWaitForReport" value="10"/>

<property name="maxWaitTimeForReport" value="30"/>

 

配置数据库允许的最大连接数和应用服务器的连接池个数时,必须大于 报表的并发数+报表的等待数



性能管理的推荐配置

访问量高的配置方案

JVM内存设置为512M的服务器为例子,假设并发量为1000,用户讲求的报表为200单元格(差不多为一张A4纸的报表),不管是图片还是文本,我们以一个单元格平均为1.2K计算,可以得出报表系统的内存使用量为:

    1000*200*1.2k/1024k=234.375M

根据以上计算,我们在实际生产系统中,我们建议:

cachedReportTimeout设置成60分钟,用户数据量大的情况下,减少报表缓存时间。

alwaysReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。同时在tag标签中把useCache设置为yes,timeout可以根据自己的实时要求进行设置,如果数据一直都不会变的话,建议设置为-1

maxConcurrentForReport1000,这是并发量

maxWaitForReport设置为2000

maxWaitTimeForReport设置为10秒钟,10秒内得不到响应,用户需要再次请求。

maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*50=10000

 

数据量大的配置方案

JVM内存设置为1G的服务器为例子,假设并发量最大为5,用户请求的报表为200单元格*1000页(数据量可能上千万,但通过条件查询,最其中几千条记录),一般大数据量都没有图片,所以以每一个单元格为0.5k计算,那么在最大并发量下,得出报表系统内存使用量为:

      200*1000*5*0.5/1024K=488.28125M

根据以上计算,我们在实际生产系统中,我们建议:

cachedReportTimeout设置成180分钟,用户数据量大的情况下,增大报表缓存时间。

alwaysReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。同时在tag标签中把useCache设置为yes,timeout可以根据自己的实时要求进行设置,如果数据一天都不会变的话,建议设置为-1

maxConcurrentForReport5,这是并发量

maxWaitForReport设置为10

maxWaitTimeForReport设置为600秒钟,10分钟内得不到响应,用户需要再次请求。

maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*500=100000

在开发模式下的配置

在开发过程中,我们可能时不时的修改报表,并且想不在重启web服务器的情况下,在页面上看到修改效果,这时我们可以设置raqsoftConfig.xml中的alwaysReloadDefineyes,如下所示:

<property name="alwaysReloadDefine" value="yes"/>