Re: [araman@india-today.com: locking problem with JDBC (suspicion)]

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: [araman@india-today.com: locking problem with JDBC (suspicion)]
Дата
Msg-id 008b01c09819$77e562e0$1001a8c0@archonet.com
обсуждение исходный текст
Ответ на [araman@india-today.com: locking problem with JDBC (suspicion)]  (Anand Raman <araman@india-today.com>)
Список pgsql-general
From: "Anand Raman" <araman@india-today.com>

> Hi Tom and others
>
> I have been trying to find a pattern to this problem and I have failed
> to find any.. In a recently conducted test i could insert 6 records
> without and problems so far ... However some other time i am able to
> insert just as many as 3 records..
>
> I need one more clarifications..
>
[snipped initial query]
> query: SELECT oid FROM "gallery" WHERE "gallery_id" = $1 FOR UPDATE OF
"gallery"
> query: SELECT oid FROM "exhibit_types" WHERE "exhibit_type_id" = $1 FOR
UPDATE OF "exhibit_types"
> query: SELECT oid FROM "atoday_users" WHERE "user_id" = $1 FOR UPDATE OF
"atoday_users"
> query: SELECT oid FROM "exhibits" WHERE "exhibit_id" = $1 FOR UPDATE OF
"exhibits"

You don't seem to be updating gallery,exhibit_types,atoday_users,exhibits in
the following queries. Are you sure you want SELECT...FOR UPDATE here?

> CommitTransactionCommand
> StartTransactionCommand
> query: insert into exhibit_prices(exhibit_price_id,
exhibit_distribution_id, unframed_price_inr, framed_price_inr,
unframed_crate_price_inr, framed_crate_price_inr, tax_percent,
calculate_shipping_for)
values(317,717,12000.0,25000.0,150.0,2000.0,10.0,'WORLD')
> ProcessQuery
> query: SELECT oid FROM "exhibit_distributions" WHERE
"exhibit_distribution_id" = $1 FOR UPDATE OF "exhibit_distributions"
> CommitTransactionCommand
> StartTransactionCommand
> query: insert into
inventory(exhibit_distribution_id,quantity,quantity_available)
values(717,1,1)
> ProcessQuery
> CommitTransactionCommand
> StartTransactionCommand
> query: commit
>
>
> I actually use the 2 insert statements in a transaction.. However the
> log file is outputting a CommitTransactionCommand after every insert..
> Is it true that the data is committed after every insert or only when i
> commit the entire transaction..,
>
> Thanks
> Anand

You probably have an autocommit flag set to true. I don't use JDBC myself
but there is something similar in ODBC. If that's the case though the
SELECT...FOR UPDATE stuff should expire at the end of the transaction, so it
can't cause locking problems. As you noted earlier it sounds like a
transaction *isn't* being completed

If you can dump the database schema (pg_dump -s) and put together some
sample queries I'll be happy to see if I can reproduce the problem. Bear in
mind that I'll be running from the psql command-line and it might take me a
day or so to get back to you. If the files are big, feel free to send them
to me direct rather than via the list.

- Richard Huxton


В списке pgsql-general по дате отправления:

Предыдущее
От: "Richard Huxton"
Дата:
Сообщение: Re: function likes sprintf
Следующее
От: "Mikhail V. Majorov"
Дата:
Сообщение: Re: function likes sprintf