Re: 25P02, current transaction is aborted, commands ignored

From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Philip Yarra <philip(at)utiba(dot)com>
Cc: Dave Cramer <pg(at)fastcrypt(dot)com>, Amaresh Wakkar <babu_moshay(at)indiatimes(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: 25P02, current transaction is aborted, commands ignored
Date: 2006-04-03 01:03:26
Message-ID: 4430745E.2000001@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Philip Yarra wrote:
> I always assumed what Dave just said, but porting from Oracle & Sybase
> to PostgreSQL, we ran into exactly the same issue - we also solved it
> with savepoints. However, I threw together the attached sample app to
> test *precisely* what ends up in the database when auto-commit is off.
> For the impatient, it sets auto-commit off, and tries to insert 3 rows.
> The first succeeds, the second violates a unique index, so fails, and
> the third is issued after the second, so should also fail. We ignore the
> exceptions, then commit. The results puzzle me somewhat:

> static void executeInsert(int id, String msg)
> {
> log("executeInsert, id[" + id + "] msg[" + msg + "]");
> PreparedStatement stmt = null;
> try{
> stmt = conn.prepareStatement("INSERT INTO tempextest(id,msg) VALUES(?,?)");
> stmt.setInt(1,id);
> stmt.setString(2,msg);
> stmt.executeUpdate();
> conn.commit();
> } catch (SQLException sqlex) {
> log(sqlex);
> closeStatement(stmt);
> }
> }

Um, your testcase is committing after every insert, not once at the end.
So the behaviour you see sounds correct.

-O

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Philip Yarra 2006-04-03 01:16:56 Re: 25P02, current transaction is aborted, commands ignored
Previous Message Oliver Jowett 2006-04-03 00:57:38 Re: 25P02, current transaction is aborted, commands ignored