Great! We started to use iBATIS 1.5 years ago and we are really happy with it ... but the most problematic thing until now was this AutoCommit = false in WebSphere environment - now we are using commitRequired and indeed our life is easier :)
"Anyway, unless you're using Oracle, feel free to make your lives easier by just setting commitRequired=true.. :-)" --> do you have any suggestion for iBATIS + Oracle configuration? Thank you, Cornel > No, absolutely not. It will either make one start/commit/end per > method call to SQLClient (if you don't start a transaction) or just > one that you call explicitly. > > The only exception is if you're using Lazy Loading, but that's totally > within your control. > > iBATIS always attempts to use the most efficient transaction scope > possible. So you shouldn't have to worry about it. > > Clinton > > On 1/25/07, Cornel Antohi <[EMAIL PROTECTED]> wrote: >> Hi Clinton, >> >> Murphy's law is validated again: I am using Oracle :( >> >> If I am using in a method N SELECT queries with commitRequired=true, >> iBATIS >> makes N commit() (one at the end of each query), right? Do you have any >> clue >> / recommendation how to minimize this overhead using iBATIS + Oracle? >> >> Thank you, >> Cornel >> >> >> ----- Original Message ----- >> From: "Clinton Begin" <[EMAIL PROTECTED]> >> To: <user-java@ibatis.apache.org> >> Sent: Thursday, January 25, 2007 6:55 PM >> Subject: Re: Autocommit not properly handled in Ibatis. >> >> >> > In hindsight I wish I had made the default commitRequired=true... >> > >> > I believe the only database that really suffers from unecessary >> > commits is Oracle. The other RDBMS are actually pretty good about not >> > incurring additional overhead, and in fact Sybase drivers I've used >> > demand that either commit or rollback be called in all cases except >> > AutoCommit of course. >> > >> > Anyway, unless you're using Oracle, feel free to make your lives >> > easier by just setting commitRequired=true.. :-) >> > >> > Clinton >> > >> > On 1/25/07, Cornel Antohi <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >> Hi Koka, >> >> >> >> In case of iBATIS commitRequired=false, if you execute SELECT >> statements, >> >> they are grouped into a transaction that "is terminated by a call to >> >> either >> >> the method commit or the method rollback" ... because iBATIS never >> calls >> >> commit() or rollback() it means that iBATIS do not handle properly >> the >> >> transactions, right? >> >> >> >> >> >> Thank you, >> >> Cornel >> >> >> >> >> >> ----- Original Message ----- >> >> From: Koka Kiknadze >> >> To: user-java@ibatis.apache.org >> >> Sent: Thursday, January 25, 2007 5:21 PM >> >> Subject: Re: Autocommit not properly handled in Ibatis. >> >> >> >> >> >> >> >> > >> >> > >> >> > In iBATIS SELECT case, no commit or rollback is executed ... >> >> > >> >> > Question: >> >> > How do you interpret this fact? >> >> > >> >> >> >> Not sure what kind of interpretation you ask for ;) >> >> >> >> Again, if the code looks like (you can leave out startTransaction / >> >> commitTransaction in defaultAutocommit=true mode, as iBatis will >> >> internally >> >> add those for any SQL statement) : >> >> sqlMapClient.startTransaction(); >> >> sqlMapClient..queryFor...(); >> >> sqlMapClient.commitTransaction(); >> >> >> >> Underlying connection object's commit() method is NOT called if >> >> commitRequired property is set to false (it would get called if it >> were >> >> insert/update etc.), and vice versa - connection.commit() IS called >> if >> >> commitRequired = true. Setting commitRequired =false saves extra >> commit >> >> calls when no data has changed. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >