报表 DQL Server 部署

阅读(5387) 标签: 报表dqlserver部署,

安装润乾报表后,产品自带一套基于HSQL数据库的元数据文件和与之关联的报表DQL Server服务。用户可参考本章节介绍在产品里部署自己的报表DQL Server服务,或独立部署自己的报表DQL Server

报表DQL Server服务通常连接单个物理数据库进行数据查询与报表生成。当业务需要把将分散在不同物理库中的表进行汇总查询时,单物理数据库配置无法满足,此时可启用多物理数据库支持功能,通过同时查询多个物理库,在服务器端完成计算后汇总结果返回。

接下来我们详细介绍下关于报表DQL Server的部署以及相关配置说明。

基本部署

部署报表DQL Server,按照如下步骤: 

(一) 加载所需jar

将以下jar包放入启动报表DQL Server时可加载到的目录下,获取路径为报表[安装根目录]\report\web\webapps\demo\WEB-INF\lib

datalogic.jar        报表DQL Server计算引擎及JDBC驱动包

esproc-bin-***.jar     报表DQL Server基础包

json-20240303.jar      解析json格式串

raqsoftReport.jar      润乾报表核心包

如果报表DQL Server连接了其他物理数据源,需要添加对应数据库的驱动jar包。以自带逻辑数据库为例,它底层连接的物理数据源是HSQL数据库,所以启动时需引入HSQL驱动包hsqldb-2.7.3-jdk8.jar,获取路径为报表[安装根目录]\common\jdbc

 

(二)   部署services目录

该目录为报表DQL Server的主文件目录,目录下可包含多个逻辑数据库,每个逻辑数据库是一个独立的目录,如上图中的datalogic目录。server.xml用于添加应用所使用的报表DQL Server逻辑数据库,并配置该报表DQL Server服务是否使用多物理数据库。逻辑数据库目录介绍如下:

1) service.xml用于配置逻辑数据库的元数据文件(*.lmd)、物理数据库连接信息以及报表DQL Server的用户权限。service.xml位于[安装根目录]\report\services\服务目录下。

2) 元数据文件由DQL元数据层设计器生成,存放于服务目录的conf目录下。

server.xmlservice.xml文件的具体配置可参考单物理库配置小节。

注意:

1、进程支持多个报表DQL Server服务实例;支持BlobClob等流式数据类型;server.xmlservice.xml配置文件名不可更改;查询语句带$表示物理SQL,不带$表示DQL

 

(三) 启动报表DQL Server

启动报表DQL Server时,运行命令必须包含以下参数:

java -Djava.ext.dirs=<JAR加载路径> -Dstart.home=<主路径> com.datalogic.server.ServerConsole

l  -Djava.ext.dirs:指定Java扩展JAR包的加载路径(替换<JAR加载路径>为实际目录)

l  -Dstart.home:指定报表DQL Server的主目录(替换<主路径>为实际路径)

l  启动类:com.datalogic.server.ServerConsole

注意:start.home指定的主目录下,必须存在services子目录。

示例命令如下:

为方便使用可将运行命令做成启动文件,如在报表[安装根目录]\report\bin目录下,运行startDQLSERVER.bat,可启动报表DQL Server

Linux系统下,进入[安装根目录]\report\bin目录:

./startDQLSERVER.sh  -d 启动报表DQL Server

./startDQLSERVER.sh  -x 关闭报表DQL Server

 

(四) 连接报表DQL Server

报表DQL Server启动成功后可通过JDBCODBC两种连接方式进行连接。

具体连接方式使用如下:

JDBC

使用JDBC连接时需在程序中引用报表DQL Server JDBC的驱动包datalogic.jar和报表DQL Server的基础包esproc-bin-***.jar

驱动 com.datalogic.jdbc.LogicDriver

URL jdbc:datalogic://[host]:[port],[host]:[port],…/[serviceName]?[&connect={连接名}]&[dqllog={true|false}] 

//参数说明:

[host]:[port] -> 报表DQL ServerIP和端口号,可指定多个,多个时除ip和端口号外,其他内容须保持一致。连接时若第一个连接不通,会依次连接下一个,直到连接成功

[serviceName] -> 需要连接的报表DQL Server名称

[connect] -> 设置connect参数时,只连接connect指定的数据源,connect缺省时则连接报表DQL Server配置的用户数据源

[dqllog] -> 执行DQL时,是否打印DQL语句日志信息

例如:raqsoftConfig.xml配置文件里datalogic服务的连接如下

<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"/>

<!-- user的属性值对应service.xml<USER>标签的name -->

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

<!-- password的属性值对应service.xml<USER>标签的password -->   

<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="caseSentence" value="false"/>

</DB>

ODBC

驱动 sun.jdbc.odbc.JdbcOdbcDriver

URL jdbc:odbc:[ODBC数据源名称]

具体连接方法可参见使用ODBC连接报表DQL Server小节。

单物理库配置

单物理库的配置包含server.xmlservice.xml,文件说明如下:

Ø  server.xml

server.xml文件部署在报表[安装根目录]\report\services的根目录下,其内容如下:

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

<SERVER host="127.0.0.1" license="" port="3366" timeout="3000" log="true" autoStart="false">

<SERVICE name="datalogic"/>

</SERVER>

 

<SERVER/>标签属性如下:

host: 报表DQL Server的主机IP地址。

license: 润乾报表授权。按绝对路径和类路径次序查找授权文件。

port: 报表DQL Server的侦听端口号,缺省为3366

timeout: 报表DQL Server的最长等待客户端时间,超时后重新等待,缺省为3000,单位为毫秒。该参数影响关闭报表DQL Server的响应时间,时间越长,CPU性能浪费越少,关闭服务器等待时间越长。

log: 是否记录运行日志,缺省为true。日志文件存于[应用根目录]\services\服务目录\log下。

autoStart: 是否自动启动服务,缺省为false

 

<SERVICE/>: 需要启动的报表DQL Server服务列表,可配置多个,多个时则需添加多个<SERVICE/>节点,每个<SERVICE/>name属性所指定的服务都必须位于[应用根目录]\services下,services目录下可以有多个报表DQL Server服务目录,但只有这里列出的服务才会被启动。

name: 报表DQL Server的名称,名称必须与服务目录的文件夹名称一致。

 

注:蓝色文字部分为必须配置的节点或属性。

 

Ø  service.xml

service.xml文件部署在报表[安装根目录]\report\services\服务目录\的根目录下,其内容如下:

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

<SERVICE logicmetadata="demo.lmd">

<DB type="HSQL">

<CONNECTION name="db1" type="jndi" jndi="java:comp/env/report" user="" password=""/>

<CONNECTION name="db2" type="jdbc" url="jdbc:hsqldb:hsql://127.0.0.1/dqldemo" driver="org.hsqldb.jdbcDriver" user="sa" password=""/>

</DB>

<USERS>

<USER name="root" password="root" admin="true">     

<CONNECTION name="db2" />

<CONNECTION name="db1" user="wn" password="wn"/>

</USER>

<USER name="ww" password="ww"/>

</USERS>

</SERVICE>

 

<SERVICE/>标签属性如下:

logicmetadata: 报表DQL Server的元数据文件,存于[应用根目录]\services\服务目录\conf 下。

 

<DB/>配置报表DQL Server使用的物理数据源,标签属性如下:

type: 数据库类型,取值范围ORACLESQLSVRSYBASESQLANYINFMIXFOXPROACCESSFOXBASDB2MYSQLKINGBASEDERBYHSQLTERADATAPOSTGRESUNKNOWN等。

<CONNECTION/>配置报表DQL Server的物理数据源的连接信息,标签属性如下:

name:物理数据源的名称。

type:连接类型,取值范围jndijdbcjndi:通过web服务环境Context连接;jdbc:通过加载数据库驱动连接。

jdbc连接类型的数据源需同时设置driver(数据库驱动类)、url(数据库连接URL)、user(数据库用户名)、password(数据库密码)属性。

jndi连接类型的数据源需同时设置jndiJNDI服务提供者的URL)、user(数据库用户名)、password(数据库密码)属性。

 

<USERS/>配置报表DQL Server的用户权限,可配置多个用户,多用户时则添加多个<USER/>节点。

<USER/>配置报表DQL Server的用户连接信息,标签属性如下:

name:连接报表DQL Server的用户名,可选。(注:使用ODBC连接报表DQL Server时,必填)

password:连接报表DQL Server的密码,可选。(注:使用ODBC连接报表DQL Server时,必填)

admin:当前用户是否为管理员,可选。

<CONNECTION/>配置当前用户可连接的数据源名称。可配置多个连接,多连接时则添加多个<CONNECTION/>节点。标签属性如下:

name:要连接的物理数据源名称,连接name必须在<DB>节点已配置,可选。

user:当前用户可以设置自己的数据库用户名,可选。

password:当前用户可以设置自己的数据库密码,可选。

<USER/>下配置多个<CONNECTION/>节点时,按照其先后顺序,依次进行尝试连接。

<USER/>下没有配置自己要连接的数据源时,则按照<DB/>节点下的数据源配置的先后顺序,依次进行尝试连接。

 

注:1蓝色文字部分为必须配置的节点或属性。

2)若xml文件中包含特殊字符,需先将特殊字符进行转义,再写入文件中,如将"&"写成"&amp;"

 

补充说明:

在部署报表DQL Server时,如需修改产品某个逻辑数据库(datalogic为例)目录下的元数据文件和数据源配置,除手动修改配置文件外,还可通过下面方式进行:

DQL元数据层设计器中启动报表 DQL Server 时,通过其菜单选项传递相应的属性值,直接实现部署期间的修改。

首先,勾选选项菜单中的启动报表DQL服务时弹出部署窗口

