B数据库设了空闲30分钟自动断开用户的功能,A数据库建了B数据库的dblinkb  使用如sqlplus作select count(*) from all_objects@dblinkb  访问了B后,不再动作,30分钟后,再执行 select count(*)  from all_objects@blinkb 按道理应该很快提示数据库链接已经断开的提示,但是,实际操作中sqlplus就死在那里,要等十来分钟才能返回这个提示,请问,可能是什么原因造成这么长时间才返回错误,挺耽误时间的。多谢

解决方案 »

  1.   

    按道理应该很快提示数据库链接已经断开的提示?
    按什么道理?说不定ORACLE就是响应这种情况的呢。但是我也觉得十分钟是长了点,没遇到你这种情况,帮你顶一下
      

  2.   

    我觉得这就是连接驱动的问题,我遇到过类似的情况,不过我是用odbc程序里面连接的,当由服务器端断开了客户端的连接时,客户端并不知道,还以为可以继续操作,但由于驱动没有及时返回错误,就一直等着超时,造成客户端堵塞。
      

  3.   

    刚才又查了一下,B库版本
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    PL/SQL Release 9.2.0.6.0 - Production
    CORE    9.2.0.6.0       Production
    TNS for HPUX: Version 9.2.0.6.0 - Production
    NLSRTL Version 9.2.0.6.0 - Production
    A库版本
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
    PL/SQL Release 9.2.0.4.0 - Production
    CORE    9.2.0.3.0       Production
    TNS for Linux: Version 9.2.0.4.0 - Production
    NLSRTL Version 9.2.0.4.0 - ProductionA库我换成测试的数据库版本如下
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    就正常了(5秒左右断开)请问是否版本问题,要怎么处理,谢谢