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
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…
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…
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.
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 ??
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.
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 ??[/quote]
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…
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.[/quote]
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
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.
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.
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…