估计是连接的问题还有一种可能是你的服务端的配置,如果你的用COM+的话,注意它的运行方式

解决方案 »

  1.   

    线程模式,实例模式,com/dcom连接/权限设置
    感觉好像你的连接时在排队
    建议看李维的<<系统篇>>
      

  2.   

    用toad等工具看看数据库的锁的情况,看看哪个模块的哪个程序可能潜在有问题
      

  3.   

    to  lizsss(Coder)
    ApartMent线程模型,MultiInstance实例模式
    sockect连接,默认端口
    按理来说这样不会是排队的,其实在正常时他们也的确不是排队的
    在出现这种情况的时候,是新的客户端无法连接上,已连接上的却能继续使用
    我怀疑是某个线程阻塞了才导致的,可是什么样的处理会导致线程阻塞了?
    大数据量的查询?还是....
    我的一些remote datamodule往主窗口postMessage,消息的处理比较繁琐,有关系吗?
      

  4.   

    为什么大家认为不需要排队,我却认为排队好些
    请看看
        《《 多客户端同时调用com+方法时的耗时〉〉
    那是我的问题,希望对你或者对我有帮助
      

  5.   

    如果中间层和数据库不在同一台机器上,可能会好一些吧?ORACLE本身线程多,SOCKET、中间层又开了好多线程可能和这个有点关系。
      

  6.   

    我想到的是这样:客户端的连接都没有归还,至于为什么不能配置(生成)新的连接,我也不能解释,
    解决办法:
    你是否应该模拟一个连接池?在客户端不访问数据的时候,把连接放回池中,需要连接的再取出一个,分配给他?(注意.不要在中间层维护客户端状态)
    另外,参看一下李维的<<系统片>>关于com/dcom配置的论述,我很为你的程序担心,不要在关键部件中使用com/dcom,尝试一下corba!你会感觉好些...
      

  7.   

    你好,我也深受此苦,但与你略有不同。我是SQL2000+D6+ADO+SOCKETCONNECTION,用着用着,所有客户端程序全死了,但操作系统正常,服务器端其他正常只有应用程序服务器无反应,有时会有“连接战线导致另外一个命令”,关掉它后马上一个新的应用程序服务器就被激活。都有上吊的想法,同病相怜。作个程序员混口饭吃不容易,望大家不吝赐教!!!看来三层结构有其先天不足。不过世界如此,问题永远比答案多!!!!