Verificar se o servidor de aplicação está ligado  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

Galera, estou com um probleminha no lugar que trabalho.
Usamos o JBoss e construímos uma tela pra gerenciar o banco, o pool de conexões, ligar o servidor e coisas do tipo... Por alguma razão, após muitos testes, cheguei a conclusão de que não posso colocar um outro jar junto com o run.jar, do JBoss. Alguém sabe me dizer o porque disso? Se eu colocar qualquer outro jar dentro do classpath no manifest, dá pau (na hora de startar o servidor dá uma exception de falta de libs - o que não acontece se eu tirar os jars - não, não é problema com esses outros jars, mas sim quando junto tudo). Alguém já viu isso?

Bom, de qualquer forma, não é esse a verdadeira questão do tópico. Existe alguma maneira de verificar se um servidor está online SEM fazer lookup? Eu ando pensando em pingar o localhost, mas acho isso uma ideia muito nada a ver. Tem um método dentro da Main que fica no run.jar do JBoss chamada isStarted, mas se eu ligar outro JBoss, ele inicia normalmente e dá erro de múltiplos JBoss na mesma máquina - o que é o que deve acontecer, mas eu sempre verifico se existe uma instância do JBoss rodando com o método isStarted (ele retorna false quando tento instanciar um novo JBoss). Enfim... gostaria de ouvir as alternativas de outros desenvolvedores =)

Já sei da existência do twiddle, mas não sei se poderei usá-lo (pelo problema estranho que existe ao juntar o run.jar do JBoss com outros no mesmo classpath do Manifest).

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
maiconramones
JavaGuru
[Avatar]

Membro desde: 04/12/2007 11:09:19
Mensagens: 210
Localização: Sapucaia do Sul
Offline

André não sou muito expert nisso mas se você estiver no linux você não poderia fazer um grep procurando um determinado processo?

Abs
[MSN]
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

Exatamente, eu posso fazer isso... Só que não funciona. Por diversas razões... Uma delas é a de que eu quero manter uma 'padronização' entre os Sistemas Operacionais. Outra é a de que possivelmente, depois de startar o servidor, o processo do jboss vai ficar como java (possivelmente eu digo no Linux, porque no windows ele fica como java mesmo). E se eu derrubar esse processo, eu derrubo a aplicação que controlaria o servidor.

Até não é nem tanto por derrubar o processo e nem por manter a padronização entre SOs... Quando eu derrubo o servidor, a aplicação que controla ele também cai. Isso porque existe, provavelmente, um System.exit(0) dentro do shutdown do JBoss (do método shutdown que se encontra na Main do run.jar). O que eu queria mesmo é fazer com que ele instancie somente 1 aplicação por JVM, e não várias onde cada uma delas diz que o JBoss está fora do ar, enquanto que ele está ligado.

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
maiconramones
JavaGuru
[Avatar]

Membro desde: 04/12/2007 11:09:19
Mensagens: 210
Localização: Sapucaia do Sul
Offline

Certo te entendi.. uma saida que me vem em mente agora é fazer um simples telnet na porta do jboss.

Telnet existe tanto pra linux como pro sistema do tio bil. Algo tipo telnet ip_server:8080 se retornar erro do telnet é porque ele ta fora.
[MSN]
josue carrecon
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 08:13:52
Mensagens: 173
Localização: uberlandia
Offline

maiconramones wrote:Certo te entendi.. uma saida que me vem em mente agora é fazer um simples telnet na porta do jboss.

Telnet existe tanto pra linux como pro sistema do tio bil. Algo tipo telnet ip_server:8080 se retornar erro do telnet é porque ele ta fora.


Herere, tenho uma gambi, mais ou menos asssim, e ateh hoje ainda não explodiu não.

Quem copia de um eh ladrao, quem copia de dois eh plagiador, quem copia de tres eh analista, quem copia de quatro eh pesquisador e quem copia de cinco eh altamente criativo (ditado sínico)
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

Hehehe. É uma boa alternativa essa... Quando me sobrar um tempinho, vou implementar e posso até colocar o resultado em um repositório.

Mas e isso de não poder ter mais de 1 jar dentro do classpath do Manifest do jar... É muito estranho... Posso ter pouco tempo de programação séria, mas nunca vi algo do tipo.

Abraço galera! Valeu!

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
Felipe Kan
JavaEvangelist

Membro desde: 12/07/2005 16:13:03
Mensagens: 418
Offline

Muito tempo atrás eu tive que fazer algo parecido... mas tive que fazer usando JNI*... e com Tomcat...

Na época lembro que usei APIs do Windows referentes a administração remota... mas para isso era necessária a "senha de administrador da rede"(que serve para entrar em qualquer computador da rede)... ou senha de administrador da máquina alvo...

Assim com esse acesso remoto era possível iniciar ou parar alguma aplicação que estivesse registrada como um serviço... mas acho que o JBoss deve ter alguma forma nativa de fazer isso... ou não...


*Se não me engano eram APIs referentes ao Service Control Manager(SCM)... e fiz com C++...
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team