内嵌 QVS 使用说明
本文档适用于已经掌握了云服务部署的知识,希望进一步学习 qvs 其他用法的用户。
使用 qvs 服务时,除了可以部署 qvs 服务器,还可使用内嵌 qvs 方式。相对于部署 qvs 服务器,内嵌 qvs 使用更加便捷,只需要配置 ecloud.jar 与 qvsConfig.xml 文件即可。
使用内嵌 qvs 时,通过 Qconnect(url:v,wt,it) 函数来连接 qvs,此时 url 参数必须省略。
例如我们需要通过内置 qvs 来连接 GCE 上的 qva,然后申请 qvm 执行 GCS 云存储桶 unbucket100 下的脚本文件 employee-cursor.splx,下面通过示例来演示内嵌 qvs 的使用,这里我们默认 qva 与 qvm 是启动状态:
应用中使用内嵌 qvs
将 ecloud.jar 部署到用户应用里,用户应用启动时调用 com.scudata.ecloud.server.QVS.init( configFilePath ) 即可,其中参数 configFilePath 是 qvs 配置文件 qvsConfig.xml 的路径,该路径可以是绝对路径,也可以是相对路径,相对路径时相对于应用项目的类路径。下面以 Qjdbc 为例,用法如下:
1, 部署 Qjdbc
首先在用户的项目应用中集成 Qjdbc,具体操作可参考【企业版 JDBC】。
2, 加载 ecloud.jar
在启动项目应用时,需要加载 qvs 所需的 ecloud.jar 包,该 jar 文件在【集算器根目录】/esProc/lib 目录下可找到。在 web 应用下,可以把 jar 包放在 WEB-INF/lib 目录下。
3,配置 qvsConfig.xml 文件
qvsConfig.xml 可以在 [安装目录] /esProc/q-server/webapps/qvs/WEB-INF/home 下找到,根据实际环境配置完成后,可放在任意路径下,这里我们放置于【应用根目录】/config 目录下:
<?xml version="1.0" encoding="UTF-8"?>
<qvs>
<runMode>0</runMode>
<locale language="zh" country=""/>
<cacheSystem cachePath="cache" blockSize="1024" minFreeSpace="2" />
<verifies>
<verify code="GCP-35.236.6.87">
<qva user="admin" xpwd="88888888" url="http://35.236.6.87:8090/qva"/>
<store type="GCS">
{"credentials":"scudata-891de5fb1bc9.json"}
</store>
</verify>
</verifies>
</qvs>
其中用到的 GCS 云存储连接文件 scudata-891de5fb1bc9.json 放在应用项目的类路径下。
了解更多 qvsConfig.xml 的配置可参考【QVS 配置】。
4,设计并部署脚本文件
创建 splx 文件如下,保存为 Qcon.splx:
A |
||
1 |
=Qconnect(:"GCP-35.236.6.87",30,300) |
通过内嵌qvs向GCE上的 qva申请分配qvm。使用内嵌 qvs 时,参数 url 省略 |
2 |
=A1.exec@x("unbucket100/employee-cursor.splx";100) |
通过 qvs 执行 GCS 上的脚本文件, 使用 @x 选项,返回执行结果后自动关闭qvm |
可将上面的 Qcon.splx 放到应用项目的类路径下,也可以放到 raqsoftConfig.xml 中配置的寻址路径或主目录中,这里我们放置于主目录下。
5, 在 java 中调用脚本文件
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import com.scudata.ecloud.server.QVS;
public class qconnect {
Connection con = null;
java.sql.PreparedStatement st;
public void testDataServer(){
try{
//建立Qjdbc连接
Class.forName("com.esproc.jdbc.QDriver");
con= DriverManager.getConnection("jdbc:esproc:q:local://");
//调用Qcon.splx脚本文件
st=con.prepareCall("call Qcon()");
st.execute();
//获取结果集
ResultSet set = st.getResultSet();
ResultSetMetaData meta = set.getMetaData();
while (set.next()) {
for(int i=0; i<meta.getColumnCount(); i++){
System.out.print(set.getObject(i+1) + "\t");
}
System.out.println();
}
}
catch(Exception e){
System.out.println(e);
}
finally{
//关闭连接
if (con!=null) {
try {
con.close();
}
catch(Exception e) {
System.out.println(e);
}
}
}
}
public static void main(String[] args) throws Exception {
//调用com.scudata.ecloud.server.QVS.init(configFilePath),将qvsConfig.xml的相对路径作为参数传递
QVS qvs= new QVS();
QVS.init("config/qvsConfig.xml");
qconnect tds = new qconnect();
tds.testDataServer();
}
}
执行结果如下:
集算器 IDE 中也可使用内嵌 qvs,集算器安装包中已内置 ecloud-xxxxxxxx.jar,所以将 qvsConfig.xml 放到集算器的 [安装根目录]/esProc/config 目录下, GCS 云存储连接文件 scudata-891de5fb1bc9.json 放到类路径下([集算器安装根目录]/esProc/bin),启动 IDE 时即可启动内嵌 qvs,然后就可以执行 Qcon.splx 脚本:
虽然内嵌 qvs 相对于部署 qvs 比较便捷,但是也存在一些局限性,内嵌 qvs 不支持调试模式,不支持数据维护,不能使用全局锁和全局变量。用户可根据实际需求选择使用方式。部署 qvs 可参考《云服务部署》 。
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅

嗯,还不太了解好多乾?