[jboss-user] [JBossCache] - Re: how to support treecache transaction in CMT
confuz
do-not-reply at jboss.com
Sun Aug 20 23:46:07 EDT 2006
"bstansberry at jboss.com" wrote : That looks like it should work. The cache should be participating in the tx as a Synchronization, and when the tx rolls back, the cache modifications should roll back.
|
| What specifically do you do in "cacheoperation"?
the session bean method will invoke this method. forgive for the disorder code.
|
| public String checkAccess(String key1) throws Exception {
| String key = key1.substring(0,2);
| String value = key1;
| String command = key1.substring(2,5);
| TreeCache cache = CacheFactory.getCache();
|
|
| if("add".equals(command)){
| Address add = ((Person)cache.get("/test/p1","p1")).getAddress();
| add.setCity(value);
| cache.put("/test/a1","a1" ,add);
|
| if("pp".equals(key)){
| System.out.println("Gettttttttttttttbefore:a1=" + cache.get("/test/a1","a1"));
| throw new Exception("throw exception for rollback");
| }
|
| }
| else{
| boolean inCache = cache.exists("/test/" + key,key);
| boolean inLoader = false;//cache.getCacheLoader().exists(Fqn.fromString("/test/" + key));
| System.out.println("Exists in cache:" + inCache + " exists in loader:" + inLoader);
| Object o = (cache.get("/test/" + key,key));
| if(o != null)
| value = o.toString();
| System.out.println("Get:" + key + "=" + value);
| }
|
|
| System.out.println("Gettttttttttttttafter:a1=" + cache.get("/test/a1","a1"));
|
| return value;
| }
|
CacheFactory.getCache()
|
| public static synchronized TreeCache getCache(){
| if(CACHE != null) return CACHE;
| initCache();
| return CACHE;
| }
|
|
| private static void initCache(){
| try{
| CACHE = new TreeCache();
| PropertyConfigurator pc = new PropertyConfigurator();
| pc.configure(CACHE, "tree-service.xml");
|
| CACHE.startService();
|
| Person p1 = new Person();
| p1.setName("P1");
| Person p2 = new Person();
| p2.setName("P2");
| Address add = new Address();
| add.setCity("SZ");
| add.setStreet("NR");
| add.setZip(3009884);
| p1.setAddress(add);
| p2.setAddress(add);
|
| CACHE.put("/test/p1","p1", p1);
| CACHE.put("/test/p2", "p2", p2);
| CACHE.put("/test/a1", "a1",add);
| }
| catch(Exception e){
| e.printStackTrace();
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966356#3966356
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966356
More information about the jboss-user
mailing list