求救!DCOM超过10个连接,服务器没有响应了?Delphi7+Windows 2000+Sql Server2000+DCOM 开发的三层系统,可是每当客户连接数超过10个,服务器就没有响应了,第十个连接也无法建立。请问如何解决??

解决方案 »

  1.   

    检测窗体中是否用label显示连接数,服务器不响应的原因是label 宽度不够。你可以检查一下。
      

  2.   

    Puredream (Pure) 是否真的解决问题了呢?
      

  3.   

    中间层分为无状态对象与有状态对象,无状态对象就是服务完了调用者要求的服务后,这个对象的内部状态就完全消失了,它不会为上一次的调用保留任何的内部状态,所以当下一次有其它的调用者调用无状态对象的方法时,可以想象成这个无状态对象是完全为它新建立的。在传统的两层客户机服务器结构或是Delphi应用程序服务器中经常是使用状态对象的观念。例如Delphi3.x的Tprovider便是属于状态对象,因为Tprovider组件必须记得客户端的TclientDataset组件下一次需要的数据封包是那一个,简单的说就是Tprovider组件必须为TclientDataset组件维护一个Cursor的信息,但是Delphi3.x的Tprovider组件也可以变为无状态对象,只要程序员把Tclientdataset组件的PackRecord设定为-1,那么TclientDataset组件会一次取得所有的数据,Tprovider组件也就不需要为TclientDataset组件维护Cursor信息了。
        在分布式应用系统中使用无状态对象是为了增加应用程序服务器能够服务的客户端应用程序数目,例如若中介软件不使用无状态对象,那么每一个客户端应用程序都可以能需要使用数个企业对象,而且这些企业对象在客户端应用程序没有结束执行时都无法释放。那么中介软件在服务了一定数量的客户端应用程序之后就再也无法服务其它的客户端程序。但是无状态对象的属性便是在使用能够立刻释放给其它的用户使用,所以在分布式应用系统中如果客户端应用程序使用的企业对象都是无状态对象,那么中介软件或是应用程序服务器可以同时服务的客户端应用程序数目便可以在幅的增加,进而增加分布式应用系统的延展性。