Обсуждение: re_ help lock record

Поиск
Список
Период
Сортировка

re_ help lock record

От
bitrunner
Дата:
Dave wrote:

I think I understand the question. You want to know how to determine if
the record is locked.

As far as I know there isn't a way. If process A locks the record, then
process B attempts to lock the record it will block until process A
releases the record.

If you have statement_timeout set to some value other than -1 then
process B will timeout after waiting for the statement_timeout.
Otherwise it will block until process A is finished with the record.
------------------------------------------------------------------------
yes is my problem, you have understood perfectly!!!
I have already used the statement_timeout but it does not work: it does
not raise exception. This is my code:

          conPostgre.transactionStart();
          Statement stm = conPostgre.connection.createStatement();
          stm.setQueryTimeout(3);
          rs = stm.executeQuery("select * from prova where \"prvID\" = 1
for update");
          System.out.println("Lock: " + rs.next());

I must set up of the parameters to postgresql.conf?

Thanks a lot.


Re: re_ help lock record

От
Dave Cramer
Дата:
On 24-May-06, at 8:28 AM, bitrunner wrote:

> Dave wrote:
>
> I think I understand the question. You want to know how to
> determine if the record is locked.
>
> As far as I know there isn't a way. If process A locks the record,
> then process B attempts to lock the record it will block until
> process A releases the record.
>
> If you have statement_timeout set to some value other than -1 then
> process B will timeout after waiting for the statement_timeout.
> Otherwise it will block until process A is finished with the record.
> ----------------------------------------------------------------------
> --
> yes is my problem, you have understood perfectly!!!
> I have already used the statement_timeout but it does not work: it
> does not raise exception. This is my code:
>
>          conPostgre.transactionStart();
>          Statement stm = conPostgre.connection.createStatement();
>          stm.setQueryTimeout(3);
>          rs = stm.executeQuery("select * from prova where \"prvID\"
> = 1 for update");
>          System.out.println("Lock: " + rs.next());
>
> I must set up of the parameters to postgresql.conf?

Yes, you must set this in postgresql.conf
>
> Thanks a lot.
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>       choose an index scan if your joining column's datatypes do not
>       match
>