Re: sharing Connection object and SQLExceptions

Поиск
Список
Период
Сортировка
От Michael Paesold
Тема Re: sharing Connection object and SQLExceptions
Дата
Msg-id 00b601c24eb7$75ca5050$0100a8c0@beeblebrox
обсуждение исходный текст
Ответ на sharing Connection object and SQLExceptions  (Steve Linabery <slinabery@worldcycling.com>)
Список pgsql-jdbc
Steve Linabery wrote:

> Hi,
>
> Another question from me today.
>
> So I had some java (1.4) code that shared a Connection object to do a
> transaction.  There were no threading issues with the code in question;
> it was a case where one object created another using a live Connection
> in the second object's constructor.  Then the first object made some
> method calls to the second object during an SQL transaction
> (db.setAutoCommitMode(false)).
>
> One of the methods in the second object was throwing an SQLException.
> It was trying to delete a table that did not exist.
>
> After some debugging, it appeared that something in the Connection went
> south after that error.  Subsequently, if I created a Statement and
> tried to query a table in the database (*not* the one that the program
> had attempted to drop) I'd get another SQLException about the query
> returned no rows.
>
> Any thoughts on this one?
>
> Thank you,
> Steve Linabery


Have you checked connection.getWarnings() or statement.getWarnings()?
I suggest your problem is, that after dropping a non existent table,
the transaction is in ABORT mode, which means that any query will
fail until the next commit or rollback.

An example:

test=# begin;
BEGIN
test=# drop table non_existing;
ERROR:  table "non_existing" does not exist
test=# select 1;
NOTICE:  current transaction is aborted, queries ignored until end of
transaction block
*ABORT STATE*
test=#

Regards,
Michael Paesold




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

Предыдущее
От: Steve Linabery
Дата:
Сообщение: sharing Connection object and SQLExceptions
Следующее
От: Padraic Renaghan
Дата:
Сообщение: Batch Update updatecounts when error happens