I've just started looking at JBossCache and I was writing some tests to see how it
works. I am trying to put nodes into the cache and then see them expire. I have used a
region and used n LRU eviction policy. I was thinking that setting TimeToLiveSeconds
and/or MaxAgeSeconds would cause the node to be completely removed from the cache. I know
that the RegionManager has to wake up so I setWakeUpIntervalSeconds on the
EvictionConfiguration to 4 seconds.
| LRUConfiguration lru = new LRUConfiguration();
| lru.setMaxNodes(5000);
| lru.setTimeToLiveSeconds(2);
| lru.setMaxAgeSeconds(2);
|
I did a sleep for 10 seconds and the node was still there.
I then tried doing the following which I found in the user manual.
| Long future = new Long(System.currentTimeMillis() + 2000);
| cache.getRoot().getChild(nodeFqn).put(ExpirationConfiguration.EXPIRATION_KEY,
future);
|
| assertTrue(cache.getRoot().hasChild(nodeFqn));
| Thread.sleep(10000);
|
| // after 5 seconds, expiration completes
| assertFalse(cache.getRoot().hasChild(nodeFqn));
|
The node was still there.
Then I tried this:
| ExpirationConfiguration ec = new ExpirationConfiguration();
| ec.setTimeToLiveSeconds(2);
|
| cache.getRoot().getChild(nodeFqn).put(ExpirationConfiguration.EXPIRATION_KEY, ec);
|
| assertTrue(cache.getRoot().hasChild(nodeFqn));
| Thread.sleep(10000);
|
| // after 5 seconds, expiration completes
| Node n1 = cache.getRoot().getChild(nodeFqn);
| assertFalse(cache.getRoot().hasChild(nodeFqn));
|
The node was still there. So if anyone can tell me what I'm missing I would appreciate
it. I am expecting to see the node gone from the cache by one of these methods. Thanks for
any help you can provide.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4162152#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...