Re: Transaction settings: nowait

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "durumdara *EXTERN*" <durumdara(at)gmail(dot)com>, "pgsql-general" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Transaction settings: nowait
Date: 2009-05-06 13:53:00
Message-ID: D960CB61B694CF459DCFB4B0128514C202FF65AB@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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?

I assume that you mean "locks" when you write "deadlocks".

There is no exact equivalent, but you can set the variable
statement_timeout to something else than 0 in your session
(or in your transaction).
Then every statement longer than this many seconds will be
terminated.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Gauthier, Dave 2009-05-06 14:47:32 XML -> PG ?
Previous Message durumdara 2009-05-06 12:35:47 Re: Transaction settings: nowait