To answer your responses, I took out the JDBC realm just as a "grasping for straws" move. I didn't think it should have an affect but I didn't think anything else should be either.
When I observed the session switching it was absolutely not a session time out. The session time out is set at 1800 seconds. I started refreshing the page (manually), saw the session ID, kept manually refreshing the page, observing the session ID, and then after one manual refresh the session ID changed. Pauses between refreshes would usually be less than a second. A long pause might be 1.5 to 2 seconds.
I tried the session manager property that you suggested and tried it with my clusterjsp test (pressing and holding F5) and I saw no problem with changing sessions. I was able to reproduce the issue by holding F5 fairly quickly. I know what you are saying about there being other problems with holding F5 but I wasn't able to produce any issues when I used the relaxCacheVersionSemantics.
Then I changed my app's session manager properties in sun-web.xml to add relaxCacheVersionSemantics:
<session-manager persistence-type="replicated">
<manager-properties>
<property name="persistenceFrequency" value="web-method"/>
<property name="relaxCacheVersionSemantics" value="true"/>
</manager-properties>
<store-properties>
<property name="persistenceScope" value="modified-session"/>
</store-properties>
</session-manager>
I ran my app using the same environment that I have been using and I did not see a problem with sessions. I was always able to reproduce the issue in less than a minute or so. I ran my app for at least 5 minutes and observed both nodes responding (by tailing the logs), and I saw no problems. I ran my app long enough that I'm confident the relaxCacheVersionSemantics solves the issue. It wouldn't seem that mod proxy or the virtual machines have any adverse affect.
I'll do some more testing with it, and maybe put in more nodes, but I think it's looking good now. I really appreciate your help on this, and if you think I shouldn't be confident about this, or have any suggestions with testing approaches. I be interested in hearing. Thanks.
[Message sent by forum member 'doal']
http://forums.java.net/jive/thread.jspa?messageID=468934