Perda de conexão do Jboss 3.2.7 com o Jboss 3.2.6 não é restabelecida

2 respostas
afamorim

Galera o negocio é o seguinte, tenho um servidor que pode ser considerado o servidor web que roda um jboss 3.2.7 com o site do cliente, na rede interna tenho um servidor rodando o sistema interno com um jboss3.2.6, quando acontece de ter que reiniciar o servidor interno (seja a maquina ou o proprio jboss), por atualização de versão ou outro problema qualquer, o jboss que roda no servidor web não consegu mais “conversar” com ossessions beans do servidor interno

alguem sabe como posso (se posso) fazer com que este conversa seja restabelecida de forma autmatica, e que não precise reinicar o jboss do servidor web

ps: todo acesso a banco esta no servidor interno a conversa é feita via session beans que estão declarados no servidor interno.

2 Respostas

P

Não sei se entendi direito, mas parece-me que seu JBoss “Cliente” está tantando usar o proxy retornado pelo método “create” após a queda do JBoss “servidor”.

Bem, sinto ter que informá-lo que vc. terá que tratar a exceção que ocorre, o que, IMO, deve ser implementado com outra camada de proxies que atuam como “Bussiness Delegates”. AFAIK, o proxy obtido via JNDI não suporta a reconexão automática no caso do JBoss.

Para cada session bean, crie outra classe com os mesmos métodos do bean original. Ao chamar um método do delegate, este tenta a chamada remota. Caso ocorra uma exceção indicando erro “recuperável”, ou seja, não ligado à execução do método em si, o método deve fazer outra(s) tentativa(s), jogando fora o proxy em uso e recriando-o do zero ( lookup + create ).

Esta tática procura limitar o impacto de recriar o EJB apenas ao cenário em que ocorre a queda do servidor central, o que, espera-se, não ocorra com tanta freqüência.

Passando a usar o delegate vc. leva ainda, como benefício adicional, a possibilidade de, no futuro, mudar sua arquitetura para, p.ex., o uso de EJB locais, sem ter que mexer em nada alem destas classes. Em resumo, vc. ganha em flexibilidade com o uso do velho e bom princípio do desacoplamento.

P

Complementando, se vc. estiver usando Spring no lado cliente, já tem algo pronto para fazer esta ginástica…

http://forum.springframework.org/archive/index.php/t-21230.html

Criado 20 de fevereiro de 2007
Ultima resposta 21 de fev. de 2007
Respostas 2
Participantes 2