[
http://jira.jboss.com/jira/browse/JBCACHE-709?page=comments#action_12340068 ]
Sudhakar Pandey commented on JBCACHE-709:
-----------------------------------------
Thanks Ben for your valuable insights.......
I agree with you that when we do not configure, eviction is off. But when we do configure
and remove the cached objects properly from the cache then why memory usage increases.
I hope I am putting my point properly. Ok here I am giving a simple example:
"Suppose the eviction policy is ON and we put Object X in TreeCache and then removed
the Object X from TreeCache. This means, now there is no object present in the cache and
there is nothing to clean. Then why the memory leak is happening?"
Thanks once again.
Out of memory problem
---------------------
Key: JBCACHE-709
URL:
http://jira.jboss.com/jira/browse/JBCACHE-709
Project: JBoss Cache
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 1.2.4SP2
Environment: Windows NT, Ecliplse IDE and Pentium 4 processor.
Reporter: Sudhakar Pandey
Assigned To: Manik Surtani
Priority: Critical
Attachments: TreeCache.xml
Problem:
~~~~~~~
While running the following testcase after entering 66666 records my system program is
getting hang.
Following is the description of program:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I am putting some String object in TreeCache, accessing it and then removing it from the
cache. I am doing this in a infinite loop.
Following is the eviction policy:
~~~~~~~~~~~~~~~~~~~~~~~
<attribute name="EvictionPolicyConfig">
<config>
<attribute
name="wakeUpIntervalSeconds">72000</attribute>
<!-- Cache wide default -->
<region name="/_default_">
<attribute name="maxNodes">500</attribute>
<attribute name="timeToLiveSeconds">180</attribute>
<!-- Maximum time an object is kept in cache regardless of idle time -->
<attribute name="maxAgeSeconds">7200</attribute>
</region>
<!-- yodlee wide default -->
<region name="/com/yodlee">
<attribute name="maxNodes">500</attribute>
<attribute name="timeToLiveSeconds">180</attribute>
<!-- Maximum time an object is kept in cache regardless of idle time -->
<attribute name="maxAgeSeconds">7200</attribute>
</region>
</config>
</attribute>
*IMPORTENT*: If I reduce the 'wakeUpIntervalSeconds' then there is no leak.
However, I can reduce this time coz it eats up lots of CPU.
I have attached the Tree Cache Configuration xml file also.
Program:
~~~~~~~
public void testTreeCache(){
TreeCache treeCache;
try {
treeCache = new TreeCache();
treeCache.setCacheMode(TreeCache.LOCAL);
// configure TreeCache
PropertyConfigurator config = new PropertyConfigurator();
config.configure(treeCache,
"com/yodlee/core/system/services/cacheservice/TreeCache.xml");
treeCache.startService();
String identifier = "Test/MemoryLeak/";
String key = "key";
String value = "JBoss Cache is a product designed to cache frequently accessed
Java objects in order to dramatically improve the performance of e-business applications.
By eliminating unnecessary database access, JBoss Cache decreases network traffic and
increases the scalability of applications.";
for(int i=0;;i++)
{
System.out.println("Putting key=" + (key +i));
treeCache.put(identifier, key +i, value);
System.out.println(treeCache.get(identifier, key + i));
System.out.println("Removing key=" + (key+i));
treeCache.remove(identifier, key + i);
}
//treeCache.stopService();
} catch (Exception e) {
MessageController.log(JBossCacheServiceImpl.class.getName(), 1,
ExceptionHelper.getExceptionStackTrace(e),
MessageController.FATAL);
throw new CoreException(ExceptionHelper.getExceptionStackTrace(e));
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira