Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Orphaned Row Locks
Thomas Kyte wrote:
>
> A copy of this was sent to Denny Koovakattu <denny_vk_at_my-dejanews.com>
> (if that email address didn't require changing)
> On Fri, 12 Mar 1999 17:07:07 GMT, you wrote:
>
> >Thomas,
> >
> >Dead connection detection will work if the client ( assuming it's a PC running
> >Windows ) shuts off the machine. If only the session is terminated abnormally
> >and Windows is still running, I believe it doesn't work. Is this a bug or a
> >problem with any specific version of sqlnet ? I can't check it now as I had
> >this problem at my previous job.
> >
>
> unless the tcp/ip stack isn't working correctly -- when we write a packet to the
> client and the client isn't there and the socket is gone, we would get a write
> error. If the tcp socket is still there but the client is gone -- it would not
> get an error.
>
> If windows is keeping the socket active and alive after the client that opened
> it is gone, there is not much we can do to detect that the client is 'gone'.
> Perhaps the .dlls of your application stayed loaded after the GPF or whatnot.
>
> >Denny
> >
> >In article <36f93721.34768724_at_192.86.155.100>,
> > tkyte_at_us.oracle.com wrote:
> >> A copy of this was sent to clifford_at_bang.com (Clifford)
> >> (if that email address didn't require changing)
> >> On Thu, 11 Mar 1999 15:42:14 GMT, you wrote:
> >>
> >> >Oracle Version : 7.3
> >> >I have an app that locks rows for updating. Now when this app crashes
> >> >(NT) these locks are still held by oracle so that no-one can update
> >> >said rows until the instances are killed via v$session/Instance
> >> >manager.
> >> >
> >> >How do i ensure that the row locks are released when the app crashes.
> >> >
> >> >Thanks :-)
> >> >
> >> >Cliff
> >> >Which is more important :
> >> >The Country or it's populace?
> >>
> >> have you looked into dead client detection with sqlnet?
> >>
> >> <quote>
> >> Timer Initiated Disconnect or Dead Connection Detection (SQL*Net
> >> release 2.1 and later only).
> >>
> >> Dead connection detection is a feature that
> >> allows SQL*Net to identify connections that have been left hanging by
> >> the abnormal termination of a client. On a connection with Dead
> >> Connection Detection enabled, a small probe packet is sent from server
> >> to client at a user–defined interval (usually several minutes). If the
> >> connection is invalid (usually due to the client process or machine being
> >> unreachable), the connection will be closed when an error is generated
> >> by the send operation, and the server process will exit.
> >> </quote>
> >>
> >> Thomas Kyte
> >> tkyte_at_us.oracle.com
> >> Oracle Service Industries
> >> Reston, VA USA
> >>
> >> --
> >> http://govt.us.oracle.com/ -- downloadable utilities
> >>
> >> ----------------------------------------------------------------------------
> >> Opinions are mine and do not necessarily reflect those of Oracle Corporation
> >>
> >
> >-----------== Posted via Deja News, The Discussion Network ==----------
> >http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
>
>
> Thomas Kyte
> tkyte_at_us.oracle.com
> Oracle Service Industries
> Reston, VA USA
>
> --
> http://govt.us.oracle.com/ -- downloadable utilities
>
> ----------------------------------------------------------------------------
> Opinions are mine and do not necessarily reflect those of Oracle Corporation
We have observed similar behaviour...
If an end-user on a PC takes locks and then bombs out in some way (say Ctrl-Alt-Del) then unless they actually leave their machine switched off (or at least un-ping-able) for 5 mins or so (our dead-connect-time is 5mins) then the locks remain...
--