Não-validação planejada
Em vez de confiar no cronômetro de invalidação periódica, executado em um intervalo baseado no parâmetro de tempo limite da sessão, é possível definir tempos específicos para o recurso de gerenciamento de sessão para varrer a ocorrência de sessões invalidadas em um ambiente distribuído.
Quando utilizado com sessões distribuídas, esse recurso tem os seguintes benefícios:
- É possível planejar a varredura de sessões invalidadas nos momentos de pouca atividade do servidor de aplicativos, evitando a contenção entre varreduras de invalidação de banco de dados ou outra instância do WebSphere Application Server e operações de leitura e gravação para pedidos de sessão HTTP do serviço.
- Um número significativamente menor de operações de gravações externas pode ocorrer ao executar com o modo de gravação do Método de Fim de Serviço, porque o último tempo de acesso da sessão não precisa ser gravado em cada pedido HTTP. (As opções Atualização Manual e Gravação Baseada em Tempo já reduzem a gravação da hora do último acesso).
- O gerenciador de sessões invalida sessões somente no tempo planejado, portanto, as sessões estão disponíveis para um aplicativo se elas são solicitadas antes de a sessão ser invalidada. A seguir estão contraprestação de uso:
- Com a invalidação planejada configurada, os tempos limites de HttpSession não são utilizados de forma estrita. Em vez disso, todo o processamento de invalidação é tratado nas horas de invalidação configuradas.
- O processamento de HttpSessionBindingListener é tratado nas horas de invalidação configuradas, a menos que o método HttpSession.invalidate seja chamado explicitamente.
- O método HttpSession.invalidate invalida imediatamente a sessão para o cache de sessão e para o armazenamento externo.
- O encadeamento de invalidação periódico ainda executa com invalidação planejada. Se a hora atual do dia não corresponde àquela nas horas configuradas, as sessões que excederem o intervalo de invalidação são removidas do cache, mas não do armazenamento externo. Outro pedido para a sessão resultará no retorno da sessão ao cache.
- Ao executar o encadeamento de invalidação periódico durante uma das horas configuradas, todas as sessões que excederam o intervalo de invalidação são invalidadas por remoção do cache e do armazenamento externo.
- O encadeamento de invalidação periódica pode ser executado mais de uma vez durante uma hora e não necessariamente é executado pontualmente.
- Se for especificado um intervalo para o encadeamento de invalidação periódica utilizando a propriedade de personalização HttpSessionReaperPollInterval, não especifique um valor de mais de 3600 segundos (1 hora) para assegurar-se de que o processo de invalidação ocorre, pelo menos, uma vez por hora.