采用WebConnection的连接方式
始终出现客户端连接后(调用服务器端接口)
服务器进程不能正常关闭,服务器资源不断上升
且数据库连接始终不能正常断开
(如用SocketConnection或DCOMConnection连接则一切正常)!我通过跟踪"资源管理器"数据分析得知:socketconnection和webconnection都是采用显示调用的形式,即客户端有连接请求的时候,服务器端会自动创建一个进程实例,请求完成后该实例自动释放,数据库连接也自动断开,而在webconnection连接的时候,服务器端只创建一个实例,当客户端有请求连接时,只是在该实例中开启了一个线程,同时也新增了一个数据库连接,当请求完成后,该线程并不会自动释放,也不会中断数据库连接,最后就导致了中间层服务器占用大量资源,数据库连接数狂增的情况!遇到过类似问题的各位大虾能不能帮忙分析一下应该怎么解决?

解决方案 »

  1.   

    我也遇到过这中情况,不过我是在用INDY的IDTCPSERVER控件写多线程的通信时遇到的。每次有客户端连接IDTCPSERVER都会产生一个服务线程去接受服务请求,我在线程的代码中为每个线程创建了单独的ADOQUERY和ADOCONNECTON。但是最后发现线程执行完毕后这些连接却释放不了,导致数据库连接数暴长。最后结果是超过了最大连接数,导致连不上数据库。到现在也没有找到合适的解决方法。