Page 1 of 1

orasession detecting killed session

Posted: Thu 14 Sep 2006 16:04
by bjk002
A quick question for you ODAC/Oracle gurus...

ODAC 5.8 component suite, Delphi 7.0, TOraSession, Oracle 8i...

I want to be able to detect if a session was killed (at the oracle server), but cannot seem to find a way without attempting a query, etc...

Sequence of events is:

1. Connect session to DB
2. Query "Connected" property = TRUE //good
3. Kill session at oracle server
4. Query "Connected" property = TRUE //BAD

Problem:

If you query the "Connected" property after killing a session on the oracle server, the "Connected" property still reports TRUE. (OCISvcCtx also seems to think it still has a valid handle at this point).

Question:

Is there some way to detect (other than attempting to run a query and handling exception) when a session associated with component has been killed?

2nd Question:

Why would this be the default behaviour of the "Connected" property? I cannot think of a good reason (granted, I'm no guru) that on querying this property that it shouldn't make a call back to the session to validate it status?

Posted: Fri 15 Sep 2006 10:26
by Plash
There is no way to detect that a session was killed except attempting to execute some query.
ODAC does not execute any query to database when reading TOraSession.Connected property because such behaviour is optimal for most users.