Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Thread Time Out (ORA-2049)
"KK via OracleMonster.com" <forum_at_OracleMonster.com> wrote:
> >>Which Transaction? No changes have been made in the case of row not
> >>found, according to your description.
>
> No changes are made, i.e. no row is inserted in Table B, when no row is
> found in Table A. I have simplified the situation a little bit. Since
> there are other things going on in the process, we set the Transaction
> to roll back, if an exception is thrown in any part of the process.
Since there are other things going on, how do you know it is not these other things which are the root cause of the problem you are seeing? Create an artificial X and Y which don't have anything else going on, and see if they still have the problem.
>
> >>Which indicates that the row is locked. 2 things have probably already
> >>gone wrong here ;
> >>1) Process (x) has locked the row in table A. Not necessary. It's a
> >>simple read.
> >>2)After having unnecessarily locked the row, process (x) does not
> >>release the lock, though you state that (X) rolls back. Ensure that it
> >>does release the lock, e.g. issu a "rollback" explicitly in your code.
>
> And this is the puzzling piece. We are using 'committed read' for our
> locking policy, and moreover, the first transaction has already been
> rolled back. We explicitly issue a 'roll back' in our code. When we trace
> the functionality from the application level, the first process (A) has
> rolled back and completed before the next one comes in.
So, what part of all this is the distributed part? Are tables A and B in the same database? Are sessions X and Y connected to the same database?
Xho
-- -------------------- http://NewsReader.Com/ -------------------- Usenet Newsgroup Service $9.95/Month 30GBReceived on Thu Jan 06 2005 - 16:54:16 CST