[jboss-user] [JBoss Cache: Core Edition] - Re: Refresh cache from cache loader on demand?
drcallaway
do-not-reply at jboss.com
Thu Jun 18 22:18:41 EDT 2009
I was able to get this working with this code:
CacheSPI cacheSpi = (CacheSPI) cache;
CacheStoreInterceptor csi = null;
int index = 0;
for (Object o : cacheSpi.getInterceptorChain())
{
if (o instanceof CacheStoreInterceptor)
{
csi = (CacheStoreInterceptor) o;
break;
}
index++;
}
cacheSpi.removeInterceptor(CacheStoreInterceptor.class);
rootNode.removeChild("mostlyStaticDataNode");
cacheSpi.addInterceptor(csi, index);
rootNode.getChild("mostlyStaticDataNode");
Basically, I remove the cache store interceptor before removing the child (this removes the local node but doesn't touch the database). I then add the interceptor back and retrieve the node. This will "refresh" the node from the database.
Of course, there are a couple problems with this code. The first is that I'm casting Cache to CacheSPI which I know is not recommended. The second is that it's pretty much a hack. Is there a more elegant way to accomplish this?
Dustin
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4238644#4238644
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4238644
More information about the jboss-user
mailing list