ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kalcevich, Daniel" <dkalcev...@firstam.com>
Subject RE: What is RequestScope used for?
Date Tue, 06 Mar 2007 17:28:34 GMT


Thanks for the response.  Now with regards to the Transactions... our
application uses SQL Maps in two different ways.


1.	Within Spring inside the Web App - We use transactions within
Spring, thus SQL maps should not be using the transactions.  
2.	A library we developed that the Web App uses - This uses the DAO
framework and SQL Maps internally, but only retrieves information from
the DB, not inserts.


For the Transactions, do I have to declare them explicitly in both
places, or do you think it would be better to address the standalone
library first?





Yep, you have a leak and it is RequestScope related...but it's likely
not an ibatis bug...

It's more likely that you're not ending transactions properly.

try {
  ///... do work
} finally {




From: Kalcevich, Daniel 
Sent: Tuesday, March 06, 2007 8:18 AM
To: 'user-java@ibatis.apache.org'
Subject: RE: What is RequestScope used for?


OK, upon looking at the Yourkit, I am showing the number of objects in
memory as the following:


-          com.ibatis.sqlmap.engine.impl.SqlMapClientImpl - 212 objects
with a total retained size in memory of 31.38MB

-          com.ibatis.sqlmap.engine.scope.RequestScope - 108, 544
objects with a total retained size in memory of 16.49MB.

-          com.ibatis.sqlmap.engine.scope.SessionScope - 27,136 objects
with a total retained size in memory of 3.03 MB.


Do those numbers make sense?  I only question it because with every
snapshot of the memory I have taken along the way, the
RequestScope/SessionScope objects keep increasing.





From: Kalcevich, Daniel 
Sent: Tuesday, March 06, 2007 7:04 AM
To: 'user-java@ibatis.apache.org'
Subject: RE: What is RequestScope used for?


I found about this RequestScope through the profiler YourKit.  Here is
the trail that references the IBatis objects.


map of com.ibatis.sqlmap.engine.scope.RequestScope 

--[121] of java.lang.Object[513] 

---elementData of java.util.ArrayList 

----list of java.util.Collections$SynchronizedRandomAccessList 

-----pool of com.ibatis.common.util.ThrottledPool 

------requestPool of com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelega

------delegate of com.ibatis.sqlmap.engine.impl.SqlMapClientImpl 

-------client of com.ibatis.dao.engine.transaction.sqlmap.SqlMapDao

--------transactionManager of com.ibatis.dao.engine.impl.DaoContext 

---------[0] of java.lang.Object[11] 

----------elementData of java.util.ArrayList 

-----------value of java.lang.ThreadLocal$ThreadLocalMap$Entry 

------------[1442] of java.lang.ThreadLocal$ThreadLocalMap$Entry[2049] 

-------------table of java.lang.ThreadLocal$ThreadLocalMap 

--------------threadLocals of java.lang.Thread [Stack Local, Thread]



The reason I thought it might be contributing to a memory leak was the
fact that at every snapshot I take, the number of HashMaps continues to
increase without going down.  Then when I look at what it is referring
to, it points to the RequestScope.


While looking in the trace, I saw that it was referencing the
DaoContext's transaction Manager.  Could the Transaction Manager be
playing a part in this?  My application uses Spring with SQL Maps, but a
library we wrote uses the DAO Framework specifically.  The Spring
application does not use it.  I think that is worth looking into, given
what I see in the profiler.






From: Kalcevich, Daniel 
Sent: Monday, March 05, 2007 11:37 AM
To: 'user-java@ibatis.apache.org'
Subject: What is RequestScope used for?




I have a Spring, Struts, SQL Map application that runs on JBoss/Tomcat.
And while going through a profiler, I am seeing that there are several
instances of "com.ibatis.sqlmap.engine.scope.RequestScope".  What is
that object used for?  The reason I ask is that I am trying to track
down a memory leak and am wondering if this class is possibly part of
the cause?  Any help is greatly appreciated.  Thank you.



View raw message