Still have exactly the same issue in jboss4.0.4GA (probably JBOSS4.0.5.GA as sources of
this part are not changed).
We also have thousands of users.
For a moment only possible solution is to extend TimedCachePolicy class and reiplement
run() method. Currently this method only changes current time.
But expired objects can be removed at this time.
public void run() {
super.run();
synchronized (entryMap) {
Iterator iter = entryMap.entrySet().iterator();
List removeentries = new ArrayList();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
TimedEntry value = (TimedEntry) entry.getValue();
if (value.isCurrent(now) == false) {
if(log.isDebugEnabled()){
log.debug("destroying object:"+value);
}
value.destroy();
removeentries.add(entry.getKey());
}
}
for (Object object : removeentries) {
if(log.isDebugEnabled()){
log.debug("removing object from Map:"+object);
}
entryMap.remove(object);
}
}
}
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4001715#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...