Thread: Transactions through JDBC
Hi all! Actually I have a client-server application with one server and many clients each one of which opens a different connection to the postgres database. In order to avoid those known problems with the execution of the different clients' operations at database, I implemented everything in this way. Each operation is made so: conn.executeUpdate("BEGIN"); conn.execute(...) conn.execute(...) conn.execute(...) conn.executeUpdate("COMMIT"); May it be considered right, or am I making something wrong? I use JDBC driver for postgres 8.1 Thanks!
>You should use > conn.setAutoCommit(false); > conn.execute(...) > conn.execute(...) > conn.execute(...) > conn.commit(); > > Thanks! jan Then, conn.setAutoCommit(false); has to be regarded as a begin statement? I had already put the autocommit flag to false soon after the creation of the connection, since I saw an improvement in the performances without that flag and moreover I wanted to make transactions on my own. I will change as you told me! Thanks! > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly -- -------------------------------------------------------------- Jan de Visser jdevisser@digitalfairway.com Baruk Khazad! Khazad ai-menu! --------------------------------------------------------------
On Wednesday 11 April 2007 14:01:55 Alberto Molteni wrote: > >You should use > > > > conn.setAutoCommit(false); > > conn.execute(...) > > conn.execute(...) > > conn.execute(...) > > conn.commit(); > > > > > > Thanks! > > jan > > Then, conn.setAutoCommit(false); has to be regarded as a begin statement? I think BEGIN is implicitly send when you execute the first statement in a new transaction. You shouldn't worry about it. > I had already put the autocommit flag to false soon after the creation of > the connection, since I saw an improvement in the performances without that > flag and moreover I wanted to make transactions on my own. Makes sense. > > I will change as you told me! > > Thanks! jan -- -------------------------------------------------------------- Jan de Visser jdevisser@digitalfairway.com Baruk Khazad! Khazad ai-menu! --------------------------------------------------------------
On Wednesday 11 April 2007 12:49:49 Albert wrote: > Hi all! > > Actually I have a client-server application with one server and many > clients each one of which opens a different connection to the postgres > database. In order to avoid those known problems with the execution of > the different clients' operations at database, I implemented > everything in this way. Each operation is made so: > > conn.executeUpdate("BEGIN"); > conn.execute(...) > conn.execute(...) > conn.execute(...) > conn.executeUpdate("COMMIT"); > > May it be considered right, or am I making something wrong? I use JDBC > driver for postgres 8.1 You should use conn.setAutoCommit(false); conn.execute(...) conn.execute(...) conn.execute(...) conn.commit(); > > Thanks! jan > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly -- -------------------------------------------------------------- Jan de Visser jdevisser@digitalfairway.com Baruk Khazad! Khazad ai-menu! --------------------------------------------------------------