>I need to retrieve a record out of a queue, and I want to lock it to make sure that only one user retrieves and is working on a record at a time.
>
>I don't think this is a complicated concept, but I've never done it before. Can somebody give me a crash course on what I'm looking for? I'm going to have a status on the record of Pending/Done I think to explicitly mark that the record has been processed, but I need to work on the locking part. This is the requirement that was provided to me:
>
>This action must be safe across multiple webservers, meaning no 2 users could possibly receive the same row at the same time (atomic operation? Cross-database locking?)
I want to make sure I understand something first. You say "no 2 users could possibly receive the same row at the same time".
Do you mean that no 2 users could retrieve the row, just for viewing? Or that 2 users can't update the same row, where both retrieved it, one updated, and then a second tried to update with a "dirty" update?