然后,点击服务 - 启动报表DQL服务器,弹出如下窗口:

数据源:下拉列表中的数据源均来自系统 - 数据源中所添加的物理数据源。

报表DQL服务目录:需要修改的逻辑数据库目录所在路径,默认为datalogic逻辑数据库的路径。

元数据文件:新元数据文件所在路径,程序会将该文件上传至报表DQL服务目录所在的逻辑数据库中。

点击【确定】后,程序会根据元数据文件路径获取元数据文件,并将文件上传至[安装根目录]\report\services\datalogic\conf目录下,数据源名称和元数据文件名称也会同步修改到[安装根目录]\report\services\datalogic\service.xml中。

多物理库配置

多物理库是一个报表DQL Server服务中配置多个物理数据源,该数据源需先在WEB应用的raqsoftConfig.xml配置文件中定义,每个数据源对应的元数据层文件要保持语义结构一致。程序会自动根据元数据层的语义结构进行合并,实现多物理库间的合并汇总。

多物理库的配置包含server.xmlservice.xml,文件说明如下:

Ø  server.xml

server.xml文件部署在报表[安装根目录]\report\services根目录下,其内容如下:

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

<SERVER host="127.0.0.1" license="" raqsoftConfig="web/webapps/demo/WEB-INF/raqsoftConfig.xml" port="3366" timeout="3000" log="true" autoStart= "false">

<SERVICE name="datalogic_multi" mdb="true"/>

</SERVER>

 

<SERVER/>标签属性如下:

host: 报表DQL Server的主机IP地址。

license: 润乾报表授权。按绝对路径和类路径次序查找授权文件。

raqsoftConfig:报表配置文件raqsoftConfig.xml路径,此属性仅在使用多个物理库时有效。

port: 报表DQL Server的侦听端口号,缺省为3366

timeout: 报表DQL Server的最长等待客户端时间,超时后重新等待,缺省为3000,单位为毫秒。该参数影响关闭报表DQL Server的响应时间,时间越长,CPU性能浪费越少,关闭服务器等待时间越长。

log: 是否记录运行日志,缺省为true。日志文件存于[应用根目录]\services\服务目录\log下。

autoStart: 是否自动启动服务,缺省为false

 

<SERVICE/>: 需要启动的报表DQL Server服务列表,可配置多个,多个时则需添加多个<SERVICE/>节点,每个<SERVICE/>name属性所指定的服务都必须位于[应用根目录]\services下,services目录下可以有多个报表DQL Server服务目录,但只有这里列出的服务才会被启动。

name: 报表DQL Server的名称,名称必须与服务目录的文件夹名称一致。

mdb:是否使用多个物理库,缺省为false。值为true时表示使用多个物理库,此时service.xml结构有变,具体可参考service.xml文件中<MAP/>标签使用介绍。

 

注:蓝色文字部分为必须配置的节点或属性。

<SERVICE>标签中的mdb属性为true时,表示当前报表DQL Server服务启用多物理库。在此模式下,系统将从<SERVER/>标签指定的raqsoftConfig属性值中获取物理数据源名称;在service.xml文件配置物理库时,可以在< ENTRY />标签中通过名称引用raqsoftConfig.xml文件内定义的物理数据源。

 

Ø  service.xml

service.xml文件部署在报表[安装根目录]\report\services\服务目录\的根目录下,其内容如下:

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

<SERVICE logicmetadata="demo.lmd">

<USERS>

<USER name="root" password="root"/>

<USER name="ww" password="ww"/>

</USERS>

<MAP>   

<ENTRY dbName="dqldemo1" logicmetadata="" />

<ENTRY dbName="dqldemo2" logicmetadata="" />

<ENTRY .../>

</MAP>

</SERVICE>

 

<SERVICE/>标签属性如下:

logicmetadata: 报表DQL Server的元数据文件,存于[应用根目录]\services\服务目录\conf 下。

 

<USERS/>配置报表DQL Server的用户权限,可配置多个用户,多用户时则添加多个<USER/>节点。

<USER/>配置报表DQL Server的用户连接信息,标签属性如下:

name:连接报表DQL Server的用户名,可选。(注:使用ODBC连接报表DQL Server时,必填)

password:连接报表DQL Server的密码,可选。(注:使用ODBC连接报表DQL Server时,必填)

admin:当前用户是否为管理员,可选。

 

<MAP/>配置报表DQL Server要使用的物理数据源,仅在多物理库时使用。

<ENTRY/>配置物理数据源名称及元数据文件,标签属性如下:

dbName:设置物理数据源名称。物理数据源必须在指定的raqsoftConfig.xml文件中已定义。

logicmetadata:当前物理数据源所使用的元数据文件,可选。若未设置元数据文件则默认采用<SERVICE/>标签中的同名属性值。

 

注:1蓝色文字部分为必须配置的节点或属性。

  2)使用多物理库时,元数据层文件中的逻辑表表结构必须保持一致。包含表名字段名字段数维(表主键)。