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:[EMAIL PROTECTED]
Sent: Tuesday, March 04, 2008 3:53 PM
To: [email protected]
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 <[EMAIL PROTECTED]> 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.