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

Home -> Community -> Usenet -> c.d.o.misc -> Re: Get the first non-locked record.

Re: Get the first non-locked record.

From: Jim Kennedy <kennedy-family_at_home.com>
Date: Tue, 20 Nov 2001 20:16:13 GMT
Message-ID: <hSyK7.51450$XJ4.30242391@news1.sttln1.wa.home.com>


I think you want to use AQ in this case. Jim
"Brian Tkatch" <SPAMBLOCK.Maxwell_Smart_at_ThePentagon.com.SPAMBLOCK> wrote in message news:3bfaab87.103696187_at_news.alt.net...
> Imagine I have a table:
>
> Item
> ======
> Id (PRIMARY KEY)
> Processing_Order (NOT NULL, UNIQUE)
> Process (UNIQUE)
>
> The table lists items that are processed in order.
>
> More than one process will try to take an item at the same time. When
> a process gets an item, it places its name there, and deletes the
> record when the process finishes with the item.
>
> The way to get the next item would be.
>
> SELECT Id FROM Item WHERE Process IS NULL ORDER BY Processing_Order;
>
> I'm assuming it should be SELECTed FOR UPDATE so as to get the record
> it actually thinks it has. But how does the second process skip the
> record the first one has currently LOCKED (if it didn't UPDATE it
> yet)? If I don't say NOWAIT it sits there, and if I do, it returns an
> error rather than going to the next record or returning NULL.
>
> Brian
Received on Tue Nov 20 2001 - 14:16:13 CST

Original text of this message

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