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
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 |