Client hangup in Oracle because of Network Connection loss (WINDOWS NT 4.0)

From: veena <veena_savant_at_i2.com>
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

Original text of this message