Re: How do handle concurrent DML operations - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: How do handle concurrent DML operations
Date
Msg-id 1082997539.13948.130.camel@localhost.localdomain
Whole thread Raw
In response to Re: How do handle concurrent DML operations  (kenchen077@yahoo.com (kenchen077))
List pgsql-jdbc
You should very seriously read and understand the following

http://www.postgresql.org/docs/7.4/interactive/mvcc.html


On Wed, 2004-04-21 at 12:35, kenchen077 wrote:
> if user1 set Resultset rs to ResultSet.TYPE_SCROLL_SENSITIVE and using
> refreshRow() in rs. The rs might show the updated record within this
> rs updated by user2.

If this is inside a transaction and you will not see the other
transactions commits, even if you do a refresh row, see above
documentation.

Dave
>
>    The pessimistic locking seems a good method. How can I do it by
> programming or set up something in DBMS ? Could you please advise me?
> I need to set up row lock to prevent 2 users update same record
> concurrently. If I use synchronized method it may cause deadlock.
>
> Thanks
>
>
>
> pg@fastcrypt.com (Dave Cramer) wrote in message news:<1082479857.3069.178.camel@localhost.localdomain>...
> > the driver isn't automagically going to update your records if someone
> > changes them in the db while you have the result set loaded in your
> > program.
> >
> > You need to do one of two things, either use pessimistic locking, ie
> > select for update, and lock the row, or use optimistic locking and
> > timestamp the updates so that when you commit your changes then you will
> > see that the timestamp in your local record is different than the
> > timestamp in the database and realize your data is stale.
> >
> > There is another way, but it is not ready yet, we are working on pl/j
> > which is a java procedural language that would allow you to do the magic
> > above. ie create a java procedure that you called on a trigger which
> > would update your local copy of the data if someone else were to change
> > it
> >
> > If you are interested and brave, have a look at plj.codehaus.org for the
> > pl/j code, but beware this is alpha quality code.
> >
> > Dave
> > On Thu, 2004-04-15 at 15:23, kenchen077 wrote:
> > > Hi all,
> > >
> > >   I am building web application by using Oracle data base.
> > >   Because different uders will manipulate the same data record at the
> > > same time.
> > >   Could someone please help me for the following questions:
> > >
> > >   1. How can I handel the concurrently DML (insert, update, delete)
> > > opertions on same data record   by different users? Can I use
> > > synchronied method in update, insert, and delete opertionns? Or other
> > > better method ??
> > >
> > >   2. When user 1 select data from table , user 2 update or delete the
> > > date in the same table concurrently.
> > >     Do I need to set transaction isolation level to
> > > TRANSACTION_READ_COMMITED or refreshRow() to get the updated data?
> > >
> > >     thanks all.
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 8: explain analyze is your friend
> > >
> > >
> > >
> > >
> > >
> > >
> > --
> > Dave Cramer
> > 519 939 0336
> > ICQ # 14675561
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
>
>
>
> !DSPAM:408d34f8160166163863926!
>
>
--
Dave Cramer
519 939 0336
ICQ # 14675561


pgsql-jdbc by date:

Previous
From: Edoardo Ceccarelli
Date:
Subject: is a good practice to create an index on the oid?
Next
From: "David Wall"
Date:
Subject: Re: BLOBS