AW: [JDBC] Problem: commit doesn´t work

From: Kovács Péter <peter(dot)kovacs(at)siemens(dot)com>
To: 'Joao Paulo Ribeiro ' <jp(at)mobicomp(dot)com>, "'pgsql-jdbc(at)postgresql(dot)org '" <pgsql-jdbc(at)postgresql(dot)org>
Subject: AW: [JDBC] Problem: commit doesn´t work
Date: 2003-01-08 15:08:07
Message-ID: 40BAFEB2AF17FB4885F92783FACFFC77AE72D2@budg132a.sysdata.siemens.hu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc


I think that we need at least the error message sent by the backend to make
a reasonable guess at what is happening here. In my experience quite usable
backend error messages are propagated with the JDBC exceptions, so the
messages of the SQLException chain would be enough to be more or less sure
of the cause of the commit failure.

Peter

-----Originalnachricht-----
Von: João Paulo Ribeiro
An: pgsql-jdbc(at)postgresql(dot)org
Gesendet: 07.01.2003 16:02
Betreff: Re: [JDBC] Problem: commit doesn´t work

Hi, Marcos.

As far as i know the default behaviour if something goes wrong in the
backend executing a statement during a transaction ( i assume that's the

case you are talking about) is the backend automatically to do a
rollback, terminate your transaction and report the error. As so when
you do the commit there is nothing to commit. This the default behaviour

expected and i cant tell exactly but i had used Oracle and this is the
default behaviour.
In a transaction every statement have to be successfull. If not, the
backend do automatically a rollback
The transaction is see like an unit and have to be done entirely or not
done at all.
There is some "ways" that people had invented to try to get somethink
like having a transaction but with something allowing them to control
how much they want to rollback.
Oracle use what they call "Save points". Something like transaction into

transactions. This allow that you to tell do backend to only rollback to

last save point if something goes wrong.
But again, this not the default behaviour because this is not the
behaviour expected for a transaction.

I think this is not a bug but the normal behaviour. :)
May be i am wrong.

I hope this helped.

Marcos de Barros wrote:

> Hi Group,
>
> I´m a new membrer and have a problem with the commit in jdbc postgres.

> I would appreciate some help.
>
> I have a program that execute 40000 inserts in a table. I set
> autocommit = false before the process and begin the loop. The 39999
> insert, for example, has an error and after the loop i execute the
> commit command. The SQL Server or Oracle driver commit all the 39998
> right inserts. The postgres doesn´t commit one. I figure it´s a bug,
> or i´m doing something wrong. Above is the code:
>
> for (int i=0; i < queryList.length; i++) {
> if (queryList[i] != null) {
> try {
> statement.execute(queryList[i]);
> }
> catch(Exception e) {
> System.out.println("queryList[" + i + "]" + queryList[i]);
> }
> }
> }
> connection.commit();
>
>
> Thank you a lot!
>
> Best Regards,
>
> Marcos de Barros
> Iclass Consultoria
> mbarros(at)iclass(dot)com(dot)br <mailto:mbarros(at)iclass(dot)com(dot)br>
> http://www.iclass.com.br
> Tels: (21) 2240-8747 / (21) 2220-1480

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org

Browse pgsql-jdbc by date

  From Date Subject
Next Message Barry Lind 2003-01-08 16:08:11 [Re: JDBC compliance]
Previous Message Barry Lind 2003-01-08 01:52:43 Re: JDBC driver reports column size of -1 !?