这套地磅计量系统,使用的是三层结构,用SocketConnection连接中间层的,已经平稳的用了10个月,自11月份以来,scktsrvr.exe就频繁的出现占用CPU资源100%的现象。病毒杀过、端口也查过,系统日志也没记录什么值得注意的地方,现在这种现象越来越频繁,头都大了。唯一的杀手锏是重装系统,现在还舍不得用上。系统简述:系统是用D6开发的,中间层和数据库都装在服务器上。服务器Socket连接平时有15个左右,峰值在30个,其中9个为地磅客户端,与地磅相连,分布在1平方公里周围,其他客户端在办公大楼,有商务部(采购、销售)、财务部、质检部和一些领导等。系统从2006年1月份开始运行,运行比较稳定,一般1个月或2个月重启一次服务器。出现这种情况有时候是在凌晨,系统负担最小的情况下发生的,此时Socket连接数一般不会超过6个。已经设置Thread Cache Size =25,Inactive Timeout=30(现在设为300)。刚刚找了个D7的ScktSrvr换上,看看效果。有碰到此问题的人或者高手进来聊聊,顶者有分。

解决方案 »

  1.   

    Inactive Timeout 的时间不能修改太大了,30已经可以了,像你设成300,是5个小时,没必要,
    另外一种情况看看防病毒软件的监控端口,默认的 SOCKET的端口是211,如果防病毒软件强行对
    211端口进行检查监控,就会出现占用问题,修改一下防病毒软件的设置或许能解决问题。
      

  2.   

    Inactive Timeout 设为300确实有点长。防病毒软件以前是诺顿8,在10月份安装了诺顿10(不知道有没有关系),12月份又卸除了,现在是卡巴斯基。刚刚看了扫描端口,没有包含211端口。
      

  3.   

    如果你是装的SQL SRVER可能打开事件查看器,当CPU执行到100%时,可以知道应用服务器在干什么呢,也午许找到些线索。
      

  4.   

    数据库是Sql Server,在事件查看器里查不到什么异常,当CPU资源利用率在100%时,scktsrvr.exe占了CPU资源的90%以上,一直不会退下来,最终导致客户端不能连接。
      

  5.   

    我也是D6,SocketConnection,上了五个用户,但每个用户连接数一般在10个左右,最早的已经运行3年,没发现类似的问题,多检查一下网络看看。
      

  6.   

    卡巴斯基好像对网络管得很严o, scktsrvr 是阻塞 socket, 最多可能资源 out, 也不会占用 100% cpu 呵, 我这里运行 300-500个客户端也没这样改个端口什么的看看
      

  7.   

    这套系统已经稳定的使用了10个月了,只是最近出现了这种状况。
    客户端大概有30多个,但每个客户端的Socket连接数一般只有一个,其他模块共用主程序的Socket连接;所以服务器的连接数的峰值大概也就是30个左右。莫明其妙的错误最是头大,希望使用D7 的SocketServer能平安的度过这个星期的考验,祈祷ing~~~~~~~
      

  8.   

    建议你把程序改成 WebConnection
    不过客户端需要重新发布。SocketServer 口碑不太好,borland 也说他的性能一般。
      

  9.   

    系统已经在使用了,而且实时性很强~~~~~~~~~~~
    D7 的 Scktsrvr 也不行了,咳,才刚刚祈祷~~~~~~~~
      

  10.   

    SocketServer做服务确实有点勉强,D6中有源码你可以看看,修改一下,我的就这样改过。
    不过现在我用的D2006中的,感觉还不错,你要的话留下油箱。
      

  11.   

    xxmmmx(踢踏) :
    东西已发给你了,用用说说情况。
      

  12.   

    我把服务端和Scktsrvr 集成到一起,这样就方便发现问题
    还省得单独发布一个Scktsrvr.exe
      

  13.   

    我把 Timeout 都设为 0 的.
      

  14.   

    TO : xiaochensu(拒绝水的鱼)我也想要一份D2006中的SCKSRVR
    [email protected]
      

  15.   

    定时将socket server的主窗体最小化,就可以释放资源了。