Dúvida usando o BMP e DAO  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
rodrigozim
Thread.start()

Membro desde: 08/06/2006 09:56:20
Mensagens: 44
Offline

Amigos, estou com um problema que não estou conseguindo resolver.. e já faz um bom tempo: vamos la:

eu uso o JBoss 3.2.5 como servidor, J2ee 1.3, EJB, BMP, e DAO para fazer o sql. quando eu starto o servidor pela primeira vez, faço uma consulta no banco, pela tela do sistema (tela do usuario) ele me traz os dados corretos, quando eu insiro alguns dados novos (ele usa outro EJB e DAO para fazer isso), quando eu vou la fazer outra consulta ele não me traz atualizado, e depois de um tempo (aproximadamente 30min), ele me traz tudo bagunçado, fora de ordem por exemplo: alguns valores mensais, Janeiro é 1000, Fevereiro eh 2000, Março é 3000, depois desse tempo ele traz Janeiro é 3000, Fevereiro eh 1000, Março é 2000, nem sempre na mesma ordem. e não traz o valor atualizado.

se eu fizer o select na mão direto no BD (mysql) ele me traz correto, inclusive os novos dados inseridos anteriormente,

um amigo aqui do fórum me disse que talvez tenha uma estratégia de cache ai no meio, mas se tiver eu não to sabendo gerenciar, se for uma configuração padrão não estou conseguinido nem achá-la. vou postar as duas classes aqui, o BMP (gerado pelo xdoclet) e o DAO,

valeu

Rodrigo






DAO


Rodrigo Zimmermann
[MSN]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

Hmmm...

Só por curiosidade, tente remover a cláusula "GROUP BY" do comando SQL do método findByAno. Isso pode estar embaralhando tudo.

Uma outra dica, que nada tem a ver com seu problema, mas ajuda muito a tornar o código mais legível. extraia os comandos SQLs para alguma constante na sua classe DAO. Algo como:


Daniel Quirino Oliveira
[Email] [WWW]
rodrigozim
Thread.start()

Membro desde: 08/06/2006 09:56:20
Mensagens: 44
Offline

vou testar, essa dica, agora olha só que estranho, coloquei uns System.out la no DAO pra ver o que ele traz do banco, enquanto nao passar uns 30 min do servidor "startado" ou se eu não reiniciar ele, ele nem acessa mais o DAO, parece que tem algo no cache mesmo, pois não apareceu os System.out de lá, agora vou esperar esse tempo pra ver se o "group by" ta fazendo a diferença...


Rodrigo Zimmermann
[MSN]
rodrigozim
Thread.start()

Membro desde: 08/06/2006 09:56:20
Mensagens: 44
Offline

Olha só galera, eu tirei o group by conforme o Daniel sugeriu, e depois e 30 min. ele voltou acessar o EJB+DAO e agora ele repete o valor de fevereiro em janeiro, mas pelo menos os outros meses vieram corretos...ou seja. ainda tá se perdendo em alguma coisa no sql


Rodrigo Zimmermann
[MSN]
rodrigozim
Thread.start()

Membro desde: 08/06/2006 09:56:20
Mensagens: 44
Offline

amigos, o problema não é mais no DAO... quando eu seto esses valores numa classe pública para o Action jogar no relatório é que está trazendo valores errados...

Rodrigo Zimmermann
[MSN]
rodrigozim
Thread.start()

Membro desde: 08/06/2006 09:56:20
Mensagens: 44
Offline

cheguei a conclusão que tenho que forçar sempre a executar o findByAno e o load como se fosse a primeira vez!!

sugestões?

Rodrigo Zimmermann
[MSN]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team