企业版 QVS 部署使用说明
企业版集算器中提供了远程服务,该功能可以对远程服务器或云存储进行上传下载文件、修改调试SPL脚本等操作。
使用远程服务前需要部署QVS应用,企业版集算器内置的Tomcat中已部署该应用,远程机器中安装产品后可直接使用,另外我们也可以将QVS部署在自己独立的应用中。
快速入门
企业版集算器安装包中提供完整的QVS项目,位于【集算器安装目录】\esProc\q-server,因此想要快速使用QVS应用进行远程服务,直接在本地及远程机器上安装企业版集算器,然后将【集算器安装目录】\esProc\lib 中的 jar 复制到【集算器安装目录】\esProc\q-server\webapps\qvs\WEB-INF\lib 即可。
下面通过一个示例,让您对远程服务有个快速体验。
在远程服务器192.168.124.13的数据库mydemo中存在一张表employee用于记录雇员信息,我们要在本地通过脚本选出employee表中工资大于8000的雇员,并且将脚本存放在远程服务器上,方便后续调试。
第一步:本地编辑脚本
根据需求在本地集算器中编辑脚本:
将脚本保存在本地,这里我将保存为D:\tmp\test1.splx。
第二步:配置IP地址和端口号
在远程服务器的【集算器安装目录】\esProc\q-server\conf\server.xml文件中配置IP地址和端口号。
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8041" shutdown="SHUTDOWN">
…
<Service name="Catalina">
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="0"
/>
<Engine name="Catalina" defaultHost="localhost">
…
<Host name="192.168.124.13" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
第三步:配置数据源
(1)将相关驱动jar放在指定位置
将存放在远程服务器【集算器安装目录】\common\jdbc下的hsqldb-***.jar数据源驱动jar拷贝到远程服务器【集算器安装目录】\esProc\q-server\webapps\qvs\WEB-INF\lib中。
(2)修改配置文件raqsoftConfig.xml
在远程服务器的【集算器安装目录】\esProc\q-server\webapps\qvs\WEB-INF\home\raqsoftConfig.xml中配置数据源如下:
<DBList>
<DB name="demo">
<property name="url" value="jdbc:hsqldb:hsql://127.0.0.1/demo" ></property>
<property name="driver" value="org.hsqldb.jdbcDriver" ></property>
<property name="type" value="13" ></property>
<property name="user" value="sa" ></property>
<property name="password" ></property>
<property name="batchSize" value="1000" ></property>
<property name="autoConnect" value="true" ></property>
<property name="useSchema" value="false" ></property>
<property name="addTilde" value="false" ></property>
<property name="dbCharset" value="UTF-8" ></property>
<property name="clientCharset" value="UTF-8" ></property>
<property name="needTransContent" value="false" ></property>
<property name="needTransSentence" value="false" ></property>
<property name="caseSentence" value="false" ></property>
</DB>
</DBList>
如果需要设置其他数据库,也可以参考以上两个步骤进行配置。
第四步:启动数据库
在远程服务器的【集算器安装目录】\esProc\bin中启动startDataBase.bat(linux下启动startDataBase.sh)。
第五步:启动服务器
启动远程服务器位于【集算器安装目录】\esProc\q-server\bin下的startup.bat(linux下为startup.sh)。
第六步:登录QVS
打开集算器ide,在菜单栏中找到【远程服务 - 登录】。

