有个问题请教大家用ADO访问Oracle库
一个应用中对同一个库有5个连接,其中一个连接在几个小时没有使用后,再次使用其读库时,出现了如下错误信息
IDispatch error #3092
ORA-03114: 未连接到 ORALCE
其它几个连接由于使用较频繁,没有出现这种异常出现这种错误时,m_pConnection->GetState()仍然返回的不是adStateClosed请问怎样能在连接断开的情况下正确的检测其状态我试过用m_pConnection->GetErrors(),我以为只要这个函数返回的不是0就说明有错误,但后来发现在连接正常的情况下
它也是会返回1,GetDescription()后得到的结果竟然是“没有更多的结果”谢谢!!

解决方案 »

  1.   

    这个问题有两种解决方式:
    1. select profile from dba_users where username=<你用的用户名>
    再看看
    select * from dba_profile where profile=<查出来的profile>
    看看IDLE_TIME的值是多少,是不是几个小时。(以分钟为单位)
    把这个值改成一个更大的值或者unlimited2. 不用查看系统,
    在你的应用中,加一个探测线程,这个线程,每隔(比如10分钟),轮询一次每个连接,作一次:
    select 1 from dual的查询操作,这样可以确保每个连接都是常期有效的。