Hi Greg, Don't know much about JCS. Just general Tomcat stuff.
See if this helps: http://sentineltechsupport.gemalto.com/2013/10/java-runtime-log-error-could-not-instantiate-auxfactory-named-dc/ If not, maybe someone else in the list can help. Cheers, --Russ -----Original Message----- From: Greg Parker [mailto:gmparker2...@gmail.com] Sent: July-27-17 10:07 AM To: Commons Users List <user@commons.apache.org> Subject: Re: JCS LateralTCPCacheFactory Thanks Russ, So the TcpListenerPort value should match the tomcat port? So if tomcat is running on port 6080 the cache.ccf on that instance should set TcpListenerPort=6080? I set things up this way and nothing seems to complain; however, now I get a SEVERE error on first access and caching is not working across the three instances. Here are the details: SEVERE [ajp-nio-6009-exec-1] org.apache.commons.jcs.engine.control.CompositeCacheConfigurator.parseAuxiliary Could not instantiate auxiliary cache named "hello". jcs.region.hello=LTCP jcs.region.hello.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes jcs.region.hello.cacheattributes.MaxObjects=1000 jcs.region.hello.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache jcs.region.hello.cacheattributes.UseMemoryShrinker=true jcs.region.hello.cacheattributes.MaxMemoryIdleTimeSeconds=3600 jcs.region.hello.cacheattributes.ShrinkerIntervalSeconds=60 jcs.region.hello.cacheattributes.MaxSpoolPerRun=500 jcs.region.hello.elementattributes=org.apache.commons.jcs.engine.ElementAttributes jcs.region.hello.elementattributes.IsEternal=false jcs.auxiliary.LTCP=org.apache.commons.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheFactory jcs.auxiliary.LTCP.attributes=org.apache.commons.jcs.auxiliary.lateral.socket.tcp.TCPLateralCacheAttributes jcs.auxiliary.LTCP.attributes.UdpDiscoveryEnabled=false jcs.auxiliary.LTCP.attributes.AllowGet=true jcs.auxiliary.LTCP.attributes.Receive=true jcs.auxiliary.LTCP.attributes.TcpListenerPort=6080 jcs.auxiliary.LTCP.attributes.TcpServers=localhost:7080,localhost:8080 Thanks > On Jul 27, 2017, at 8:57 AM, Russell Sherk <russell.sh...@roguewave.com> > wrote: > > Hi Greg, > > Tomcat uses two consecutive ports. The one you specify and the next one for > shutdown. E.g if you specify 8020, the shutdown port by default is 8021. > > Try spacing your ports out: 8020, 8022, 8024. > > --Russ > > > On Jul 26, 2017 10:11 PM, Greg Parker <gmparker2...@gmail.com> wrote: > I'm trying to get a sample cluster of tomcat servers (server A, B and C) to > use a distributed cache. The ‘hello’ cache is configured on each server with > a different TcpListenerPort on each server (8020, 8021, 8022) like this: > > jcs.region.hello=LTCP > … > > jcs.auxiliary.LTCP=org.apache.commons.jcs.auxiliary.lateral.socket.tcp > .LateralTCPCacheFactory > jcs.auxiliary.LTCP.attributes=org.apache.commons.jcs.auxiliary.lateral > .socket.tcp.TCPLateralCacheAttributes > jcs.auxiliary.LTCP.attributes.UdpDiscoveryEnabled=false > jcs.auxiliary.LTCP.attributes.AllowGet=true > jcs.auxiliary.LTCP.attributes.Receive=true > jcs.auxiliary.LTCP.attributes.TcpListenerPort=8020 > jcs.auxiliary.LTCP.attributes.TcpServers=localhost:8020,localhost:8021 > ,localhost:8022 > > > Server A has a page that sets a value in the cache like this: > > cache = JCS.getInstance("hello"); > cache.put(“message", “Hello from server A"); > > > Server B, and C try to get the value without setting it: > > cache = JCS.getInstance("hello"); > add(new Label("message", "Server B -> cache has : " + > cache.get(“message");)); > > > The first time I access the page on server A I get an exception - "Cannot > connect to localhost:8021”. If I access the page on each server then things > appear to start communicating; however, the “message” entry from the “hello” > region is set on server A and null on B and C. Sometimes I see the value on > server C displayed properly but never on server B. > > With a configuration like this should I expect to see values immediately > distributed to the other servers? > > Is there a way I should be bootstrapping the cache when the server starts? > If the servers need to communicate with one another it would seem to me that > they need to be listening long before the first time the server tries to > access the cache. > > For performance I would like to use the cache to store serialized XML data > instead of storing it in the session or a database. The data remains in the > cache while the user transforms it through several request cycles. So during > a request cycle the XML data would be retrieved, transformed, and stored back > in the cache. In a clustered environment I need the XML data available on > every server in the cluster. Is this an acceptable use case for JCS? > > Thanks > > > >