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 по дате отправления: