PB11.5开发WebService碰到的问题(求解)
最近因公司项目的需要,需要用PB做个三层的软件,软件不复杂,但使用的用户数估计几百个,担心并发和操作频率比较高,特地先简单做了个Web Service测试了下,就发现了比较大的问题, 原因尚不明确,特地在此请教大家:
开发环境: PB11.5、MSSQL2000
服务端代码(方法:of_get_khzl):
string ls_ret,ls_data,error_sql
long ll_rowcount,ll_i
datastore lds_object;
//创建数据存储并指定对象
lds_object = create datastore
lds_object.dataobject = 'dw_bas_khzl_all'
//创建事务对象
if of_db_connect(as_error) then
else
destroy lds_object;
return 0;
end if
//设置事物并读取对应的 Blob类型;
lds_object.settransobject(sqlca);
ll_rowcount = lds_object.retrieve();
lds_object.getfullstate(ab_data);
//对BLOB类型进行数据压缩
n_cst_zlib ln_zlib
ln_zlib=create n_cst_zlib;
long ll_len
ll_len=ln_zlib.of_compress(ab_data,as_error);
destroy lds_object;
string ls_rtn;
//断开数据库;
of_db_disconnect(ls_rtn);
if as_error='' then
return 1;
else
return 0;
end if
客户端调用代码:blob lb_data;
string ls_error;
boolean lb_rtn;
long ll_rtn,ll_len;
//从webservice中获取资料,以BLOB返回;
ll_rtn=n_khzl.of_get_khzl(lb_data,ls_error);
if ll_rtn=0 then
messagebox("",ls_error);
return;
end if
//对BLOB解压缩处理;
n_cst_zlib ln_zlib
ln_zlib=create n_cst_zlib;
ll_len=ln_zlib.of_uncompress(lb_data,ls_error);
//对DW赋值查看;
dw_1.setfullstate(lb_data);
st_1.text="成功获取 "+string(dw_1.rowcount())+" 条企业资料数据!"
问题现象:
1、采用LOADRUN测试工具,单独跑两三个不会出问题,但一旦跑10个程序就挂;
2、开始担心LOADRUN的问题,特地用了多台客户端来跑,每个客户端又单独做了个鼠标精灵,每隔200MS点按钮去执行调用代码,开了五个客户端运行良好,但开了第六个电脑时,程序也报错?
难道WebService仅支持几个用户吗? 我看了CSDN上的很多兄弟也用此方式实现多个项目,请问在这方面是怎么处理的,有何高招?