You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Alexander Murmann (Jira)" <ji...@apache.org> on 2022/04/22 14:18:00 UTC
[jira] [Updated] (GEODE-10256) HttpSessionListener is not working
[ https://issues.apache.org/jira/browse/GEODE-10256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Murmann updated GEODE-10256:
--------------------------------------
Labels: needsTriage (was: )
> HttpSessionListener is not working
> ----------------------------------
>
> Key: GEODE-10256
> URL: https://issues.apache.org/jira/browse/GEODE-10256
> Project: Geode
> Issue Type: Bug
> Components: expiration, http session
> Reporter: Masaki Yamakawa
> Priority: Major
> Labels: needsTriage
>
> I am using "HTTP Session Management Module for Tomcat".
> When data managed in a session expires, I want to use HttpSessionListener to handle the deletion of the associated data.
> However, the sessionDestroyed method is not called when the session expires.
> When session expiration is enabled, org.apache.geode.modules.util.SessionCustomExpiry is set in all CacheServers and Clients.
> And when expiration occurs, ExpirationAction.DESTROY is executed.
> DESTROY is executed on all CacheServers and clients at about the same time, and the result of the deletion on the CacheServer is propagated to clients.
> At that time, the operation type of the message sent from the CacheServer to clients is DESTROY.
> SessionExpirationCacheListener is set in the client, but HttpSessionListener#sessionDestroyed will only be executed if Operation.EXPIRE_DESTROY.
> HttpSessionListener#sessionDestroyed is executed if the expiration process is run first on the client side, but HttpSessionListener#sessionDestroyed is executed if the CacheServer's DESTROY event is received first. sessionDestroyed is not executed.
> We should send the EXPIRE_DESTROY event from CacheServer, but I think this has a big impact.
> Therefore, I have introduced a Java system property that delays expiration processing on the CacheServer.
> By setting this, HttpSessionListener#sessionDestroyed will surely be executed by delaying the server-side expiration processing rather than the client's expiration processing.
> Also, if this system property is not set, the behavior will be the same as the current.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)