Hi Shyam,

You can synchronise the whole transaction with the 2 updates.That will take
care of 1 of the issues.The other issue might be cyclic i.e are you updating
table C first and then updating table A or B somewhere in your
application.You will then have to make the updates in the same order i.e
always update A first before C.This issue is a wild guess of mine-so I might
be way off base here depending on row level locking etc.

Vijay

-----Original Message-----
From: Shyam A [mailto:[EMAIL PROTECTED]
Sent: Monday, March 08, 2004 6:36 PM
To: Struts Users Mailing List
Subject: Re: [OT] Database locking and deadlock


Vic,

Yes, I do get a "deadly embrace" or deadlock, as the
row locks on the table multiply when they occur,
holding up connections in the connection pool,
eventually consuming all connections, and then all
hell breaks loose.

Were you referring to synchronizing with semaphores?

I read somewhere that the Oracle database is supposed
to handle deadlocks by rolling back one of the
affected transactions. But the row locks seem to occur
intermittently, possibly when there are large numbers
of concurrent users.

I cannot avoid the transaction as the database updates
have to be done as one unit. An alternative that comes
to mind is using a stored procedure for the update
operations. Anyway, I need to do some research on
passing Java objects to stored procedures.

Thanks,
Shyam



--- Vic Cekvenich <[EMAIL PROTECTED]> wrote:
> Do you have a deadly embrace?
> Maybe just syncronise w/ semaphorse or the like.
> .V
> 
> Shyam A wrote:
> > Vic,
> > 
> > Thanks again. I'm not in a position to switch to
> > IBatis as my application is currently in use.
> Right
> > now, I'm manually killing the user sessions which
> lock
> > up the table in the database. My database is
> Oracle
> > 9i, and this problem seems to occur only with
> large
> > numbers of concurrent users. In my DAO,I update
> three
> > tables as part of a transaction - table A and/or
> table
> > B (in loops), and table C. Commit operation is
> done
> > only after all tables are updated successfully.
> So, it
> > may be possible that the DBMS locks up rows of
> table A
> > or B (before commit) and waits until it updates
> table
> > C for the commit. Is this the cause of the
> problem?
> > 
> > I've not been able to determine (using SQl Plus,
> TOAD
> > ) which query is causing the row-level lock.
> > 
> > Any ideas?
> > 
> > Thanks,
> > Shyam
> > 
> > --- Vic Cekvenich <[EMAIL PROTECTED]>
> wrote:
> > 
> >>Is there a way you can reproduce this w/ iSQL
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 


__________________________________
Do you Yahoo!?
Yahoo! Search - Find what you're looking for faster
http://search.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to