Eric Shu created GEODE-7478:
-------------------------------

             Summary: Geode session management fails to replicate if 
enableLocalCache is set to true in Tomcat module for client-sever setting
                 Key: GEODE-7478
                 URL: https://issues.apache.org/jira/browse/GEODE-7478
             Project: Geode
          Issue Type: Bug
          Components: http session
            Reporter: Eric Shu


Currently geode default setting on enableLocalCache is set to false due to 
GEODE-7477.

If enableLocalCache is set to true, the session replication would fail in 
client-server case.

This is caused by the following code:
{code}
      if (sessionRegion.getAttributes().getDataPolicy() == DataPolicy.EMPTY) {
        sessionRegion.registerInterest("ALL_KEYS", InterestResultPolicy.KEYS);
      }
{code}

And
{code}
    /*
     * If we're using an empty client region, we register interest so that 
expired sessions are
     * destroyed correctly.
     */
    if (!getSessionManager().getEnableLocalCache()) {
      region.registerInterest("ALL_KEYS", InterestResultPolicy.KEYS);
    }
{code}

The implementation would cause only one Tomcat local client cache has the 
correct data for the session. If a user tries on to any other Tomcat instance, 
it would be a cache miss as the session data is not sent to other client 
caches. This would trigger a get from the server, and bring in the session data 
to the new client cache (in the new Tomcat instance). So far we do not have 
data replication problem.

However, if there is an update on the session (adding a new attribute or update 
an existing attribute), these update of the session would not be replicated to 
the other Tomcat instance. If user failed over/land on different Tomcat, the 
session data are different.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to