TWEBConnection的问题,很急。(300分)

D

djdsz

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TWebConnection连接作三层应用,以使系统能够在Internet环境中运行,经过一段时间
测试,存在很大问题。如下:
系统每向服务器申请一次数据(As_GetRecords),系统使用的内存就增加一点,并且不
释放。但用TSocketConnection,TDComConnection就不会出现该问题。我真的很苦恼。请各位
大虾测试测试。
 
你是不是有内存没释放的地方
 
我的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
v:array of byte;
begin
v:=WebConnection1.AppServer.FetchData('select * from ClassResource',null,integer(true));
//v:=SocketConnection1.AppServer.FetchData('select * from ClassResource',null,integer(true));
//解压缩数据V
ClientDataSet1.Data:=V;
setlength(v,0);
end;
当用WebConnection1向服务器取数据时才会有这问题,但我用第二句或用DComConnection时是没问题的。
 
这不是你的错,是httpsrvr.dll的Bug
 
httpsrvr.dll的Bug?我是在不同机器上测试的,服务器端内存没有变化,但客户端内存耗
用很快。难道http协议会对客户端内存造成影响吗?
 
你在服务器端自定义一个方式,用它的参数返回数据试试
 
v:=WebConnection1.AppServer.FetchData('select * from ClassResource',null,integer(true));
FetchData本来就是服务器端函数,根据第三个参数决定是否压缩数据流,第二个参数是查询
的params定义。
 
还有,我用COMHOOK,BoundsChecker都查不到内存泄漏现象。系统表现就是耗用内存越来越大。
OS: win2k server
Delphi:D6 sp2
RAM: 512M
DBMS: ORACLE 9.2.0.1/SQL 2K/IB6/DB2都一样
DBEngine: DBX/ADO
 
我测了,可能是缓存没有释放的问题,我用一个很大的数据传送量试,如果你每取数后就
把webconnection 断开 取数再连接,内存就会控制下来,开始有一些小的增加,到一定时
就会下降或保持稳定
 
我也测试出来了,散分
 
顶部