Problemasso ejb/jboss

7 respostas
J

Olá, estou com um grande problema que eu não consigo resolver, primeiramente gostaria de saber se tem alguem de joinville que acessa o forum no qual eu poderia estar tentando mostrar o código, caso contrário vou tentar explicar.

peguei um sistema pronto desenvolvido em Java+Struts+EJB+JBOSS+Mysql, até ai sem problema, a rotina funciona ± assim:
o cara acessa o form, vai ter la o ClasseAction.java e ClasseForm.java, eles são responsaveis por interagir com o JSP, o Action chama o command, no qual é um metodo execute que chama a rotina que eu quero dentro de um session esse session por sua vez chama um helper que faz as validações necessárias, preenche as coleções e tudo mais, esse helper chama um Util que faz a pesquisa no banco e alimenta o EJB.

no meu caso eu tenho o BoletoVO, que por sua vez tem o código do PagamentoVO, que tem a DividaVO, a DividaVO tem o PessoaVO.

excplicando:

BoletoVO tem um getPagamentoVO que por sua vez tem um getDividaVO, que tem um getPessoaVO.

quando faço uma pesquisa de boletos pagos por exemplo, ele procura todas as situações pagas e alimenta um BoletoVO que é jogado pra uma lista, no DAOMysql eu aliemento assim:

BoletoBancarioEJB ejb = (BoletoBancarioEJB) bean;

	ejb.setBoletoBancarioUID(new Integer(rs.getInt(1)));
        ejb.setPagamentoUID(new Integer(rs.getInt(2))); //estou alimentando o UID do PagamentoVO para quando
eu pegar o .getPagamentoVO  trazer a dívida.
	ejb.setNumeroDocumento(rs.getString(3));
.
.
.

e assim por diante, ele faz tudo certinho… agora depois de umas 2, 3 horas (nunca tem um tempo certo) que o jboss está startado é como se ele se perdesse alguma referência entre o PagamentoVO e o DividaVO,
primeiro ele nao acessa mais o DAOMysql ou seja… nao faz mais o codigo ali de cima…
na primeiras vezes, quando eu alimento o PagamentoVO, ele alimenta a DividaVO e quando dou um getDividaVO ele pega a divida certa, porém depois desse tempo ele alimenta o DividaVO com o código do PagamentoVO, dai a bagunça toda.

perguntas:

  1. pode ser no código isso? pois senão não funcionaria na primeira vez
  2. pode ser no jboss? como faço pra verificar?
  3. tem alguma opção para ZERAR, dar um REFRESH em tudo sem tirar o sistema do ar?
  4. alguma opção no xdoclet?
  5. alguém de joinville pelo amor de Deus que conheça isso tudo e que esteja afim de dar uma olhada no problema? quem sabe até negociamos uma caixa de cerveja… ( :smiley:

muito obrigado

7 Respostas

Roger75

Pode ser que a sessão do usuário tenha expirado. Esse problema ocorre depois do sistema ficar parado por muito tempo? Aumente o tempo de expiração da sessão, pode ser isso.

Também verifique se não perdeu a conexão do banco. Daí você também poderia alterar o código pra fazer a conexão de novo caso tenha sido perdida, quando precisar acessar os dados.

J

Roger, você sabe me dizer onde acho essa opção de expiração da sessão?
por nao saber o de quanto em quanto tempo isso ocorre eu não sei dizer…mas seria um primeiro parâmetro e tentativa…

Roger75

Dentro do web.xml há uma tag:

<session-config> <session-timeout>180</session-timeout> </session-config>

O tempo é em minutos. Se não me engano o default é de 30 minutos.

J

no meu arquivo nao tinha nada.,., ai coloquei la…

vou fazer alguns testes…

com 1 min. 10 min.

depois posto aqui novamente o resultado

obrigado

J

Roger… fui la e coloquei pra expirar a sessão conforme vc falou, coloquei 1 min.
realmente ele pede a senha novamente mas ele nao acessa o DAOMysql…vc tem uma maneira rápida e simples de sempre forçar o acesso ao DAOMysql?

J

fiz o teste com 2 usuarios diferentes… eles são independentes… gostei disso, caso o usuario 1 parou de acessar, passado 1 min ele vai pedir senha novamente, mesmo o usuario 2 nao tendo parado de mecher no sistema… só queria que ele sempre fizesse a consulta e zerasse todos os VOs agora

Roger75

joeydike:
Roger… fui la e coloquei pra expirar a sessão conforme vc falou, coloquei 1 min.
realmente ele pede a senha novamente mas ele nao acessa o DAOMysql…vc tem uma maneira rápida e simples de sempre forçar o acesso ao DAOMysql?

Aí no caso você tem que dar uma olhada no código pra fazer forçar a conexão de novo.

Criado 3 de maio de 2007
Ultima resposta 3 de mai. de 2007
Respostas 7
Participantes 2