[jboss-user] [JBossCache] - AsyncCacheLoader
karnivas
do-not-reply at jboss.com
Fri Mar 16 02:08:55 EDT 2007
I want to use jdbc writes in async mode. I've tailored MyAsyncCacheLoader extending AsyncCacheLoader with overridden put methods. I'm calling super(new JDBCCacheLoader) in the constructor and loading the config file. Unexpectedly my properties file alone gets loaded, but doesn't call my put method which i've overrided, instead it writes to the DB directly. Please suggest me how to proceed. Alternate solutions are welcomed.
My Code goes as
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import org.jboss.cache.DataNode;
import org.jboss.cache.Fqn;
import org.jboss.cache.PropertyConfigurator;
import org.jboss.cache.TreeCache;
import org.jboss.cache.loader.AsyncCacheLoader;
import org.jboss.cache.loader.AsyncExtendedCacheLoader;
import org.jboss.cache.loader.ExtendedCacheLoader;
import org.jboss.cache.loader.FileCacheLoader;
import org.jboss.cache.loader.JDBCCacheLoader;
import org.jboss.cache.loader.JDBCExtendedCacheLoader;
public class MyAsyncCacheLoader extends AsyncCacheLoader {
private static long timeStamp;
private static long oneHrtimeStamp;
public MyAsyncCacheLoader(){
super(new JDBCCacheLoader());
Properties cfg = new Properties();
try {
cfg.load(new FileInputStream(new File("async.properties")));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Read the value : " + cfg);
String key = "cache.async.batchSize";
String val = cfg.getProperty (key) ;
System.out.println("Read the value : " + val);
this.setConfig(cfg);
timeStamp=0;
oneHrtimeStamp=0;
}
public Object put(Fqn name, Object key, Object value) throws Exception{
System.out.println("Inside MyAsyncCacheLoader put....");
if(!name.getLast().equals("operation"))
{
System.out.println(name.toString()+ " written to DB");
super.put(name, key, value);
}
else
System.out.println(name.toString()+ " will not be written to DB");
return value;
}
public void put(Fqn name, Map attributes) throws Exception
{
System.out.println("Inside MyAsyncCacheLoader Put (map) method :: Fqn = "+ name );
if(!name.getLast().equals("operation"))
{
System.out.println(name.toString()+ " written to DB");
super.put(name, attributes);
}
else
System.out.println(name.toString()+ " will not be written to DB");
}
}
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4028677#4028677
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4028677
More information about the jboss-user
mailing list