STRUTS - Perdendo valores da sessão

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.

Eu já tive problemas com concorrência no struts, mas eram em dados colocados em atributos da classe Action, dava problema pois o objeto da Action é compartilhado, esse problema tambem existe com servlets, já que o container não cria um objeto servlet para cada requisição, então, não devem ser usadas variaveis de instancia para quardar o estado da sessão em uma Action, não sei se é esse o seu caso, o meu tinha a ver com JPA e coisas desse tipo… Mas eu resolvi usando o JMeter para simular multiplos usuarios, e com um debug dá pra ver o problema, talvez te ajude tambem:

http://jakarta.apache.org/jmeter

Obrigado pela resposta, Jair. Já usei o JMeter para algumas coisas e vou usá-lo para testar isso.

Variáveis locais a um método do Action também dariam problema? Porque eu não uso variáveis de instância no Action.

Um abração.