Hi Eric,
(top posting as I'm writing from my mobile)
Verbose logging: try FINE instead of DEBUG. You can also checkout the msm sample webapp (https://github.com/magro/msm-sample-webapp/tree/simpleservlet simpleservlet branch, in runtime/tomcat1/conf) for comparison
Does it work with a single memcached only?
Does it work with lockingMode NONE?
Does it work without CAS?
Can you attach complete log output for two requests?
Can you run memcached with -vv and attach log output?
Cheers,
Martin
On 04/11/2011 02:09 AM, Eric B wrote:
> Martin,
> Adding "de.javakaffee.level=FINE" to the end of the conf/
> logging.properties file did the trick. I was able to see debug output
> in catalina.out.
Great. I just added a hint regarding this log configuration to
SetupAndConfiguration.
>
> I switch my Apache connector from mod_proxy to mod_jk and MSM just
> started working (at least in my Staging environment).
Wow, interesting! Do you know the reason? Didn't mod_proxy pass the
cookie correctly?
Btw, the new mod_jk is mod_proxy_ajp, you might also try this one.
>
> Thank you for responding to my question so quickly and making this
> great addition to Tomcat.
You're welcome! :-)
One thing I'd be interested in is how lockingMode AUTO works for you.
Non-sticky session mode (and lockingMode AUTO) is relatively new, also I
don't have an own production environment running this combination. So if
you could share your experiences this would be really great!
Cheers,
Martin
Hi Eric,
did/can you try setting sessionBackupAsync="false"?
If you can just post tomcat logs and memcached output (when running with -vv) I can have a look.
Cheers,
Martin
I checked the code again I found a potential reason for the missing
validity infos: The validity info was set at the end of the request via
the memcached client (spymemcached), but without waiting for the result.
As spymemcached maintains its own thread/queue for communication with
memcached, it might have happened that the servlet request/response
returns, but the validity info is not yet stored in memcached. So when
the next request for the session comes in very fast (perhaps due to a
redirect, ajax call etc.) the validity might not be found in memcached -
which results in the warning you're seeing.
The attached msm jar contains a fix for the validity info: it now
respects the sessionBackupAsync and sessionBackupTimeout settings. So,
if sessionBackupAsync="false" and sessionBackupTimeout="500", msm waits
(now also when storing the validity info) 500 millis.
Cheers,
Martin
--
Martin Grotzke
http://twitter.com/martin_grotzke
Attached is a jar with a fix, just for the case s.o. would be interested
in the fix.
Sorry and cheers,
Martin