Tamanho do conjunto da sessão na memória base
O número do tamanho do conjunto de sessões na memória base depende da configuração do suporte de sessão.
- Com sessões na memória, o acesso à sessão é otimizado para até este número de sessões.
- Com sessões distribuídas, quando as sessões são armazenadas em um banco de dados ou em outra instância do WebSphere Application Server, o tamanho do conjunto também especifica o tamanho do cache e o número de atualizações de acesso recentes salvas no modo de atualização manual.
Para sessões distribuídas, quando o cache da sessão tiver alcançado seu tamanho máximo e uma nova sessão for solicitada, o recurso de Gerenciamento de Sessão removerá a sessão utilizada mais antiga do cache para liberar espaço para a nova.
Os requisitos gerais de memória para o sistema de hardware e as características de uso do site de e-business determinam o valor ideal.
Observe que aumentando o tamanho do conjunto de sessões em memória de base pode ser necessário aumentar os tamanhos de heap dos processos Java™ para os WebSphere Application Servers correspondentes.
Estouro em Sessões Não Distribuídas
Por padrão, o número de sessões mantidas na memória é especificado pelo tamanho do conjunto de sessões na memória de base. Se você não quiser colocar um limite no número de sessões mantidas na memória e permitir o estouro, defina overflow como true.
Permitir uma quantidade ilimitada de sessões pode potencialmente esgotar a memória do sistema e até possibilitar a sabotagem do sistema. Alguém pode gravar um programa prejudicial que atinge continuamente seu site e cria sessões, mas ignora quaisquer cookies ou URLs codificadas e nunca utiliza a mesma sessão de um pedido de HTTP para o outro.
Quando o estouro não é permitido o recurso de Gerenciamento de Sessão ainda retorna uma sessão com o método HttpServletRequest getSession(true) quando o limite de memória é alcançado, e esta é uma sessão inválida que não é salva. Qualquer tentativa de usar os resultados da sessão em um java.lang.IllegalStateException.
Com a extensão do WebSphere Application Server para HttpSession, com.ibm.websphere.servlet.session.IBMSession, um método isOverflow retornará true se a sessão for inválida. Um aplicativo pode verificar esse status e reagir da maneira adequada.