Client hangup in Oracle because of Network Connection loss (WINDOWS NT 4.0)
Date: 29 May 2001 03:50:36 -0700
Message-ID: <eea6cf67.0105290250.69efe120_at_posting.google.com>
The client written in C++ and the Oracle DB server (8.1.6) are both running on a WINDOWS NT machine.
WE are using the Oracle C++ objects for OLE, OO4O class library
(oo4o816313) to interact with the ORACLE DB server (8.1.6) .The client
code is written in C++.
The code is built to recover from any loss of n/w connection while it
is
executing. A sample of the code is being shown below
ODynaset dyn;
ODatabaseDb(Uname,pwd,...);
Db.ServerErrorReset();
dyn.Open(Db, searchFilterSql,ODYNASET_READONLY ||DYNASET_NOCACHE);
errNo =theRequest->mDb.ServerErrorNumber();
if (errNo)
{
Db.GetSession().Rollback();
throw err;
}
Where SearchFilterSql is aComplicated select query which takes 3-4
seconds to
execute.
Now if the n/wconnection is taken off before the Dyn.open call is
executed,
the call gives anerror code which is trapped and a Rollback is done.
However if the n/wconnection is removed whilst the query is being
executed,
the call HANGS. The control does not return to the next programmatic
statement
and the thread just hangs. We have waited close to 10 minutes before
forcibly
stopping theexecution of the program.
WE also set the KeepAliveTime= 1 second in the
"SYSTEM/CurrentControlSet/TCPIP/Parameters" section of the WINDOWS NT
registry, but to no avail.
This has not helped.
Can anyone help ? Received on Tue May 29 2001 - 12:50:36 CEST