Have you tested to see if any of the the TcpListenerPorts are open on your
server? If you're on Linux you can try `netstat -l`

On Thu, 27 Jul 2017 at 15:52 Russell Sherk <russell.sh...@roguewave.com>
wrote:

> 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
> >
> >
> >
> >
>
>

Reply via email to