DQL Server 部署

阅读(1825) 标签: dqlserver部署,

安装集算器后,产品里自带一全套基于组表(.ctx)的元数据文件和与之关联的DQL Server服务,用户可以参考本章节内容在产品里部署自己的DQL Server服务,或独立部署DQL ServerDQL Server目录结构如下:

DQL_Server_Root/  # DQL Server 服务根目录(在产品中为[集算器安装根目录]/esProc

├── esproc-services/  # 多服务实例总目录

  ├── server.xml  # 服务配置(服务器地址、端口、名称等配置)

  ├── serverName 1/  # 服务实例 1 目录

    ├── service.xml  # 实例1配置(用户信息/元数据文件路径等)

    └── conf/   # 实例1专属子目录

    ├── *.glmd  # 元数据文件(.glmd 后缀)

    ├── *. gdct  # 字典文件(.gdct 后缀,非必需)

    └── *.gvsb  # 可视文件(.gvsb 后缀,非必需)

  ├── serverName 2/  # 服务实例 2 目录(结构同服务1

  └──… …  # 可配置多个服务实例

  └── serverName n/  # 服务实例 n 目录(结构同服务1

├── log/  # 日志文件目录

接下来我们详细了解下关于DQL Server的部署以及相关配置说明。部署DQL Server操作如下步骤:

(一)  加载所需jar文件

集算器产品中使用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目录下。字典文件(*.gdct)、可视文件(*.gvsb)也放置于conf目录下。元数据文件demo.glmd中使用的数据文件位于[集算器安装目录]\esProc\documents\en路径下的pseudo.zip中,使用时需将解压后的pseudo文件夹放文件主目录下。

注意:单进程支持多个DQL Server服务实例,server.xmlservice.xml配置文件名称不能更改。

(三)  server.xml

server.xml文件部署在[服务根目录]/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/>标签属性如下:

  hostDQL Server的主机IP地址。

  port DQL Server的侦听端口号,缺省为3368

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

  log:是否记录运行日志,缺省为true,日志存放于[安装目录]/esProc/log/dql.txt_********.log

  raqsoftConfigxml配置文件,用于配置文件主目录、系列号等信息,xml文件名称支持自定义,文件路径可配置为绝对路径或相对路径,相对路径时相对于[服务根目录]

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

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

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

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

(四)  service.xml

service.xml文件部署在[服务根目录]\esproc-services\服务实例\,其内容如下:

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

<SERVICE logicmetadata="demo.glmd" dictionary="demo.gdct">

  <USERS>

<USER name="sa" password="sa" visibility="s1.gvsb" />

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

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

</USERS>

</SERVICE>

<SERVICE/>标签属性如下:

logicmetadata :元数据文件(.glmd),存于[服务根目录]\ esproc-services\服务实例\conf 下。

dictionary:字典文件(.gdct),可选。

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

<USER/> DQL Server的用户连接信息及可视文件配置。

name:用户名称,可选。

password:用户密码,可选。

visibility:可视文件(.gvsb),可选。

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

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

(五)  启动DQL Server

在产品中可直接使用[集算器安装根目录]\esProc\bin下的启动文件来启动DQL Server

windows版中,双击dqlserver.exe/startDQLSERVER.bat文件启动;

linux/mac版中,可以通过startDQLSERVER.sh文件启动,还可以使用非图形化方式启动,操作步骤如下:进入到[集算器安装根目录]\esProc\bin下,执行命令:./startDQLSERVER.sh  -d,即可启动DQL Server服务;执行命令:./startDQLSERVER.sh  -x,即可关闭DQL Server服务。

独立部署时启动DQL Server,运行命令必须包含以下参数:

javaw -cp <JAR加载路径> -Dstart.home=<主路径> com.esproc.dql.server.ServerConsole

Ø  -cp:指定Java扩展JAR包的加载路径(替换<JAR加载路径>为实际目录)

Ø  -Dstart.home:指定DQL Server的服务根目录(替换<主路径>为实际路径)

Ø  启动类:com.esproc.dql.server.ServerConsole

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

示例命令如下:

javaw -cp "D:\raqsoft\esProc\lib\*" -Dstart.home="D:\raqsoft\esProc" com.esproc.dql.server.ServerConsole

 

执行命令后弹出DQL Server窗口,点击【Start】启动DQL服务:

为方便使用可将运行命令做成启动文件,脚本内容可参考[集算器安装根目录]/esProc/bin下的startDQLSERVER.bat(/sh)文件。

(六)  连接DQL Server

DQL Server启动成功后可通过JDBC的方式进行连接。

具体连接方式使用如下:

JDBC

使用JDBC连接时需在程序中引用DQL Server JDBC的驱动包esproc-bin-***.jaresproc-ext-***.jaresproc-ent-***.jar

驱动com.esproc.dql.jdbc.DQLDriver

URL—jdbc:esproc:dql://[host]:[port],[host]:[port],.../[serviceName]?[&user={userName}]&[password={password}]

//参数说明:

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

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

[userName]/[password] -> DQL Server服务的用户名/密码