写了一个简单的WebService,包含三个方法:InitConnect、SelectData、DisposeConnect,分别用于和MySql数据库之间的打开连接、查找数据和释放连接。另有一个客户端调用这些方法。
测试时出现了一个很奇怪的现象:客户端首先调用WebService里的InitConnect方法,和MySql数据库建立链接,之后调用SelectData可以正常查找数据;但是如果在之后的20分钟左右什么都不做,再调SelectData,则会报连接已关闭的异常,但我却从未显示调用过DisposeConnect。
另做过一个测试,即剥离客户端与数据库之间的WebService层,就不会出现上面的问题了。
请教各位熟知MySql和WebService的大侠,这究竟是怎么回事?难道正常的连接就没事,WebService建立的连接就不定期断开吗?

解决方案 »

  1.   

    检查你的MYSQL中的参数配置。
    interactive_timeout 
    wait_timeout这两个参数。
      

  2.   

    将interactive_timeout  
    wait_timeout两个参数调大些即可。
      

  3.   

    楼上两位大侠,可是,小弟事先还做过一个“剥离WebService层”的实现,即直接用Client去连接MySql数据库,没有出现如上的问题。
    两位大侠所指的情况应该是MySql 8小时自动回收连接的情况吧?小弟做的实验,连接时间远远不到8小时,链接就自动断开了。这个是不是因为WebService导致的啊?
      

  4.   

    Web服务器资源回收所致,鉴定完毕!