upon looking at the Yourkit, I am showing the number of objects in memory as
– 212 objects with a total retained size in memory of 31.38MB
– 108, 544 objects with a total retained size in memory of 16.49MB.
– 27,136 objects with a total retained size in memory of 3.03 MB.
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
From: Kalcevich, Daniel
Sent: Tuesday, March 06, 2007 7:04 AM
Subject: RE: What is RequestScope used for?
found about this RequestScope through the profiler YourKit. Here is the
trail that references the IBatis objects.
-- of java.lang.Object
---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 te
------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
--------- of java.lang.Object
----------elementData of java.util.ArrayList
-----------value of java.lang.ThreadLocal$ThreadLocalMap$Entry
------------ of java.lang.ThreadLocal$ThreadLocalMap$Entry
-------------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
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
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.