安装集算器后,产品里自带一全套基于组表(.ctx)的元数据文件和与之关联的DQL Server服务。用户可以参考本章节内容在产品里部署自己的DQL Server服务,或独立部署DQL Server。
接下来我们详细了解下关于DQL Server的部署以及相关配置说明。
部署DQL Server操作如下步骤:
(一) 加载所需jar文件
将以下jar文件放入启动DQL Server时可加载到的目录下,获取路径为[集算器安装根目录]/esProc/lib:
esproc-bin-***.jar DQL Server计算引擎及JDBC驱动包
esproc-ext-***.jar DQL Server计算引擎及JDBC驱动包
esproc-ent-***.jar DQL Server计算引擎及JDBC驱动包
json-20240303.jar 解析json格式串
lz4-1.3.0.jar 压缩ctx文件
(二) 部署esproc-services目录
该目录为DQL Server的主文件目录,目录下可包含多个逻辑数据库,每个逻辑数据库都是一个独立的目录,如上图中的datalogic目录。 server.xml用于添加应用所使用的DQL Server逻辑数据库。逻辑数据库目录介绍如下:
1) service.xml位于[安装目录]/ esProc/esproc-services/服务目录下,用于配置逻辑数据库的元数据文件(*.glmd)。
2) 元数据文件由元数据编辑设计器生成,存放于服务目录的conf目录下。conf目录下还有字典文件(*.gdct)。元数据文件使用的示例数据文件位于[集算器安装目录]\esProc\documents\en路径下的pseudo.zip中,使用时需将解压后的pseudo文件夹放主目录下。
注意:单进程支持多个DQL Server服务实例,server.xml和service.xml配置文件名称不能更改。
(三) server.xml
将server.xml文件部署在[应用根目录]/esProc/esproc-services根目录下,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<SERVER host="127.0.0.1" port="3368" timeout="3000" log="true" raqsoftConfig="config\raqsoftConfig.xml" autoStart="false">
<SERVICE name="datalogic"/>
</SERVER>
<SERVER/>标签属性如下:
host:DQL Server的主机IP地址。
port: DQL Server的侦听端口号,缺省为3368。
timeout: DQL Server的最长等待客户端时间,超时后重新等待,缺省为3000,单位为毫秒。该参数影响关闭DQL Server的响应时间,时间越长,CPU性能浪费越少,关闭服务器等待时间越长。
log:是否记录运行日志,缺省为true,日志存放于[安装目录]/esProc/log/下dql.txt_********.log。
raqsoftConfig:配置文件raqsoftConfig.xml路径。用于读取主路径等信息。
autoStart:是否自动启动DQL服务,缺省为false。
<SERVICE/>:要启动的DQL Server列表,可以配置多个,多个时则需要添加多条<service/>,每个<service/>的name属性所指定的服务都必须位于[应用根目录]\ esproc-services下,esproc-services目录下可以有多个DQL Server服务目录,但只有这里列出的服务才会被启动
name: DQL Server的名称,且名称必须与服务目录的文件夹名称一致。
注:蓝色文字部分为必须配置的节点或属性。
(四) service.xml
将service.xml文件部署在[应用根目录]/esProc/esproc-services/服务目录的根目录下,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<SERVICE logicmetadata="demo.glmd" >
<USERS>
<USER name="sa" password="sa"/>
<USER name="ww" password="ww"/>
<USER name="ee" password="ee"/>
</USERS>
</SERVICE>
<SERVICE/>标签属性如下:
logicmetadata :元数据[.glmd]文件,存于[应用根目录]\ esproc-services\服务目录\conf 下。
<USERS/> :DQL Server的用户权限配置,可配置多个用户,多用户时则添加多个<USER/>节点。
<USER/> :DQL Server的用户连接信息。
name:用户名称,可选。
password:用户密码,可选。
注:1)蓝色文字部分为必须配置的节点或属性。
2)若xml文件中包含特殊字符,需先将特殊字符进行转义,再写入文件中,如将"&"写成"&"。
(五) 启动DQL Server
启动DQL Server时,运行命令必须包含以下参数:
javaw -Djava.ext.dirs=<JAR加载路径> -Dstart.home=<主路径> com.esproc.dql.server.ServerConsole
Ø -Djava.ext.dirs:指定Java扩展JAR包的加载路径(替换<JAR加载路径>为实际目录)
Ø -Dstart.home:指定DQL Server的主目录(替换<主路径>为实际路径)
Ø 启动类:com.esproc.dql.server.ServerConsole
注意:在start.home指定的主目录下,必须存在services子目录。
示例命令如下:
javaw -Djava.ext.dirs="D:\raqsoft\esProc\lib" -Dstart.home="D:\raqsoft\esProc" com.esproc.dql.server.ServerConsole
执行命令后弹出DQL Server窗口,点击【Start】启动DQL服务:
为方便使用可将运行命令做成启动文件,比如windows的[安装根目录]/esProc/bin下的startDQLSERVER.bat文件。
在linux系统下,还可以使用非图形控制台,操作步骤如下:进入到集算器的[安装根目录]\esProc\bin下,执行命令:./startDQLSERVER.sh -d,即可启动DQL Server服务;执行命令:./startDQLSERVER.sh -x,即可关闭DQL Server服务。
(六) 连接DQL Server
DQL Server启动成功后可通过JDBC的方式进行连接。
具体连接方式使用如下:
JDBC:
使用JDBC连接时需在程序中引用DQL Server JDBC的驱动包esproc-bin-***.jar、esproc-ext-***.jar、esproc-ent-***.jar。
驱动—com.esproc.dql.jdbc.DQLDriver
URL—jdbc:esproc:dql://[host]:[port],[host]:[port],.../[serviceName]?[&user={userName}]&[password={password}]
//参数说明:
[host]:[port] -> DQL Server的IP和端口号,可指定多个,但多个时除ip和端口号外,其他内容须保持一致。连接时如果第一个连接不通,会依次连接下一个,直到连接成功为止
[serviceName] -> 需要连接的DQL Server名称
[userName]/[password] -> DQL Server服务的用户名/密码