Jonathon, This produces ITL waits for sessions Y and Z; but this is not deadlock. The deadlock occurs due to a situation where the Session 1 waits for something to finish in Session 2, which in turn waits for Session 1 AND, this is important, Oracle detects it and kills one of them, rolling back the changes, making a deadlock detected error. Is this not the true error message that occured in the original thread?
In your example, sessions Y and Z will wait indefinitely until X commits or rolls back. This is not going to be detected by Oracle nor killed by it. So you wouldn't see a message DEADLOCK DETECTED in alert log. Therefore setting INITRANS higher is not going to help at all. Rather the application logic should be checked to remove a real locking conflict. Am I correct, or am I missing something here? Arup Nanda <Original Post> Hi I have been noticing some times following error with one table during update. DEADLOCK DETECTED Current SQL statement for this session: "The following deadlock is not an ORACLE error. It is a deadlock due to user error in the design of an application or from issuing incorrect ad-hoc SQL. The following information may aid in determining the deadlock:" Is chaning of INITTRANS would help ? Thx -Seema </Original Post> ----- Original Message ----- To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]> Sent: Friday, December 20, 2002 12:10 PM > > Set maxtrans to 2 on a table. > Insert three rows into the same block > and commit. > > Use three sessions to update one row > each. The third transaction has to wait > for one of the other two transactions to > commit, as there are insufficient ITL > (interested transaction list) entries for > three concurrent transactions on the same > block. > > Now repeat the experiment with: > rows A1, B1, C1 in block 1 > rows A2, B2, C2 in block 2. > > Session X updates row A1 and A2, > Session Y updates row B1 > Session Z updates row C2 > Session Y tries to update row B2 > and waits because the ITL is full > Session Z tries to update row C1 > and waits because the ITL is full > > With a little luck, Y will be waiting for Z > and Z will be waiting for Y (i.e. DEADLOCK) > but you may have to fiddle with a more complex > example, as both X and Y might end up waiting > for A. > > > It's easier to do this in 8.1 because MAXTRANS > can be set to 1, so you need only use two > sessions and two rows per block. > > > > Regards > > Jonathan Lewis > http://www.jlcomp.demon.co.uk > > Coming soon a new one-day tutorial: > Cost Based Optimisation > (see http://www.jlcomp.demon.co.uk/tutorial.html ) > > Next Seminar dates: > (see http://www.jlcomp.demon.co.uk/seminar.html ) > > ____England______January 21/23 > > > The Co-operative Oracle Users' FAQ > http://www.jlcomp.demon.co.uk/faq/ind_faq.html > > > > > > -----Original Message----- > To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> > Date: 20 December 2002 16:56 > > > >Jonathan, > > What do you mean by ITL starvation? And how would it result in a > >deadlock? > > > >Dan Fink > > > > > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: Jonathan Lewis > INET: [EMAIL PROTECTED] > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > San Diego, California -- Mailing list and web hosting services > --------------------------------------------------------------------- > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). > -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Arup Nanda INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).