On 16/02/2012 15:55, Gregory Werner wrote: > In-line responses. Thanks for the ideas, I really do appreciate it. > > On Thu, Feb 16, 2012 at 10:43 AM, Christopher Schultz < > ch...@christopherschultz.net> wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> Gregory, >> >> On 2/16/12 10:34 AM, Gregory Werner wrote: >>> I didn't know that either. It is simply a case of looking for the >>> wrong keywords. I said application score replication they said >>> context attribute replication. I gotta learn how to speak their >>> language. >>> >>> Even after I put <Context >>> className="*org.apache.catalina.ha.context.ReplicatedContext*"> in >>> my context.xml >>> >>> and make sure that my application's web.xml has *<distributable >>> />* * * the following: >>> >>> 1. Map<String, Date> userCache = (Map<String, Date>) >>> context.getAttribute("userCache"); 2. >>> userCache.remove(remoteUserName); >>> >>> returns a null userCache object (context is set in the >>> ServletContextAware method, setServletContext). >> >> Is this all on the same server, or are you setting the attribute in >> one context and watching for it's value to be available in a different >> (replicated) one? >> >> > In this case it is a test environment. We are trying to emulate two > distinct physical servers/load-balancing (which is the real case) on a > single physical machine with one Tomcat instance. Looking at the logs we > can see some requests going to A and some going to B so it is load > balancing, but in the end I am only placing a single war file and starting > a single tomcat instance.
Huh? One instance, what use is that? p >> Just trying to understand the test case, here. >> >>> When I enumerate through all the context attributes, I cannot see >>> the stuff I am putting in it, just like the default entries which >>> wind up there. Too weird. >> >> Remember that it's not magic replication: Tomcat doesn't know when you >> modify the object itself. I suspect that if you modify the object >> itself (say, by adding elements to the cache) you'll have to do this: >> >> context.setAttribute("userCache", userCache); >> > > I do, that would be my next line. I just stopped there because the > userCache I retrieve from the context is null so I get a > NullPointerException crashing things before I get an opportunity to put it > back in the cache. > > >> >> You might want to consider using something like memcached or even a >> traditional database to share this kind of information: IMO they are >> much better equipped to do the kinds of things you want to do (and >> they are separated from the servlet API, which can either be a good >> thing or a bad thing for you). >> >> - -chris >> > -- [key:62590808]
signature.asc
Description: OpenPGP digital signature