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]

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to