Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Concurrency question

Re: Concurrency question

From: Maximus <qweqwe_at_qwqwewq.com>
Date: Sun, 08 Jun 2003 18:52:01 GMT
Message-ID: <lBLEa.152770$ro6.4469930@news2.calgary.shaw.ca>


"John Bossert" <jbossert_at_usa.net> wrote in message news:3EE37324.7090604_at_usa.net...
> I have a table of unique numbers, call them PINs. Once a PIN has been
assigned
> to a user, it needs to be unavailable to other users.
>
> I have a query which identifies unallocated PINs. However, I don't know
the
> best way to avoid the situation where two transactions could grab the same
PIN,
> if a second transaction began before the first transaction committed.
>
> Is there a convention/best practice for handling this scenario? I'm aware
of
> SERIALIZABLE, but am concerned about the potential impact on throughput.
>
> Oracle 8.1.7.3.0 and 9.2.0.3.0 on Solaris 8. Client application is Tomcat
4.1
> and java servlets.
>
> Pointers appreciated.

You can only lock data to prevent other processes from updating, so in your case the obvious solution of using locks won't work.

You need to change your method of allocating the PIN, for example you could create a sequence and use it to index your next unused PIN. This will guarantee no two processes will try allocating the same one. Received on Sun Jun 08 2003 - 13:52:01 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US