ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cornel Antohi" <cant...@kepler-rominfo.com>
Subject Re: Autocommit not properly handled in Ibatis.
Date Thu, 25 Jan 2007 18:19:15 GMT
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" <clinton.begin@gmail.com>
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 <cantohi@kepler-rominfo.com> 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.
>>
>>
>>
>>
>>
>>
>> 


Mime
View raw message