ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Schall" <mike.sch...@gmail.com>
Subject Re: queryForList/Map/Object... rollbacks
Date Wed, 05 Mar 2008 17:48:45 GMT
I saw the commitRequired, but why are we creating the transaction in the
first place? Or is this a Sybase requirement that the rest of us have had to
live with?

On Wed, Mar 5, 2008 at 11:44 AM, Christopher Lamey <clamey@localmatters.com>
wrote:

> Doh!  Forgot about "commitRequired" - been using Spring for everything
> lately.
>
> Sorry about that.
>
>
> On 3/4/08 7:46 PM, "" <> wrote:
>
> > Actually, it is the default behaviour. :-/
> >
> > It's a combination of both the iBATIS transaction manager default
> > configuration and SimpleDataSource.
> >
> > To make a long story short, in the good old days, some JDBC drivers
> > literally required a rollback to "reset" the connection.  *cough* Sybase
> > *cough*  But other drivers hissed and booed at the excessive rollbacks.
> >
> > Thus we added a flag to the iBATIS transaction manager, called
> > commitRequired (because commits are equally as aggressive).  Try this:
> >
> > <transactionManager ...  commitRequired="false">
> >
> > That combined with a container managed DataSource should eliminate all
> > unnecessary rollbacks. If it was already set to false, it is entirely
> > possible that SimpleDataSource was entirely responsible for the
> aggressive
> > rollbacks -- thus we should probably make that configurable too.
> >
> > Clinton
> >
> > -----Original Message-----
> > From: Christopher Lamey [mailto:clamey@localmatters.com]
> > Sent: March-04-08 5:07 PM
> > To: user-java@ibatis.apache.org
> > Subject: Re: queryForList/Map/Object... rollbacks
> >
> > That is not the default iBATIS behavior, I'm guessing your container is
> > getting involved.
> >
> > From what I understand, the SIMPLE datasource type is generally for
> > standalone programs, not for apps running in a container.
> >
> > On 3/4/08 4:20 PM, "Tom Henricksen" <TomH@A-t-g.com> wrote:
> >
> >> Currently we are using JDBC with simple datasource.
> >>
> >>
> >>
> >> <transactionManager type="JDBC">
> >>
> >>             <dataSource type="SIMPLE">
> >>
> >>
> >>
> >> But we are transitioning to JNDI datasource.
> >>
> >>
> >>
> >> This is just a web application.  I will take a look at the Wiki.
> >>
> >>
> >>
> >> So is this default behavior of iBatis to create a transaction and roll
> >> it back for even a select?
> >>
> >>
> >>
> >> Would JTA change this?
> >>
> >>
> >>
> >> Thanks,
> >>
> >> Tom
> >>
> >>
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Jeff Butler [mailto:jeffgbutler@gmail.com]
> >> Sent: Tuesday, March 04, 2008 3:53 PM
> >> To: user-java@ibatis.apache.org
> >> Subject: Re: queryForList/Map/Object... rollbacks
> >>
> >>
> >>
> >> What transaction manager are you using?
> >>
> >> Is this an EJB application with CMT, or just a web application?
> >>
> >> Have you read the information in the WIKI about configuring iBATIS on
> >> WebSphere?
> >>
> >>
> >>
> >>
> http://opensource.atlassian.com/confluence/oss/display/IBATIS/Environmen
> >> t+Specific+Information
> >>
> >>
> >>
> >> Jeff Butler
> >>
> >>
> >>
> >>
> >>
> >> On Tue, Mar 4, 2008 at 3:32 PM, Tom Henricksen <TomH@a-t-g.com> wrote:
> >>
> >> We are performance monitoring our application and my DBA let me know
> >> that we had over 3 MILLION rollbacks in a single day.  We are using
> >> WebSphere to DB2 on Win2k3 servers.
> >>
> >> I looked in our code and could not find anything.  Used p6spy and found
> >> that every time queryForXXX is called I received a rollback.  Stepping
> >> through the queryForList code in SqlMapExecutorDelegate.java the
> >> autoStartTransaction starts a transaction if none is present and since
> >> we don't have commitRequired set, the autoEndTransaction will cause a
> >> rollback.
> >>
> >> I assume there is a good reason to start the transaction here.  It
> seems
> >> like extra work creating a transaction that will always be rolled back.
> >> Can someone explain why this is good to me so I can forward the
> >> information to my DBA?  Any links supporting the argument would be
> >> great.  Is there a way to use the queryForXXX without creating a
> >> transaction?  I assume it is better to not have commitRequired?
> >>
> >> Thanks for your time.
> >>
> >>
> >>
> >> Tom Henricksen
> >> Consultant
> >> Advanced Technologies Group, Inc.
> >>
> >>
> >>
> >>
> >>
> >
>
>

Mime
View raw message