我在windows下写了一个mysql数据库接口给外部应用使用,功能正常,但是当应用程序执行一段时间后,会死在LibMySQL.dll中,由于没有它的源码,所以毫无办法。通过走读代码,觉得一切正常,没有会引起死机的地方。我在外部应用程序中定义的数据库接口对象为全局变量,并且在数据库接口中会自动隔段时间调用mysql_ping()函数。
请高手帮忙!谢谢!

解决方案 »

  1.   

    设个临界区,严格每次只有一个进程来调用这个mysql接口,再跑一段时间试试。“并且在数据库接口中会自动隔段时间调用mysql_ping()函数”,这只是接口内部保持与数据库的连接,我觉得与外部调用应该无关。不过也可以试试把mysql的配置文件改成连接保持时间很长,然后去掉这个mysql_ping()函数,再跑的试试。
      

  2.   

    现在就是只有一个进程调用该数据库接口,我把数据库接口申明为全局变量了.
    mysql_ping()函数不调用了,但还是死机,大概运行了30分钟左右.
    其实数据库接口实现很简单,就是读几个表,执行下select语句.
      

  3.   

    换个机器也会出现这个问题,报的错是_CRTIsValidHeapPoint(pUserPoint),dbgheap.c的第1432行出错。
    并不是做完数据库操作后出错,而是运行过1个小时多后才出错,所以我怀疑跟程序其它地方有关,因为当我把网络接口去掉后,就不会出错,可是问题是:是网络的哪个地方导致出错了呢?很郁闷。