Pergunta

Estou executando uma aplicação web J2EE no Tomcat, e recentemente eu fui encarregado com a adição de métricas para a aplicação. Eu estou usando um SessionListener para detectar quando a sessão é destruída, e depois fazer o upload das métricas para um banco de dados. Meu tempo limite da sessão é definida no meu web.xml a 30 minutos, e eu não estou invalidando a sessão em qualquer lugar por meio de programação. Muitas vezes, durante 05-10 janeiro período de me fazer o login para testes minuto, eu vou ver 3 ou 4 conjuntos de métricas enviados ao banco de dados, todos com diferentes sessão ID do.

Além web.xml e session.invalidate (), o que mais pode causar uma sessão no Tomcat para ser destruído? Exceções? Will Tomcat sessões sempre aleatoriamente Invalidate?

Foi útil?

Solução

Possivelmente o seu webbrowser decidiu não enviou o cookie de sessão em uma solicitação para o webapplication, onde a sua aplicação teria esperado um. Eu já vi isso acontecer com uma regra de apache reescrever; uma URL fora do caminho de sessão de cookie foi redirecionado para a aplicação web. Há algo como o folowing aconteceu (detalhes pode estar errado):

  • minha aplicação web foi localizado em / app /
  • , assim, o cookie de sessão foi obrigado a este caminho / app /
  • uma página na webapplication referido /img/magic.jpeg
  • o navegador não enviou o cookie de sessão no seu pedido para esta imagem (caminho não corresponder)
  • o servidor redirecionou a solicitação (internamente) para / app / createImage? Mágica
  • a aplicação web não recebeu um cookie de sessão, por isso criou uma nova sessão

Você deve ser capaz de ver se isso faz com que seu problema se você registrar a URL inicial para novas sessões.

Outras dicas

Este provavelmente não é o que está acontecendo em seu servidor, mas se a hora do sistema está definido para a frente no servidor, isso pode causar sessões para expirar mais rápido do que um "tempo decorrido" de 30 minutos. Tomcat - pelo menos a partir de 5,5 -. Usado "relógio" para expirar sessões, de modo a mudar o relógio do sistema efetuará duração da sessão

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top