you might want to consider using a stored procedure to make it look
like a single call from tomcat. is the goal here to make sure the
counter is incremented correctly? I'm guessing there's situations
where the counter shouldn't be incremented?

you can also use a subquery to increment the counter. there's plenty
of articles on how to do this the simple way. I hope that helps

peter



On Thu, 30 Sep 2004 10:43:22 -0400, Malia Noori
<[EMAIL PROTECTED]> wrote:
> Actually, the data that I am modifying requires a transaction and
> synchronization.  It increments a counter stored in the database.  So, I
> have to do a select to get the current value, increment the counter, and
> then insert the new value.  So if two threads are accessing it at the same
> time, the counter will not be properly incremented.  What's puzzling is that
> method level synchronization does not work while synchronizing on a block of
> code inside a method works.
> 
> Thanks,
> Malia
> 
> 
> 
> -----Original Message-----
> From: Peter Lin [mailto:[EMAIL PROTECTED]
> Sent: Thursday, September 30, 2004 10:26 AM
> To: Tomcat Users List; [EMAIL PROTECTED]
> Subject: Re: method level synchronization doesn't work
> 
> am I missing something, but looks like you're trying to build some
> kind of web cache. why not use Hibernate or something that already
> does caching for you instead?
> 
> the only time I can see a need to sync, is if the request contains
> data that requires a transaction. Which in that case, you're better
> off doing an insert, then a second select query with the same
> connection.
> 
> or is the scenario a distributed objects setup?
> 
> peter
> 
> On Thu, 30 Sep 2004 10:05:41 -0400, Malia Noori
> <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I am using Tomcat 4.1 and I am accessing MS SQL Server database via JDBC.
> I
> > have a JSP that calls a web bean.  This web bean has a section of code
> that
> > I want to synchronize, but when I synchronize the method, Tomcat doesn't
> > actually synchronize the threads.  (I tried this by having 2 users access
> my
> > JSP at the same time).  When I synchronize the code in the method by using
> a
> > mutex, it works.
> >
> > So, doing this doesn't work:
> >
> > public synchronized void amethod()
> >
> > {
> >
> >  //some code that access the database and needs to be synchronized
> >
> > }
> >
> > But doing this works:
> >
> > public void amethod()
> >
> > {
> >
> > String mutex = "";
> >
> > synchronize(mutex)
> >
> > {
> >
> >  //some code that access the database and needs to be synchronized
> >
> > }
> >
> > }
> >
> > Why does synchronization on the method doesn't work?  Does Tomcat not
> allow
> > locking of object caused by method level synchronization?  Any help will
> be
> > appreciated.
> >
> > Thanks,
> >
> > Malia
> >
> >
> 
> ---------------------------------------------------------------------
> 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]
> 
>

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

Reply via email to