Cenário:
É uma aplicação crítica que funciona com 600 usuários simultâneos em média. Há + ou - 6 meses aconteceu que usuários estavam ligando dizendo que quando se logavam na app aparecia o nome e os dados de outros usuários, ou seja, ao fazer login, o usuário estava entrando no perfil de outro usuário, ao analisarmos no adm do tomcat vimos que existiam as sessões dos dois usuários ativas mas com ids diferentes. Então pesquisamos e decidimos mudar o tomcat da Versão 6.0.26 para a 7.0.14.
Após 3 meses parecia que o problema tinha sido corrigido, mas os usuários voltaram a ligar relatando o mesmo problema.
De acordo com o perfil da aplicação isso é uma falha gravíssima.
Para mim isso é normal…problema seria 2 sessões com o mesmo id!! kkkkkkk Acredito que não é a raiz problema…
Pode ser problemas de escopo de objetos dentro da aplicação…o servidor não tem nada haver com isso…erro de programador kkk
maior_abandonado
e como vcs deixam esses dados?
em um objeto na sessão do usuário?
como inserem la?
poste seu código de omo insere na sessão se for esse o caso e como obtém estes dados…
jpjcjbr
Verifique se vocês utilizam algum tipo de threadlocal para armazenar valores, tive problemas com isso uma certa vez… os objetos não eram removidos do threadlocal e a mesma thread atendia requisicoes de varios usuarios, causando inconsistencias deste tipo…
flws
boby28
Obrigado pela celeridade amigos, segue código onde pegamos os dados da sessão e onde recuperamos estes dados e mostramos no jsp.
//coloca na sessão
HttpSession session = request.getSession();
Eu acho que esse não é o erro tb…
Não tem como dar erro nesse código pq a container garante que uma sessão não tem acesso a outra…
Vc disse que “estavam ligando dizendo que quando se logavam na app aparecia o nome e os dados de outros usuários,”
Isso pode ser cache de navegador…
boby28
Caro Fernando, são acessos de lugares físicos diferentes, como pode ser o cache do novegador?
leoramos
Perguntas:
tu usas DWR? Se estiver, confere o crossDomainSecurity;
o perfil dos dois usuários é diferente? Se for, tenta fazer com UM uma operação de OUTRO, pra ver se funciona ou se bloqueia. Motivo: talvez teu problema esteja nas pesquisas de usuário / perfil do teu sistema, e não nas sessões.
gilmaslima
Qual o framework MVC você está usando?
FernandoFranzini
Se for assim realmente não tem como…mas como vc não detalhou o cenário…kkkkk
Aquele código que vc mandou diz que é impossível de acontecer…pq o container não da acesso a vários objetos de sessões diferentes no mesmo http request…
Provavelmente é outra coisa…
Vc alterou alguma coisa do tomcat como Single Sign On ou clusters ??
Dan_xD
Boa Tarde Amigo.
Já verificou a sua camada de Acesso?
Cheguei a ver um problema semelhante uma vez, o problema estava na camada de acesso ao Banco, existia um determinado caso aonde por falta de alguns tratamentos, um usuario conseguia utilizar a sessão de outro usuario, devido a uma programação um tanto quanto errônea no SingleTown que fazia o acesso ao banco.
boby28
Caro gilmaslima usamos:
Spring
Struts…
boby28
Se for assim realmente não tem como…mas como vc não detalhou o cenário…kkkkk
Aquele código que vc mandou diz que é impossível de acontecer…pq o container não da acesso a vários objetos de sessões diferentes no mesmo http request…
Provavelmente é outra coisa…
Vc alterou alguma coisa do tomcat como Single Sign On ou clusters ??
Complicado de ajudar assim de longe
Aparentemente a aplicação esta ok…e o tomcat tb é esta ok…mas existe o problema! Algo esta errado kkkk
…eu teria que depurar o código para ver…
boby28
Dan xD:
Boa Tarde Amigo.
Já verificou a sua camada de Acesso?
Cheguei a ver um problema semelhante uma vez, o problema estava na camada de acesso ao Banco, existia um determinado caso aonde por falta de alguns tratamentos, um usuario conseguia utilizar a sessão de outro usuario, devido a uma programação um tanto quanto errônea no SingleTown que fazia o acesso ao banco.
Dan vc teria mais alguma observação, onde seria esse controle da camada de acesso? no server.xml do tomcat? o que seria configurado? ainda estamos com o problema e não conseguimos simular esse problema em homologação, o problema só da em produção
Abraços !!
J
jessika2811
Bom dia senhores,
Estou tendo exatamente o mesmo problema relatado nesse tópico e não sei mais o que fazer.
A aplicação roda perfeitamente até que alguns usuários tentam acessá - la simultaneamente e, ao que me parece, o tomcat “se perde” nas sessões abertas e mostra dados de outra sessão aberta.
Meu TomCat é o 7.0.34, estou usando JSF e o login do usuário eu pego pela rede, usando a biblioteca Jcifs.
Alguém tem alguma idéia do que possa ser? já debuguei todo o meu código, o escopo está correto e não consigo simular o problema em cenário de testes, apenas em produção.
Muito obrigada!
gomesrod
Um primeiro passo seria verificar se em algum momento a aplicação está usando variáveis não-locais em um servlet, ou variáveis static em qualquer classe. Certamente isso causaria problemas de “mistura” de dados de sessão.
FernandoFranzini
Eu aposto 100% que é erro relacionado com referências de objetos compartilhadas…
Veja se vc não esta compartilhando referencias nas sessão que pode ocasionar os erros citados…