Thanks Thomas. Thanks & Regards, Narendra Verma
-----Original Message----- From: Thomas Vandahl [mailto:t...@apache.org] Sent: Wednesday, December 28, 2011 7:17 PM To: Commons Users List Cc: JCS Users List Subject: Re: Need Help on JCS Remote Cache On 26.12.11 09:11, Narendra Verma wrote: > Hi All, > > I have made setup of JCS in my Linux environment and trying to make a POC > using Remote Cache. I cannot help you much with this problem. Just a hint that the users list for JCS changed to u...@commons.apache.org. I redirected your message to there. Bye, Thomas. > > My System Setup: > > > * RMI Server : Running on 10.55.164.215 (using RMI Start up Servlet) > > * Client-1: Running on box 10.55.164.215 on same machine where serer > is running > > * Client-2: Running on box 10.55.164.45 > > > My Configuration Files: > > * Server Configuration > > > # ---------------------------------------------- > # Registry used to register and provide the > # IRemoteCacheService service. > registry.host=10.55.164.215 > registry.port=1102 > # call back port to local caches. > remote.cache.service.port=1102 > # rmi socket factory timeout > remote.cache.rmiSocketFactoryTimeoutMillis=5000 > # cluster setting > remote.cluster.LocalClusterConsistency=false > remote.cluster.AllowClusterGet=false > # ---------------------------------------------- > > # DEFAULT CACHE REGION > jcs.default= > jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.default.cacheattributes.MaxObjects=1000 > jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > > # PRE-DEFINED CACHE REGIONS > jcs.region.userCache= > jcs.region.userCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.region.userCache.cacheattributes.MaxObjects=1000 > jcs.region.userCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > jcs.region.userCache.cacheattributes.UseMemoryShrinker=false > jcs.region.userCache.cacheattributes.MaxMemoryIdleTimeSeconds=3600 > jcs.region.userCache.cacheattributes.ShrinkerIntervalSeconds=60 > jcs.region.userCache.cacheattributes.MaxSpoolPerRun=500 > jcs.region.userCache.elementattributes=org.apache.jcs.engine.ElementAttributes > jcs.region.userCache.elementattributes.IsEternal=false > > > > > > > * Client-1 and Client-2 Configuration at separate boxes - See the > above in System Setup Section > # DEFAULT CACHE REGION > # sets the default aux value for any non configured caches > jcs.default=RC > jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.default.cacheattributes.MaxObjects=1000 > jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > jcs.default.elementattributes.IsEternal=false > jcs.default.elementattributes.MaxLifeSeconds=3600 > jcs.default.elementattributes.IdleTime=1800 > jcs.default.elementattributes.IsSpool=true > jcs.default.elementattributes.IsRemote=true > jcs.default.elementattributes.IsLateral=false > > # CACHE REGIONS AVAILABLE > > # Regions preconfigured for caching > jcs.region.userCache=RC > jcs.region.userCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.region.userCache.cacheattributes.MaxObjects=1200 > jcs.region.userCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > jcs.region.userCache.elementattributes.IsEternal=false > jcs.region.userCache.elementattributes.MaxLifeSeconds=7200 > jcs.region.userCache.elementattributes.IdleTime=1800 > jcs.region.userCache.elementattributes.IsSpool=true > jcs.region.userCache.elementattributes.IsRemote=true > jcs.region.userCache.elementattributes.IsLateral=false > > # Remote RMI Cache set up to failover > # This remote client does not receive > jcs.auxiliary.RC=org.apache.jcs.auxiliary.remote.RemoteCacheFactory > jcs.auxiliary.RC.attributes=org.apache.jcs.auxiliary.remote.RemoteCacheAttributes > jcs.auxiliary.RC.attributes.FailoverServers=10.55.164.215:1102 > jcs.auxiliary.RC.attributes.LocalPort=1202 > jcs.auxiliary.RC.attributes.RemoveUponRemotePut=true > jcs.auxiliary.RC.attributes.RmiSocketFactoryTimeoutMillis=5000 > jcs.auxiliary.RC.attributes.GetOnly=false > jcs.auxiliary.RC.attributes.Receive=true > > > > > > > > Client Test Programs: > > Input parameters while running client-1 : java com.brightsky.util.JCSTest > /cache-client1.ccf > Input parameters while running client-2 : java com.brightsky.util.JCSTest > /cache.ccf-client1 > > > package com.brightsky.util; > import java.util.Date; > > /* > * This code is property of BrightSky, Inc. Use, duplication and disclosure > * in any form without permission of copyright holder is prohibited. > * > * (C) Copyright BrightSky, Inc. 2011. All rights reserved. > */ > > /** > * @author nverma > * > */ > public class JCSTest { > public static void main(String a[]) throws InterruptedException { > > System.out.println("\n > =======================================================================================\n" > ); > System.out.println("\n =================================== QA Node - > "+a[0]+ "================================\n" ); > System.out.println("\n > =======================================================================================\n" > ); > > System.out.println("\n ----------------------------------Initializing > JCS....\n" ); > > > CacheManager cm = CacheManager.getInstance(a[0]); > > System.out.println("\n ----------------------------------Initialized > Successfully.\n" ); > > int userId = 1; > int notificationCount = 10 ; > int loopCount = 5 ; > int threadSleepSec = 2 ; > > > userId = 1; > notificationCount =10; > loopCount =5; > threadSleepSec =2; > > UserCacheObj userObject; > // If no, then write and fetch in loop > // if yes, no write only fetch object of passed userid > if("no".equals(a[6])){ > > // Create Object > userObject = new UserCacheObj(); > userObject.setUserId(userId); > userObject.setNotificationCount(notificationCount); > > System.out.println("\n ----------------------------------Storing > object into cache....\n" ); > // Store the object into cache > cm.storeUserbj(userObject); > > System.out.println("\n ----------------------------------Stored > Successfully.\n" ); > > } > > > System.out.println("\n ---------------Starting loop to fetch and > increment notification count for userId ["+userId+"] .....\n" ); > > for(int i=1; i<=loopCount; i++){ > > System.out.println("\n -----------[Attemp : "+i+"] \n" ); > > Date date = new Date(); > > userObject = cm.getUserObj(userId); > > System.out.println("\n ----------- ["+date+"] Fetched > Notification Count = "+userObject.getNotificationCount()); > > int notificationCnt = userObject.getNotificationCount() + 1; > > userObject.setNotificationCount(notificationCnt); > > date = new Date(); > > System.out.println("\n ----------- Incremented notification count > ["+notificationCnt+"] "); > > cm.storeUserbj(userObject); > > System.out.println("\n ----------- ... ["+date+"] Pushed to > updated object "); > > > Thread.sleep(1000 * threadSleepSec); > > } > > System.out.println("\n ----------- Loop End. !!!! Good Bye !!!!\n" > ); > > } > } > > > > Question and Problem: > > When I put any object from either client-1 or client-2 then server shows log > that it is creating listener for corresponding clients. And event is put > successfully. > > Server logs on Client-1 Run > > 2011-12-25 15:46:12,801 INFO > [org.apache.jcs.auxiliary.remote.server.RemoteCacheServer] (RMI TCP > Connection(78)-10.55.164.145) adding vm listener under new id = [46], > listenerAddress [127.0.0.1] > 2011-12-25 15:46:12,801 INFO > [org.apache.jcs.auxiliary.remote.server.RemoteCacheServer] (RMI TCP > Connection(78)-10.55.164.145) Region userCache's listener size = 2 > > Server logs on Client-2 Run > > 2011-12-25 16:04:11,509 INFO > [org.apache.jcs.auxiliary.remote.server.RemoteCacheServer] (RMI TCP > Connection(91)-10.55.164.215) adding vm listener under new id = [48], > listenerAddress [10.55.164.215] > 2011-12-25 16:04:11,509 INFO > [org.apache.jcs.auxiliary.remote.server.RemoteCacheServer] (RMI TCP > Connection(91)-10.55.164.215) Region userCache's listener size = 3 > > > Scenario-1: > When I put object from client-2 and access it in client-1, it is fetched > successfully. But when I update it in client-1 and pushed it again then > clien-2 does not access the object with same ID and null pointer exception > comes. Event when I try to access it again with client-1 again null pointer > exception comes. Need to confirm why object is not accessible after updating > by any of the client? > > Scenario-2: > When I put object from client-1 and access it in client-2, it never fetched. > Need to confirm why client-2 never access the object put by the client-1? > Where client-1 access once if client-2 puts. > > > Please help/guide me to resolve these issues. > > Thanks & Regards, > Narendra Verma > > > ________________________________ > NOTICE TO RECIPIENT: THIS E-MAIL (INCLUDING ANY ATTACHMENTS) IS MEANT FOR > ONLY THE INTENDED RECIPIENT OF THE TRANSMISSION, MAY CONTAIN CONFIDENTIAL > INFORMATION, AND IS PROTECTED BY LAW. IF YOU RECEIVED THIS E-MAIL IN ERROR, > PLEASE IMMEDIATELY NOTIFY THE SENDER OF THE ERROR BY RETURN E-MAIL, DELETE > THIS COMMUNICATION AND SHRED ANY ATTACHMENTS. UNAUTHORIZED REVIEW, USE, > DISSEMINATION, DISTRIBUTION, COPYING OR TAKING OF ANY ACTION BASED ON THIS > COMMUNICATION IS STRICTLY PROHIBITED. > --------------------------------------------------------------------- To unsubscribe, e-mail: jcs-users-unsubscr...@jakarta.apache.org For additional commands, e-mail: jcs-users-h...@jakarta.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: jcs-users-unsubscr...@jakarta.apache.org For additional commands, e-mail: jcs-users-h...@jakarta.apache.org