Olá, pessoal.
Estou com um problema que está tirando meu sono: tenho um sistema em produção que usa o Struts 1.2.7. Quando o acesso concorrente aumenta (vários usuários logados ao mesmo tempo no sistema), ocorrem perdas de valores de sessão, mas, ratificando, só quando o acesso concorrente é alto. Parece-me que o Struts se confunde e mistura a sessão de um usuário com outro e acaba acontecendo o erro (é uma suspeita).
Sei que cada usuário tem sua sessão em particular (isto está na documentação do Tomcat, Struts, etc), mas nesse problema em específico parece-me que o acesso concorrente está ocasionando algum bug.
Achei um post parecido no ServerSide, mas o cara não fala como solucionou:
http://www.theserverside.com/discussions/thread.tss?thread_id=31191
Todos os objetos que armazeno na sessão implementam a interface Serializable. Quando o sistema é testado, funciona perfeitamente. Só quando é colocado em produção que o problema acontece. E o estranho é que somente uma parte dos dados se perdem. A sessão é a mesma não sendo outra que foi criada, porque todos os objetos são colocados uma vez na sessão e retirados de uma só vez. Não existem inserções e remoções parciais no meu caso. Então, se era para sumir, tinha que sumir todos os valores (caso fosse um bug no meu código), mas some somente uma parte deles e, pior, aleatoriamente (uma hora um outra hora outro).
Alguém já teve um problema parecido? E se sim, chegou a uma solução?
Um grande abraço.