程序24小时运行n天后,软件系统失灵!死机状态...重启后正常!
//我的程序中用了两个timer 400/1000微秒 ,
//启动时创建大约12个窗体。
哪位大虾 能够详细的说一下,程序中编码不当会引起死机的情况??常见问题!小弟十万火急!分可以在加!来这有分!

解决方案 »

  1.   

    你动态创建对象了么?释放了没有?
    用boundchecker查看一下
      

  2.   

    if 程序运行时间 >= 0.99*n天 then
      重新启动
      

  3.   

    你动态创建对象了么?释放了没有?
    可能有占用内存没有释放的东东。
    用boundchecker查看一下
      

  4.   

    我用的是 sql server2000 
    dcom连接方式;
      

  5.   

    1、在断掉与sql server2000 的连接后,sql server2000并不释放原来所占内存。看一下现在sql server2000是否还存在这个问题。
    2、没有及时释放内存。
    3、查阅Delphi的FAQ,看是否有这方面的内容。
      

  6.   

    一定是没释放的内存,创建的对像每完成一次后一定要free掉才行
      

  7.   

    我没有动态创建,只是程序creat时自己创建的各个窗体,用过了也要释放吗?〉
    我的程序中:(1)如果com口有信息发过来,系统则查找信息,同时弹出一个窗体显示信息。//每天都可能重复(1)很多此,是不是这个显示的窗体没有释放掉!每次showmodal时都另外占用系统资源呢?纳位大虾回复一下
      

  8.   

    如果你没有收到消息后创建窗体就不需要释放了。
    看看还有什么地方用了请求内存的。如GETMEM没有释放
      

  9.   

    你的SQL服务器死了还是客户机死了
    sql的内存可以通过限制内存使用量来释放的,即使不释放也不会导致死机了。
      

  10.   

    还有你的DCOM的线程模式是什么,另外接口释放没有。
      

  11.   

    我遇到同样的问题:一个 TIMER  组件,设置24小时工作一次,他没有工作;
    设置2小时工做一次,他能工作,是不是
      

  12.   

    我遇到同样的问题:一个 TIMER  组件,设置24小时工作一次,他没有工作;
    设置2小时工做一次,他能工作,后来只好用别的判断方式才可以,不知道是不是TIMER  的时间设置太长了,有问题
      

  13.   

    一看题目就知道你是应该释放的没有释放,DataSet应该Close的没有Close之类的问题。----------------
    沉沦中..........
      

  14.   

    (1)fmwait事件中 收到信息后打开fmprint窗体。
    if recevietxt then
    begin
      Application.CreateForm(Tfmprint, fmprint);
      fmprint.show;
      fmprint.Edtre.Text:=edtdata.Text;
    end;
    (2)fmprint 事件中
      查询数据再窗体中显示出来
      处理完成后关闭fmprint窗体。
     fmprint.close事件中
        begin
        //==========================
          dm.ddlistzhs.close ;
        //==========================
          dm.temp.Close;
          dm.clpr.Close;
          dm.ClientDataSet3.Close;
         //action:=cafree; //用它?
         self.Release;     //用它?
         还是用其它的方法?请指教。
      end
      

  15.   

    finally
          dm.ddlistzhs.close ;
          dm.ddlistyy.close ;
          dm.temp.Close;
          dm.clpr.Close;
          dm.ClientDataSet3.Close;
          dm.ClientDataSet2.Close;
          fmprint.Free;
          fmprint:=nil;
    end;//fmprint窗体打开后查询数据再插入导数据库记录下
      

  16.   

    (2003-06-10 13:46:31)   雨叶风铃
    // 我在fmwait的timer事件中没40000触发一次 运行下述“代码”
    TRY
        fmprint := Tfmprint.Create(application);
        fmprint.show;
        fmprint.Edtre.Text:=edtdata.Text;
    finally
          dm.ddlistzhs.close ;
          dm.ddlistyy.close ;
          dm.temp.Close;
          dm.clpr.Close;
          dm.ClientDataSet3.Close;
          dm.ClientDataSet2.Close;
          fmprint.Free;
          fmprint:=nil;
    end;//fmprint窗体打开后查询数据再插入导数据库记录下来 后 处理完成 自动关闭。