Re: Transaction settings: nowait
От | Merlin Moncure |
---|---|
Тема | Re: Transaction settings: nowait |
Дата | |
Msg-id | b42b73150905060828w6b8ccd20n389b95ae02b326b8@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Transaction settings: nowait ("Albe Laurenz" <laurenz.albe@wien.gv.at>) |
Список | pgsql-general |
2009/5/6 Albe Laurenz <laurenz.albe@wien.gv.at>: > durumdara wrote: >> In FireBird the transactions have these settings: >> >> >> SET TRANSACTION >> [NAME hostvar] >> [READ WRITE | READ ONLY] >> [ [ISOLATION LEVEL] { SNAPSHOT [TABLE STABILITY] >> | READ COMMITTED [[NO] RECORD_VERSION] } ] >> [WAIT | NO WAIT] >> [LOCK TIMEOUT seconds] >> And this is the important thing: >> >> >> [WAIT | NO WAIT] >> [LOCK TIMEOUT seconds] >> If set wait and timeout, the Firebird is waiting for the >> locked resource (record) for X seconds before it show deadlock error. >> >> But when you set no wait, the deadlock error immediately >> shown by the server. >> >> I wanna ask that if I want to avoid the full deadlocks. >> >> For. example: I forget to make commit, or rollback on >> exception then all resources I used (updated) is locked. >> >> If I use nowait, the clients immediately get the error >> message, and they are are not sitting deafly and blindly >> before the screen, waiting for what will happen. >> >> So: have PGSQL same mechanism like nowait? 'select...for update' has a nowait clause, as does 'lock'. also advisory locks, using pg_try_advisory_lock. another tactic is to send queries asynchronously and fire a cancel based on client driven logic. merlin
В списке pgsql-general по дате отправления: