各位大虾好!
  本公司有一套MIDAS系统,采用SocketServer作中间通讯层,原来由于客户端用户少,所以一直都很稳定,现本人有一项目,客户端需同时连接在100个左右,所以本人对原系统进行压力测试,发现原来那个系统最多只能连9个客户端(同一台机上开9个客户端程序),在开第10个的时候,服务端和客户端都死了.不知什么原因,请高手指教!!!
  另本人想知道,如果客户端同时在线100人,整个系统效率如何?
  有人开发过这类系统吗?请大家提个建议,本人好作方案更改!

解决方案 »

  1.   

    后台数据库:SQL Server
    中间层用ADO连数据库!
      

  2.   

    你建RDM时用的线程模式与实例是什么,一般来说,三层模式几百人同时在线时,性能影响不是很大,当然中间层的处理有很大的关系。
      

  3.   

    我中间层采用Apartment方式,中间层只上传SQL语句和下传数据集.
      

  4.   

    你的中间件上开设方法和函数没有,还有,是否用DSPPROVIDER传递数据,DSPPROVIDER的数据在下传后,应该清除,当然这是要做到应用层,无状态的模式
      

  5.   

    基本上没有,就是作了一个计数处理:
    procedure TNewCBSServer.RemoteDataModuleCreate(Sender: TObject);
    begin
       Form1.Label2.Caption:=IntToStr(StrToInt(Form1.Label2.Caption)+1);
    end;procedure TNewCBSServer.RemoteDataModuleDestroy(Sender: TObject);
    begin
        Form1.Label2.Caption:=IntToStr(StrToInt(Form1.Label2.Caption)-1);
    end;
      

  6.   

    把服务器端改成在com+组件,这是改动最少的一种方式,
    然后把com+的池子配大一些,例如50
      

  7.   

    我的一个测试数据,希望对你有所帮助。
    dcom+ado+sqlserver2000
    服务器的参数为:ciMultiInstance,tmApartment在一般的机器上连接150个客户端没有问题。
      

  8.   

    中间层(DCOM)多加几台机器,可用TSimpleObjectBroker做均衡处理!