三层,不到30个客户端(win9x),六七个中间服务在同一台服务器上做为NT服务运行DCOM+ADO模式问题,客户端有时会突然死掉,比如正要打开一个库存模块的界面,死掉了
然后整个客户端程序就死掉了,结束任务,再运行客户端,再点那个库存模块的界面,仍死掉,...一直如此不得已,把库存的服务重启(状态显示它还是运行中)客户端再运行进去点库存就可以了一天会出现六七次左右

解决方案 »

  1.   

    我曾经作过做为NT服务的中间层,也是同样的情况。
    主要是事务冲突了。
    可以把DCOM注册为共享式的
      

  2.   

    我曾经作过做为NT服务的中间层,也是同样的情况。
    主要是事务冲突了。
    可以把DCOM注册为共享式的
      

  3.   

    在处理数据库操作时候,抓一下异常,在处理异常代码里面将Adoconnection关闭一下.
      

  4.   

    我遇过这样的问题
    建议使用win2K,并打开pack
    再仔细看看程序上操作数据库,有没有问题!
      

  5.   

    但最好不要编译成DLL,还是用exe吧,试试看!!!
      

  6.   

    心小志大:
      感谢感谢,总是个办法。在哪里注册共享啊?悠游在线:
      装不了2K啊,工厂里都是32M内存的机子,这个...做不到。海天子:
      是写得比较失败,都第一次写,没有高人指点。是EXE的。
      

  7.   

    很典型的问题,
    编写这样服务程序关键两点
    1,抓异常,释放资源;
    2,记录日志.大致是这样..
       try
         ...(数据库处理代码)...
       except on e:exception do
       begin   
         Adoconnection.close;//必须这样才能释放资源,以备下次正常使用.
         WriteLog(e.Message)//writelog 是自定义一个记录日志信息的函数..
       end
      

  8.   

    哈欠:    我们现在中间层就是一些数据集组件,更新都用前台applyUPDATE,在中间层不作其它处理。
        所以(数据库处理代码)根本就没有。
      

  9.   

    我用SocketConnection,程序运行了两年多,没听过客户投诉会死机的。非常稳定。用DCOM时经常会出问题.建议你用SocketConnection方式.
      

  10.   

    楼上
    DCOM真的这么弱吗,看来我走错一步啊