- 服务器名称:自定义的服务器名称,多个服务器时名称不能重复;
- URL:“http://192.168.124.13:8090/qvs”;
- 验证串:QVS 被远程连接时的验证串,默认为 "demoqvs",请参考《快速集成 - 第四步:QVS 配置》。
填写以上部分,点击【登录】即可访问QVS。
ide 左侧【应用资源】列出已登录的远程服务资源 myQVS,myQVS 下可展现 QVS 的主目录和云存储目录,本例未对 QVS 配置云存储地址,因此仅显示主目录。
主目录默认为【集算器安装目录】\esProc\q-server\webapps\qvs\WEB-INF\home\splx 目录,如需修改,请参考《快速集成 - 第三步:设置 QVS 主目录》。
第七步:远程服务脚本调试
(1)将本地脚本test1.splx上传至远程服务器192.168.124.13主目录
在主目录处鼠标右键,选择【上传文件】
或者在菜单选择【远程服务 - 上传文件】
点击【选择节点】,选择【主目录】
选择文件D:\tmp\test1.splx,点击【上传文件】,上传完成如图:
(2)执行远程脚本
双击打开远程QVS主目录下的脚本test1.splx,可以直接执行脚本。
此时实质上是直接在远程服务器上执行计算脚本,而非将远程脚本下载到本地执行。
(3)调试远程脚本
在脚本中继续添加条件:统计工资大于8000的雇员中各部门的雇员数量,将test1.splx的内容修改为:
点击【保存】,即可将更新的内容同步到远程服务器中。
快速集成
介绍完使用集算器内置 Tomcat 中部署的 QVS 应用,下面我们来介绍如何将 QVS 部署在自己独立的应用中,同时也会介绍如何配置云存储目录。
第一步:集成应用目录
将【集算器安装目录】\esProc\q-server\webapps\qvs如下内容全部集成到WEB应用中。
集成后的【项目目录】\webapps\qvs\WEB-INF\lib中jar包如下:
除此之外,还需要将集算器的相关 jar 复制到 QVS 应用中:
【集算器安装目录】\esProc\lib 目录下的 jar 复制到【集算器安装目录】\esProc\q-server\webapps\qvs\WEB-INF\lib。
注意:
(1) 如需连接数据库,可参考《快速入门 - 第三步:配置数据源》小节部署。
(2) 所有文件中只有web.xml文件不能直接拷贝,而是将QVS的web.xml文件中的内容拷贝到所要集成的web.xml文件中。其内容在web.xml中的顺序,要遵从相关应用服务器的规定。
第二步:设置IP地址和端口号
第三步:设置QVS主目录
在【项目目录】\webapps\qvs\WEB-INF\home\raqsoftConfig.xml中设置QVS主目录,主目录默认为【项目目录】\webapps\qvs\WEB-INF\home\splx。
<?xml version="1.0" encoding="UTF-8"?>
<Config Version="3">
<Runtime>
…
<!-- 设置QVS的主目录 -->
<mainPath>splx</mainPath>
…
</Runtime>
</Config>
第四步:QVS 配置
<?xml version="1.0" encoding="UTF-8"?>
<qvs>
…
<!--cacheSystem:从云存储服务商下载用户文件到QVS的相关配置。
cachePath:缓存文件下载目录;
blockSize:指定下载块的大小;
minFreeSpace:存放下载文件目录的最小空闲空间,当服务器剩余空间小于最小空闲空间时,会自动删除下载目录下的缓存文件。-->
<cacheSystem cachePath="cache" blockSize="1024" minFreeSpace="2" />
<verifies>
<!-- code:验证串-->
<verify code="demoqvs">
<!-- 与云存储相关的配置,store是调试者的云存储信息:type:存储服务商的类别,如:S3。标签之间的内容是QVS的云存储用户相关信息,示例中是S3用户的信息格式。需配置成用户自己的云存储地址。-->
<store type="S3">
{"region":"cn-north-2","accessKey":"AKEETAZQDCXFENKIIIXO","secretKey":"aYI3JBZOuRGkU3bck2H6u4W5O3FvNhjDhoVQU2yN","endPoint":"https://s3.cn-north-2.amazonaws.com.cn"}
</store>
</verify>
</verifies>
…
</qvs>
可以在【项目目录】\webapps\qvs\WEB-INF\home\qvsConfig.xml 中修改验证串、添加云存储地址。QVS 应用提供默认验证串 "demoqvs"。
在快速入门章节介绍了对 QVS 主目录文件的上载调试步骤,如需对云存储目录做调试,需参考上述 store 标签配置云存储地址,并按如下说明将云存储依赖的第三方 jar 放至 QVS 目录:
【集算器安装目录】\esProc\q-extlib 目录存储了目前程序支持的云存储平台的第三方依赖 jar,本例我们使用了 S3 云存储,需将 S3 目录下的 jar 复制到【集算器安装目录】\esProc\q-server\webapps\qvs\WEB-INF\lib。
第五步:启动服务器
第六步:登录QVS
打开集算器ide,在菜单栏中找到【远程服务 - 登录】。
- 服务器名称:自定义的服务器名称,多个服务器时名称不能重复;
- URL:http://[ip 地址]:[端口号]/[项目名称];
- 验证串:QVS 被远程连接时的验证串,可配置多个。
填写以上部分,点击【登录】即可访问QVS。
ide左侧【应用资源】列出已登录的远程服务资源myQVS,myQVS下列出QVS的主目录及云存储目录。
应用目录说明
本章节主要介绍QVS应用目录的组成以及配置文件的内容。
应用目录介绍
QVS应用目录内容如下:
WEB-INF |
必需的目录,放置应用配置文件和jar |
||
home |
log |
日志文件目录 |
|
splx |
默认QVS主目录 |
||
qvsConfig.xml |
QVS配置文件 |
||
raqsoftConfig.xml |
SPL配置文件 |
||
lib |
放置WEB应用所需引用的jar包 |
||
web.xml |
配置servlet |
配置文件介绍
qvsConfig.xml
以下为QVS配置文件qvsConfig.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>
<qvs>
<runMode>1</runMode>
<locale language="zh" country=""/>
<!--cacheSystem:从云存储服务商下载用户文件到QVS的相关配置。
cachePath:缓存文件下载目录;
blockSize:指定下载块的大小;
minFreeSpace:存放下载文件目录的最小空闲空间,当服务器剩余空间小于最小空闲空间时,会自动删除下载目录下的缓存文件。-->
<cacheSystem cachePath="cache" blockSize="1024" minFreeSpace="2" />
<verifies>
<verify code="demoqvs">
<!-- 与云存储相关的配置,store是调试者的云存储信息,type:存储服务商的类别,如:S3。标签之间的内容是QVS的云存储用户相关信息,示例中是S3用户的信息格式。需配置成用户自己的云存储地址。-->
<store type="S3">
{"region":"cn-north-2","accessKey":"AKEETAZQDCXFENKIIIXO","secretKey":"aYI3JBZOuRGkU3bck2H6u4W5O3FvNhjDhoVQU2yN","endPoint":"https://s3.cn-north-2.amazonaws.com.cn"}
</store>
</verify>
</verifies>
</qvs>
raqsoftConfig.xml
以下为SPL配置文件raqsoftConfig.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>
<Config Version="3">
<Runtime>
<!-- 配置应用所需的数据源,相关驱动jar需放置于应用可以加载的目录下-->
<DBList>
<DB name="demo">
<property name="url" value="jdbc:hsqldb:hsql://127.0.0.1/demo" ></property>
<property name="driver" value="org.hsqldb.jdbcDriver" ></property>
<property name="type" value="13" ></property>
<property name="user" value="sa" ></property>
<property name="password" ></property>
<property name="batchSize" value="1000" ></property>
<property name="autoConnect" value="true" ></property>
<property name="useSchema" value="false" ></property>
<property name="addTilde" value="false" ></property>
<property name="dbCharset" value="UTF-8" ></property>
<property name="clientCharset" value="UTF-8" ></property>
<property name="needTransContent" value="false" ></property>
<property name="needTransSentence" value="false" ></property>
<property name="caseSentence" value="false" ></property>
</DB>
</DBList>
<Esproc>
<charSet>GBK</charSet>
<splPathList>
<splPath></splPath>
</splPathList>
<dateFormat>yyyy-MM-dd</dateFormat>
<timeFormat>HH🇲🇲ss</timeFormat>
<dateTimeFormat>yyyy-MM-dd HH🇲🇲ss</dateTimeFormat>
<!-- 设置QVS的主目录,登录远程服务后,在ide左侧列表树显示;写成相对路径时,相对于raqsoftConfig.xml -->
<mainPath>splx</mainPath>
<tempPath>temp</tempPath>
<bufSize>65536</bufSize>
<parallelNum>16</parallelNum>
<cursorParallelNum>16</cursorParallelNum>
<blockSize>1048576</blockSize>
<nullStrings>nan,null,n/a</nullStrings>
<fetchCount>9999</fetchCount>
<customFunctionFile></customFunctionFile>
<!-- 设置外部库 -->
<extLibsPath>F:\raqsoft\esProc\extlib</extLibsPath>
<importLibs>
<lib>WebserviceCli</lib>
</importLibs>
</Esproc>
<Logger>
<Level>DEBUG</Level>
</Logger>
</Runtime>
<JDBC>
</JDBC>
</Config>
web.xml
以下为servlet配置文件web.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0">
<servlet>
<servlet-name>QVSServlet</servlet-name>
<servlet-class>com.scudata.ecloud.server.QVSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>DebuggerServlet</servlet-name>
<servlet-class>com.scudata.ecloud.server.debug.DebuggerServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ideFileServlet</servlet-name>
<servlet-class>com.scudata.ecloud.server.debug.file.FileServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ideResumableUpDownServlet</servlet-name>
<servlet-class>com.scudata.ecloud.server.debug.file.stream.StreamServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QVSServlet</servlet-name>
<url-pattern>/qvs</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DebuggerServlet</servlet-name>
<url-pattern>/spl/debug</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ideFileServlet</servlet-name>
<url-pattern>/file/ide</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ideResumableUpDownServlet</servlet-name>
<url-pattern>/file/resumable</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅

嗯,还不太了解好多乾?
英文版
请问连接上远程服务器后,能否使用远程服务器的数据库连接?能否把在客户端上的脚本运行在远程服务器上? 如果可以,请详述如何操作
您好,帖子已更新详细操作过程
有例子就搞明白了,测试没问题,谢谢指点