关于用CRecordSet 派生类 访问数据库 造成的问题为了方便,在服务程序里增加了日志,这是出现问题时,最后时刻写的日志。10:28: 4 : 一般性网络错误。请检查网络文档。已将语言设置改为 简体中文。ConnectionRead (recv()).已将数据库上下文改为 DB_DATA。10:28: 4 : 一般性网络错误。请检查网络文档。ConnectionRead (recv()).10:28: 4 : 对话失败还是以前的一个服务程序,要大量访问数据库MS SQL SERVER 2000  背景:1、用的是专业的服务器。配置不错。2、MS SQL SERVER  2000 已经打了补丁SP43、网络肯定是通的,端口都是没有问题的,因为程序运行的某个时间,才会出现,也许一天出现一次,也许几天  出现一次。===================================================================================================造成这样的问题,到底有哪些?请高人,指定迷津,或者有相同境遇的XDJM,有没有好的解决办法
==============================
另外一个问题:
我想请教下各位,如果服务程序要大量的访问数据库,应该或者最好或者建议,用什么样的技术来做。不知道,在服务程序上,用CRecordSet派生类做,容易出哪些问题==========================================================因为这个问题,我发过几次。所以,那些:
先ping IP ,端口,补丁,等等等 一些个方法根本在我这个程序里 是无力的期待强者

解决方案 »

  1.   

    1、确认网络没有问题,网线等硬件接触良好,尤其有没有防火墙之类阻拦。
    2、同一台服务器和sql server之间的连接一直没有close,每次新连接导致连接达到被允许的最大数目,从而被全部关闭。可以试试失败后多次重复;
      

  2.   


    第一、日志不是自定义滴,是通过CATCHE(CDBException e)来获取的e.m_strError打印出来的
    第二、如果知道在哪个具体的语句上出了问题 ,还用的着来在这里发帖吗?
    第三、另外,什么时候发生这个问题这个现象,是无法预测的,根本不知道,它什么时候      出现,也许几天没问题第四、更没用到事务。就是CRecordSet派生类的,Open,Close,然后就是针对一些表       进行inset 、Update、delete 操作---------------------------------------------------------------------另外我贴得日志,详细的是因为Update 某个表的记录 在服务程序挂了后,所产生的最后一条记录。也许这次是这个表的更新,那下次 就有可能是另外一个表的删除记录所以实在是没法确定 是具体哪个语句导致的
    -------------------------------但,您说的另外,大量访问数据库的数据,你是不是用到了事务处理,是不是用到了独占访问,最大连接数是多少,是不是在瞬间超过了最大连接数,然后又降下来了.这个我觉得有这个可能。但是说回来,每次连接后,都close了应该不会产生多余的连接,导致越来越多,最后超过了最大连接数
      

  3.   

    您说的1、那是不可能出现问题的2、您说的这点,具体情况是,服务器同SQL SERVER 部署在同一台机器上。、   您说的:每次新连接导致连接达到被允许的最大数目,从而被全部关闭。您能不能详细的仔细的讲解下。尤其是:连接这个概念。如果用CRecordSet派生类,每次Open后,然后Close() 能不能真正关闭连接但是,我反复检查程序,都没有发现,Open后 没有Close的=========================================================
      

  4.   


    不好找用户要这些有个问题,请教下大侠为什么在企业管理器中,当前活动------进程信息,里面有很多sleeping的进程这个正常吗?网上很多人都说,属于正常,但都没有给出有说服力的东东来