Before we solve the performance problem, can we ask why you're using Spring
with iBATIS DAO?

If you're using Spring, you should use Spring DAO.  My first concern would
be that you have 3 frameworks trying to compete to manage transactions.  You
can reduce it to one by just using Spring DAO with iBATIS SQL Maps (ditch
iBATIS DAO).

Cheers,
Clinton

On 11/24/06, Harish Ram <[EMAIL PROTECTED]> wrote:

Hi

Let me first apologize for bringing this up again. Unfortunately, I had to
since
I did not see any answers to this thread. And the project is on hold
because of
the performance issue :{  Any help is kindly appreciated.

I am using Spring/DAO/iBatis for db inserts and am finding this "almost an
order
of magnitude" slower to jdbc.

I have a single DaoManager for multiple threads and each thread starts
with
=====
daoManager.startTransaction();
getSqlMapExecutor().startBatch();
getSqlMapExecutor().insert("MyInsertId", mymap);
daoManager.commitTransaction();
finally{
daoManager.endTranasaction();
}
=========

Even when I am debugging, I can clearly see a timed hesitation at
=========
2006-11-24 05:09:06,757 DEBUG [com.ibatis.common.jdbc.SimpleDataSource]
Checked
out connection 13060580 from pool.
2006-11-24 05:09:06,836 DEBUG [java.sql.Connection] {conn-114583}
Connection
=========
And then the insert statment is executed..

My SqlMapConfig file is as follows

=======================
<settings
     lazyLoadingEnabled="true"
     cacheModelsEnabled="true"
     enhancementEnabled="true"
     maxRequests="512"
     maxSessions="128"
     maxTransactions="32"
/>


<transactionManager type="JDBC">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="com.sybase.jdbc3.jdbc.SybDriver
"/>
     <property name="JDBC.ConnectionURL" value="${url}"/>
     <property name="JDBC.Username" value="${username}"/>
     <property name="JDBC.Password" value="${password}"/>
     <property name="JDBC.DefaultAutoCommit" value="true"/>
     <property name="Pool.MaximumActiveConnections" value="20"/>
     <property name="Pool.MaximumIdleConnections" value="10"/>
     <property name="Pool.MaximumCheckoutTime" value="120000"/>
     <property name="Pool.TimeToWait" value="500"/>
     <property name="Pool.PingQuery" value="select * from dual"/>
     <property name="Pool.PingEnabled" value="false"/>
     <property name="Pool.PingConnectionsOlderThan" value="1"/>
     <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
   </dataSource>
</transactionManager>
===============================
QUESTION is, am I missing anything.. Is there anything I can do to speed
up the
transaction.
QUESTION, is there anything that I can do to ***reduce time to get
connection
from connection pool ***?
Any help is kindly appreciated

sincerely
Harish


Reply via email to