You are on page 1of 16

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Acesso direto ao contedo


Visite tambm: Ipok Segurana Linux UnderLinux VivaOLinux LinuxSecurity NoticiasLinux BR-Linux SoftwareLivre.org [mais]

HOME

ARQUIVO

COLUNAS

CONTATO

CURSOS

ARTIGOS

HOT LINKS

ENVIAR DICA

F.A.Q.

RSS
Voc est aqui: Home Arquivo Dicas-L

Assine a Lista Dicas-L

OK
Receba diariamente por email as dicas
de informtica publicadas neste site
Para se descadastrar, clique aqui.

Instalando, iniciando, testando e


parando o JBoss AS 6 no Linux
Ubuntu 10.04
Colaborao: Paulo Jernimo
Data de Publicao: 07 de julho de 2010
Neste tutorial,
parte integrante do
treinamento
"JBoss AS Instalao,
configurao e
monitorao
bsica (32h)
(JBAS-1)", toda
vez que citarmos
de maneira
simplificada a
palavra JBoss
estaremos nos

Inverso de URLs

referindo ao JBoss AS 6.
Esporadicamente, este tutorial sofre atualizaes. Para
acompanh-las, siga @ladoservidor.

Checando os pr-requisitos para a


instalao
O JBoss uma aplicao 100% Java, que pode ser executado em
qualquer sistema operacional que tenha um Java Development Kit
(JDK) instalado na verso 1.5 ou superior.

1 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Como requisitos de hardware, Peter Johnson, um dos autores do


livro JBossInAction, recomenda que seja utilizado no mnimo um
processador single-core (como o Pentium IV), 1 GB de RAM e 500
MB de espao livre em disco. claro que estes requisitos so
afetados pela quantidade de usurios que iro utilizar a aplicao e o
correto, em qualquer situao, a ocorrncia de testes de carga e de
desempenho para avaliar se o hardware que executar o JBoss
aguentar a demanda.
Devido ao melhor desempenho do JDK 1.6 em relao as verses
anteriores, seu uso recomendado. Dependendo do hardware, a
verso do JDK pode ser a de 32 ou a 64 bits. Entretanto importante
estar atento as caractersticas da execuo de uma verso JVM 64
bits num hardware compatvel:
Em mquinas de 64 bits:
Canais duplicados de comunicao entre RAM e CPU
melhoram o desempenho para aplicaes com grande
consumo de memria;
O endereamento de memria virtualmente ilimitado (at 1
hexabyte). Entretanto, grandes heaps afetam o desempenho
do coletor de lixo;
Aplicaes que precisam executar com mais de 1,5 GB de RAM
(incluindo o espao livre para otimizaes do coletor de lixo)
deveriam utilizar JVMs de 64 bits;
Aplicaes que executam numa JVM de 32 bits e no exigem
mais que os tamanhos mnimos de heap no iro se aproveitar
dos recursos oferecidos por uma JVM de 64 bits;
Nosso prximo passo ento ser a instalao de um JDK.
Este tutorial, poder ter seus passos seguidos atravs do uso da
vm-curso-ladoservidor. Isto recomendvel e facilitar as atividades
a seguir que, mesmo assim, podem ser executadas em qualquer
Ubuntu na verso 10.04.

Instalando um Java Development Kit


(JDK)
Verses anteriores a 10.04 do Ubuntu costumavam instalar um JDK
atravs dos pacotes sun-java*. Entretanto nesta verso, o pacote
sun-java6-jdk foi movido para outro repositrio. Isto tornou
sua instalao um pouco mais complexa. Contudo, o objetivo desta
mudana foi dar maior visibilidade a verso open source equivalente
(o OpenJDK) que pode ser facilmente instalado atravs dos
repositrios de pacotes j configurados.

Instalando o OpenJDK
A instalao do OpenJDK (e o teste das verses de seus binrios)
realizada pela execuo dos comandos a seguir:
$ sudo apt-get install openjdk-6-jdk
$ java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8)
(6b18-1.8-0ubuntu1)
OpenJDK Client VM (build 14.0-b16, mixed mode,
sharing)
$ javac -version
javac 1.6.0_18
Na vm-curso-ladoservidor o pacote openjdk-6-jdk j est

2 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

instalado. Logo, o comando acima no efetua nenhum


download/instalao nesta VM. Entretanto, se o removessemos e
mandssemos reinstal-lo, o download deste pacote iria exigir que
alguns outros tambm fossem baixados. fcil saber quais so eles
atravs da execuo do comando abaixo:
$ apt-cache depends openjdk-6-jdk
Se solicitarmos a remoo completa do pacote openjdk-6-jdk
podemos notar que, mesmo assim, o comando java continuar a
funcionar. Por que? Vamos descobrir, seguindo a execuo (e
visualizando o resultado) dos comandos abaixo:
$ sudo apt-get purge openjdk-6-jdk
$ java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8)
(6b18-1.8-0ubuntu1)
OpenJDK Client VM (build 14.0-b16, mixed mode,
sharing)
$ which java
/usr/bin/java
$ ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22 2010-06-30 11:17
/usr/bin/java -> /etc/alternatives/java
$ ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 40 2010-06-30 11:17
/etc/alternatives/java -> /usr/lib/jvm/java6-openjdk/jre/bin/java
$ ls -la /usr/lib/jvm/java-6-openjdk/jre/bin
/java
-rwxr-xr-x 1 root root 38548 2010-04-15 00:43
/usr/lib/jvm/java-6-openjdk/jre/bin/java
$ dpkg -S /usr/lib/jvm/java-6-openjdk/jre/bin
/java
openjdk-6-jre-headless: /usr/lib/jvm/java6-openjdk/jre/bin/java
Pela sada apresentada acima, notamos que o comando java um
link simblico em /usr/bin/java. Este link aponta para outro
(/etc/alternatives/java) que por sua vez, aponta para o
binrio disponibilizado em /usr/lib/jvm/java-6-openjdk
/jre/bin/java. Com base na localizao real deste binrio, o
utilitrio dpkg-query pode ser utilizado para ento determinar qual
o pacote que o contm. Por fim, sua sada nos indica que este
pacote o openjdk-6-jre-headless. Ou seja, se apenas
desejssemos ter instalado a JRE (e no o JDK), este seria o pacote
que deveriamos utilizar.
Para que todo este uso de links simblicos? Este mecanismo
utilizado no Linux para possibilitar que diferentes alternativas de
JDK/JRE possam ser instaladas. O link /etc/alternatives/java
atualizado quando se instala uma verso diferente de JRE, mas o
/usr/bin/java no. Para testar isto, vamos executar a instalao
do pacote sun-java6-jdk atravs dos comandos do tpico a
seguir.

Instalando o JDK da Sun


Talvez, por qualquer motivo que seja, desejemos no utilizar a verso
open source do JDK. Se isto ocorrer, o JDK da falecida Sun
(comprada pela Oracle) pode ser instalado no Ubuntu de acordo
com os comandos a seguir:
$ sudo bash -c '

3 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

add-apt-repository "deb
http://archive.canonical.com/ lucid partner"
apt-get update
apt-get install sun-java6-jdk sun-java6-plugin
update-java-alternatives -s java6-sun
'
Os comandos acima iro:
1. Adicionar o repositrio de pacotes para o qual foram movidos os
pacotes sun-java6-*;
2. Atualizar a lista de pacotes do Ubuntu;
3. Implantar a JDK da Sun e o plugin para browsers Mozilla
(incluindo o Firefox);
Aps ter realizado a instalao, note que o link
/etc/alternatives/java agora estar apontando para outro
binrio, conforme apresentado pela sada do comando a seguir:
$ readlink /etc/alternatives/java
/usr/lib/jvm/java-6-sun/jre/bin/java
Note tambm que as verses apresentadas na execuo dos
binrios do JDK/JRE tambm mudam:
$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build
1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01,
mixed mode, sharing)
$ javac - version
javac 1.6.0_20
Para vermos que outras alternativas teramos para os binrios do
JDK, o comando a seguir poderia ser utilizado:
$ update-java-alternatives -l
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk
java-6-sun 63 /usr/lib/jvm/java-6-sun
Sendo assim, podemos novamente apontar os links para os binrios
do OpenJDK (reinstalando-o) atravs dos comando a seguir:
$ sudo bash -c '
apt-get install openjdk-6-jdk icedtea6-plugin
update-java-alternatives -s java-6-openjdk
'
O pacote icdetea6-plugin similar em funcionalidades ao
sun-java6-plugin mas, open source.
Na opinio do Lado Servidor, o OpenJDK o futuro que j se tornou
presente em termos de Java livre! E, sendo assim, ele merece nossa
total chance de uso. Neste tutorial, a verso de JDK de nossa
escolha para a execuo do JBoss o OpenJDK.

Baixando e instalando o JBoss


As tarefas relativas ao download e a instalao do JBoss so muito
simples e podem ser realizados de maneira manual atravs de
quatro passos (sendo um opcional):
Baixar um arquivo compactado da Internet;
Verificar se o download foi efetuado corretamente, utilizando o
utilitrio md5sum; (passo opcional)
Descompactar este arquivo no sistema de arquivos local;

4 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Ajustar algumas variveis de ambiente;


Para automatizar este trabalho, deixando-o ainda mais simples,
iremos criar e executar um shell-script que poder ser utilizado vrias
vezes para refazer as tarefas acima. Alm de torn-las automticas e
padronizadas, o script tambm verificar possveis erros, como:
Download incompleto ou errado;
Impossibilidade de baixar ou extrair o arquivo de instalao do
JBoss por qualquer motivo; (Ex.: falta de espao em disco)
Vamos gerar o script pela execuo do seguinte comando:
$ cat > instalar-jboss <<'FIM'
#!/bin/bash
LOG=/tmp/$$.log
INSTALADORES_DIR=~/instaladores
FERRAMENTAS_DIR=~/ferramentas
JBOSS_ZIP=jboss-as-distribution-6.0.0.20100429M3.zip
JBOSS_DIR=jboss-6.0.0.20100429-M3
JBOSS_DOWNLOADS_URL="http://downloads.sourceforge
.net/project/jboss/JBoss/JBoss-6.0.0.M3
/ARQUIVO?use_mirror=ufpr"
ok_ou_falha() { [ $? = 0 ] && echo Ok || {
echo "Falhou! Veja $LOG"; exit 1; }; }
mkdir -p $INSTALADORES_DIR && cd
$INSTALADORES_DIR
[ -f "$JBOSS_ZIP" -a -f "$JBOSS_ZIP.md5" ] || {
for f in $JBOSS_ZIP $JBOSS_ZIP.md5; do
[ -f "$f" ] && continue
echo -n "Baixando $f... "
wget "`echo $JBOSS_DOWNLOADS_URL | sed
s,ARQUIVO,$f,g`" &> $LOG
ok_ou_falha
done
}
echo -n "Verificando o checksum do arquivo
$JBOSS_ZIP... "
test `md5sum $JBOSS_ZIP | cut -d ' ' -f 1` =
`cat $JBOSS_ZIP.md5`
ok_ou_falha
mkdir -p $FERRAMENTAS_DIR && cd
$FERRAMENTAS_DIR
echo -n "Extraindo $JBOSS_ZIP... "
rm -rf $JBOSS_DIR; unzip
$INSTALADORES_DIR/$JBOSS_ZIP &> $LOG
ok_ou_falha
echo -n "Criando o link jboss para
$JBOSS_DIR... "
rm -f jboss; ln -s $JBOSS_DIR jboss
ok_ou_falha
grep '^# Ajusta.*JBoss$' ~/.bashrc &>
/dev/null && exit 0
echo -n "Ajustando as variveis de ambiente
para o funcionando do JBoss... "
cat >> ~/.bashrc <<'EOF'
# Ajusta as variveis de ambiente para o
funcionamento do JBoss
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export JBOSS_HOME=FERRAMENTAS_DIR/jboss
export PATH=$JBOSS_HOME/bin:$PATH
EOF
sed -i s,FERRAMENTAS_DIR,$FERRAMENTAS_DIR,g
~/.bashrc
ok_ou_falha
FIM

5 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Aps a execuo do comando acima, ser criado o script


instalar-jboss, que realiza as seguintes tarefas:
Ajusta algumas variveis que representam:
O log de execuo para algumas tarefas ($LOG), que ser
gerado no diretrio /tmp com o nome do arquivo sendo o
nmero do processo em execuo;
O diretrio que conter o instalador do JBoss:
$INSTALADOR_DIR
O diretrio que conter o JBoss aps sua instalao:
$FERRAMENTAS_DIR
O zip do JBoss: $JBOSS_ZIP
A URL base que ser utilizada para o download do zip do
JBoss: $JBOSS_URL
O diretrio que ser construdo pela extrao do JBoss:
$JBOSS_DIR
Cria a funo ok_ou_falha que verificar se houve erro na
execuo do comando anterior e, em caso positivo, abortar a
execuo do mesmo;
Cria o diretrio $INSTALADOR_DIR e efetua a mudana para ele
(mkdir -p ...);
Baixa, caso no existam, o zip de instalao do JBoss e o arquivo
que contm seu checksum ($JBOSS_ZIP.md5) redirecionando a
sada do comando para $LOG;
Verifica o resultado do comando anterior e, em caso de insucesso,
aborta a continuao do script informando a ocorrncia de um
erro;
Testa o md5sum do $JBOSS_ZIP;
Verifica o resultado do comando anterior e, em caso de insucesso,
aborta a continuao do script informando a ocorrncia de um
erro;
Cria o diretrio $FERRAMENTAS_DIR e efetua a mudana para ele
(mkdir -p ...);
Remove o diretrio de instalao do JBoss (caso exista) e extrai o
contedo o zip do JBoss (unzip ...);
Verifica o resultado do comando anterior e, em caso de insucesso,
aborta a continuao do script informando a ocorrncia de um
erro;
Remove (caso exista) e cria o link simblico jboss apontando
para o diretrio no qual foi extrado o JBoss (ln -s ...);
A criao deste link simblico simplificar o valor da varivel
$JBOSS_HOME tornando mais fcil a substituio do JBoss
por outra verso, caso precisemos realizar esta tarefa no
futuro;
Utiliza o grep para verificar se o contedo do arquivo
$HOME/.bashrc j foi atualizado com as configuraes das
variveis de ambiente e, em caso positivo, encerra a execuo do
script;
Adiciona contedo ao arquivo ~/.bashrc ajustando o valor para
algumas variveis de ambiente utilizadas pelo JBoss na sua
execuo. As seguintes variveis de ambiente so adicionadas:
$JAVA_HOME, que guarda a localizao do diretrio de
instalao do JDK;
$JBOSS_HOME, que guarda a localizao do diretrio de
instalao do JBoss;
$PATH, que agora agregar a localizao para os binrios do
JBoss ($JBOSS_HOME/bin);
Utiliza o sed para alterar o contedo do arquivo ~/.bashrc e

6 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

substituir a string FERRAMENTAS_DIR pelo valor correspondente a


varivel $FERRAMENTAS_DIR;
Verifica o resultado do comando anterior e, em caso de insucesso,
aborta a continuao do script informando a ocorrncia de um
erro;
A execuo do script instalar-jboss, e o carregamento das
variveis de ambientes necessrias para a execuo do JBoss AS,
podem ser realizadas atravs da execuo dos comandos a seguir
(observe a sada de execuo do instalar-jboss):
$ chmod +x instalar-jboss && ./instalar-jboss
Baixando jboss-as-distribution-6.0.0.20100429M3.zip... Ok
Extraindo jboss-as-distribution-6.0.0.20100429M3.zip... Ok
Criando o link jboss para jboss6.0.0.20100429-M3... Ok
Ajustando as variveis de ambiente para o
funcionando do JBoss... Ok
$ source ~/.bashrc
O script instalar-jboss poder ser executado quantas vezes for
necessrio. Ele sempre apagar a instalao anterior do JBoss e
refaz-la. S baixar o instalador do JBoss caso ele no seja
encontrado. Verificar se o checksum MD5 do instalador est correto
e, s reajustar o contedo de ~/.bashrc caso isto j no tenha
sido realizado.
Voc pode verificar se o ajuste do arquivo ~/.bashrc foi realizado
com sucesso atravs da execuo do comando tail, com o
parmetro -n 4 para solicitar apenas a impresso das quatro ltimas
linhas deste arquivo:
$ tail -n 4 ~/.bashrc
# Ajusta as variveis de ambiente para o
funcionamento do JBoss
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export JBOSS_HOME=/home/aluno/ferramentas/jboss
export PATH=$JBOSS_HOME/bin:$PATH
Quando o comando source ~/.bashrc executado, o shell
corrente refaz a leitura deste arquivo. Com isto, as variveis de
ambiente ficam disponveis. Como este arquivo lido a cada vez que
se abre um shell no Linux, estas variveis estaro disponveis toda
vez que isto ocorrer.
A partir deste ponto, estamos preparados para executar o JBoss. Isto
o que faremos nos prximos passos.

Iniciando e parando o JBoss


Da forma mais bsica e simples possvel
A execuo do JBoss pode ser realizada atravs do comando a
seguir:
$ run.sh
Quando o comando acima invocado, o JBoss inicia sua execuo.
Vrios servios sero levantados por ele e o log de execuo
aparece na tela aberta.
Aps o JBoss subir todos os servios da configurao corrente e
estar pronto para ser executado, uma mensagem como a

7 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

apresentada a seguir, dever estar presente na console de sua


execuo:
07:59:50,725 INFO
[org.jboss.bootstrap.impl.base.server.AbstractSer
ver] JBossAS [6.0.0.20100429-M3 "Neo"] Started
in 38s:311ms
Este o sinal visvel pelo log, de que o JBoss foi iniciado.
Para finalizar a execuo do JBoss existem vrias alternativas. A
mais simples delas, caso tenhamos acesso a console de sua
execuo, pressionar, simultaneamente, as teclas Ctrl e C
(Ctrl+C). Desta forma, um sinal de shutdown ser enviado ao JBoss
para que ele possa encerrar sua execuo, educadamente. Isto
significa que ele solicitar, para cada um dos servios em execuo,
o seu encerramento. Quando tudo estiver consumado ;-), no log da
console aberta deveremos notar uma frase como a apresentada a
seguir:
08:09:59,379 INFO [AbstractServer] Stopped:
JBossAS [6.0.0.20100429-M3 "Neo"] in 7s:999ms

Colocando o JBoss em background


Talvez no queiramos que a execuo do JBoss esteja atrelada a
uma console. Sendo assim, a forma correta de iniciarmos o JBoss
seria atravs do comando a seguir:
$ JBOSS_CONSOLE=/tmp/jboss.log; nohup run.sh
&> $JBOSS_CONSOLE &
Com isto, o log de execuo do JBoss (tanto para a sada padro
quanto de erros) ser direcionado ao arquivo /tmp/jboss.log. O
comando nohup desatrela a execuo do comando run.sh do shell
corrente e o &, ao final do comando, coloca a execuo do JBoss em
background, liberando o shell corrente para a digitao de novos
comandos.
Uma caracterstica desta forma de inicializao do JBoss que no
veremos mais o seu log na tela aberta. Para podermos ento
acess-lo, faremos uso do comando tail, conforme demonstrado a
seguir:
$ tail -f $JBOSS_CONSOLE
Outra caracterstica importante que, mesmo fechando o shell
corrente, o JBoss continuar em execuo. Experimente isto! Feche
a console corrente, e abra uma nova. Aps fazer isto, verifique que o
processo de execuo do JBoss ainda est ativo, atravs da
chamada ao seguinte comando:
$ ps -ef | grep org.jboss.Main
A classe org.jboss.Main classe que inicializa o JBoss, e que
executada na execuo do comando java atravs script run.sh.
Outra forma de verificar a execuo de uma aplicao Java, de uma
forma mais portvel, utilizar o comando jps. Ele um utilitrio do
JDK e, sendo assim, pode ser utilizado nos diferentes sistemas
operacionais que suportam o Java. O uso do jps, para saber se o
JBoss est em execuo, exemplificado a seguir:
$ jps -l | grep org.jboss.Main

8 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Agora que no temos mais acesso a console de execuo do JBoss,


como encerr-lo? Alguns brutos diriam: kill -9 no process id (PID)
do JBoss ;-). Mas, ns somos educados! A menos que o JBoss no o
seja conosco, ns no iremos utilizar o comando kill e, em seu
lugar, invocaremos o comando a seguir:
$ shutdown.sh -S
Isto far com que o JBoss entenda que queremos tir-lo de campo
;-).
No Linux, mesmo que o JBoss j esteja em execuo, podemos
coloc-lo em background. Para isto, os procedimentos so:
Iniciar o JBoss da forma mais bsica e simples possvel
(run.sh). Como vimos, ele ficar atrelado a execuo da console
corrente;
Digitar, simultaneamente, as teclas Ctrl e Z (Ctrl+Z). Isto far
com que o processo em execuo do JBoss seja parado;
Executar o comando bg. Isto colocar a execuo do JBoss em
background. Mas, trar o inconveniente de que qualquer log de
sua execuo ainda aparecer na tela da console aberta.
Execute os procedimentos acima antes de prosseguir!

Permitindo o acesso para alm de localhost


Por medida de segurana o JBoss no permite, nas formas de
inicializao que foram apresentadas anteriormente, que ocorra o
acesso aos servios levantados por ele, fora de localhost. Isto
significa, por exemplo, que no conseguiriamos acessar as interfaces
administrativas do JBoss a partir de outra mquina. Como testar isto?
Existem algumas formas. Uma delas observar que portas esto
sendo utilizadas pelo processo do JBoss, como apresentado no
tpico "Verificando as portas utilizadas pelo JBoss". Execute os
comandos daquele tpico e depois retorne a este.
Pelo que podemos observar, por padro todas as portas TCP abertas
pelo JBoss so acessveis apenas pelo endereo IP 127.0.0.1
(localhost). Logo, tirando a prpria mquina que executa o JBoss,
nenhuma outra poder acessar seus servios.
Liberar o acesso ao JBoss para outras mquinas, implica em
reinicializ-lo com um parmetro que informe que ele dever se ligar
a uma interface de rede que tenha um IP acessvel por outras
mquinas, ou, que ele dever se ligar a todas as interfaces de rede.
Estas tarefas podem ser realizadas atravs do parmetro de
inicializao "-b <IP_OU_NOME>". Vamos ento parar o JBoss em
execuo e levant-lo novamente, com este parmetro:
$ shutdown.sh -S; tail -f $JBOSS_CONSOLE
Ao perceber que o JBoss foi finalizado com sucesso atravs da
observao do log, damos um Ctrl+C na execuo do tail e
reinicializamos o JBoss:
$ JBOSS_CONSOLE=/tmp/jboss.log; nohup run.sh
-b 0.0.0.0 &> $JBOSS_CONSOLE &
Agora, pelo uso do parmetro "-b 0.0.0.0" passado ao run.sh,
estamos solicitando ao JBoss que ele entre em execuo
aguardando conexes oriundas de qualquer uma de suas interfaces
de rede.

9 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Aps reexecutar o comando que nos possibita averiguar as portas


utilizadas pelo JBoss (sudo netstat -tulpn | grep `ps -ef
| grep org.jboss.Main | awk '{print $2}'`), poderemos
observar um resultado semelhante ao apresentado a seguir (so
mostradas apenas algumas linhas):
tcp
0.0.0.0:*
13415/java
tcp
0.0.0.0:*
13415/java
tcp
0.0.0.0:*
13415/java
tcp
0.0.0.0:*
13415/java

0 0.0.0.0:8080
LISTEN

0 0.0.0.0:8083
LISTEN

0 0.0.0.0:5500
LISTEN

0 0.0.0.0:4444
LISTEN

Vendo a sada apresentada, notamos que conexes as portas 8080,


8083, etc, podem ser realizadas a partir de qualquer uma das
interfaces de rede. Isto identificado na sada pelo nmero do IP
apresentado antes do nmero da porta: "0.0.0.0".
Podemos testar o acesso a uma porta servida pelo JBoss, atravs do
comando telnet, como exemplificado a seguir: (Substitua o IP
apresentado por um IP vlido em tua mquina, diferente do IP
127.0.0.1.)
$ telnet 187.25.148.177 8080
Trying 187.25.148.177...
Connected to 187.25.148.177.
Escape character is '^]'.
^]Connection closed by foreign host.
Se desejssemos que o JBoss se ligasse apenas a uma interface de
rede especfica informaramos, no lugar de "-b 0.0.0.0", o IP ou o
nome da mquina associada a ele (pelo arquivo /etc/hosts ou
pelo DNS). Por exemplo, -b 192.168.2.101.

Colocando uma instncia diferente em


execuo
Uma instncia de JBoss, uma configurao em execuo. O JBoss,
ao ser instalado, vem com diferentes configuraes e cada uma
delas localizada no diretrio $JBOSS_HOME/server, conforme
apresentado na sada do comando a seguir:
$ tree -L 1 -d $JBOSS_HOME/server
/home/aluno/ferramentas/jboss/server
??? all
??? default
??? jbossweb-standalone
??? minimal
??? osgi
??? standard
A sada acima apresenta 6 configuraes distintas. Por padro,
quando no especificado que configurao ser executada, o jboss
levantar a "default".
Cada configurao, possui um conjunto prprio de diretrios e
arquivos. Por exemplo, na configurao "default", temos os seguintes
diretrios no primeiro nvel:
$ tree -L 1 -d $JBOSS_HOME/server/default

10 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

/home/aluno/ferramentas/jboss/server/default
??? conf
??? data
??? deploy
??? deployers
??? lib
??? log
??? tmp
??? work
O escopo deste tpico no abrange a explicao de cada um destes
diretrios. Isto abordado em outra parte do treinamento
"`JBAS-1-T". Entretanto, aqui que informamos que, para levantar
uma instncia diferente de JBoss, o parmetro "-c
<configuracao>" deve ser passado ao script run.sh. Devemos
tambm notar que "run.sh" ou "run.sh -c default" significam a
mesma coisa. Para testar o uso deste parmetro, vamos finalizar a
instncia corrente:
$ shutdown.sh -S; tail -f $JBOSS_CONSOLE
Agora, vamos iniciar uma instncia diferente do JBoss, a "minimal":
$ run.sh -c minimal
Podemos observar que esta instncia sobe em bem menos tempo
que a "default". D um Ctrl+C em sua console para finaliz-la.
Tambm foge do escopo deste tpico as explicaces para as
configuraes de JBoss. Mais informaes sobre isto podem ser
obtidas no treinamento "`JBAS-1-T".

Colocando mais de uma instncia em


execuo
possvel subir vrias instncias do JBoss ao mesmo tempo.
Basicamente, existem duas alternativas para isto: utilizar um IP
diferente para cada instncia ou, utilizar um conjunto de portas
diferente para cada uma delas.
A alternativa mais comum para administradores de servidores Linux,
aps terem conhecido o uso do parmetro "-b <IP_OU_NOME>",
discutido no tpico anterior, realizar a criao de uma interface de
rede (virtual ou no) e levantar cada instncia de JBoss num IP
especfico. Esta alternativa entretanto, exige o domnio de comandos
do Linux. A outra soluo, utilizar portas diferentes para o JBoss, no
exige conhecimentos especficos de Linux e pode ser aplicada em
diferentes sistemas operacionais.
Atravs de portas diferentes

A execuo de mais de uma instncia de JBoss atravs do uso de


um conjunto diferente de portas, para cada uma delas, realizada na
verso 6 pelo uso de uma propriedade de sistema, passado para a
JVM que executar a instncia.
O procedimento bem simples. Uma segunda instncia baseada em
"default" poder subir da seguinte forma:
Copiamos o contedo de "default" para outro diretrio, tambm
abaixo de $JBOSS_HOME/server/, com o nome que
desejarmos. Por exemplo: "instancia2";
Executamos o run.sh de "instancia2" informando a propriedade
de sistema com o parmetro "-Dpropriedade=valor";

11 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Estes so os comandos que iro criar "intancia2" e coloc-la em


execuo, ao mesmo tempo em que ser realizada a inicializao da
instncia "default":
$ bash -c '
cp -r $JBOSS_HOME/server/default
$JBOSS_HOME/server/instancia2
nohup run.sh &> /tmp/jboss.default.log &
nohup run.sh -c instancia2
-Djboss.service.binding.set=ports-01 &>
/tmp/jboss.instancia2.log &
'
Para parar a segunda instncia, podemos executar o seguinte
comando:
$ shutdown.sh -S -s jnp://localhost:1199
Nos parmetros passados ao shutdown.sh, alm do -S que j
conhecamos, desta vez tambm informamos -s
jnp://localhost:1199. Isto significa que queremos parar o
JBoss que est sendo executado localmente, enviando um comando
que ser transmitido a porta 1199 do JBoss em execuo. Por
padro, quando no informamos estes parmetros/valores, como
se estivssemos escrito shutdown.sh -S -s
jnp://localhost:1099. O parmetro -s ou --server=
especifica uma URL para o endereo de um servidor de nomes JNDI
(Java Naming and Directory Interface).
Quando utilizamos o valor ports-01 para a propriedade
jboss.service.bind.set cada uma das portas utilizadas pela
configurao default (sem o uso desta propriedade) tem o seu
valor incrementado de 100. Se utilizarmos o valor ports-02, ao
valor padro somado 200, e assim por diante... Podemos observar
isto pelo uso do netstat:
Obtendo as portas utilizadas pela primeira instncia (ordenando e
mostrando apenas as seis primeiras linhas da sada gerada):
$ sudo netstat -tulpn | grep $(ps -ef | grep
org.jboss.Main$ | awk '{print $2}') | sort |
head -n3
tcp
0
0 127.0.0.1:1090
0.0.0.0:*
LISTEN
19352/java
tcp
0
0 127.0.0.1:1091
0.0.0.0:*
LISTEN
19352/java
tcp
0
0 127.0.0.1:1098
0.0.0.0:*
LISTEN
19352/java
tcp
0
0 127.0.0.1:1099
0.0.0.0:*
LISTEN
19352/java
tcp
0
0 127.0.0.1:3873
0.0.0.0:*
LISTEN
19352/java
tcp
0
0 127.0.0.1:4444
0.0.0.0:*
LISTEN
19352/java
Obtendo as portas utilizadas pela segunda instncia (ordenando e
mostrando apenas as seis primeiras linhas da sada gerada):
$ sudo netstat -tulpn | grep $(ps -ef | grep
org.jboss.Main.*ports-01$ | awk '{print $2}') |
sort | head -n6
tcp
0
0 127.0.0.1:1190

12 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...


0.0.0.0:*
19357/java
tcp
0.0.0.0:*
19357/java
tcp
0.0.0.0:*
19357/java
tcp
0.0.0.0:*
19357/java
tcp
0.0.0.0:*
19357/java
tcp
0.0.0.0:*

http://www.dicas-l.com.br/arquivo/instalando_inic...
LISTEN

0 127.0.0.1:1191
LISTEN

0 127.0.0.1:1198
LISTEN

0 127.0.0.1:1199
LISTEN

0 127.0.0.1:3973
LISTEN

0 127.0.0.1:4544
LISTEN
19357/java

Atravs de IPs diferentes

Executar outra instncia do JBoss atravs de IPs diferentes j foi


explicado. No mais novidade que o parmetro "-b
<IP_OU_NOME>", passado ao run.sh, possibilita a execuo de
uma outra instncia do JBoss num IP diferente mas, escutando o
mesmo conjunto de portas. A questo : e se tivermos apenas uma
interface de rede, por exemplo, a eth0? Bem, neste caso, se no
quisermos mesmo utilizar um conjunto diferente de portas, a soluo
criar uma interface de rede virtual.
Uma interface de rede virtual pode ser criada no linux com o
comando ifconfig. Supondo que estamos na rede 192.168.1.0 e
que o IP 192.168.1.2 esteja disponvel, o comando a seguir criaria a
interface virtual eth0:0:
ifconfig eth0 add 192.168.1.2 netmask
255.255.255.0
Agora, teramos uma interface de rede virtual, associada a mesma
placa de rede mas com um IP diferente e, com isto, poderamos
iniciar o JBoss neste novo IP atravs de run.sh -b 192.168.1.2.
No haveria nenhum problema nesta abordagem e nem conflitos no
uso de portas.
Para remover a interface virtual o mesmo ifconfig poderia ser
utilizado, informando-se os parmetros abaixo:
ifconfig eth0 del 192.168.1.2

Vericando as portas utilizadas pelo


JBoss
O comando netstat possibilita-nos averiguar que portas so
utilizadas por um processo em execuo. Para test-lo, caso o JBoss
no esteja no ar, vamos inici-lo:
$ JBOSS_CONSOLE=/tmp/jboss.log; nohup run.sh
&> $JBOSS_CONSOLE &
Agora, a partir da execuo do comando a seguir, solicitaremos ao
netstat que nos informe que portas esto sendo utilizadas pelo PID
do JBoss:
$ sudo netstat -tulpn | grep `ps -ef | grep
org.jboss.Main | awk '{print $2}'`
A linha acima merece algumas explicaes! Nela, o netstat est
sendo executado com o comando sudo logo, como se ele

13 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

estivesse sendo rodado pelo superusurio (root) e, portanto,


imprime a informao de todos os processos em execuo na
mquina. Mas, ns s queremos as informaes do processo que
executa a JVM do JBoss (ps -ef | grep org.jboss.Main). A
partir do resultado obtido com este comando, queremos pegar o PID
do processo. Em sua sada j temos isto, mas queremos apenas um
nmero, que representado pelo segundo campo (na sada do ps).
Logo, utilizamos o canivete suio awk para obter apenas este campo.
O nmero obtido passado ao grep que, por sua vez, recebe como
entrada, a sada do netstat filtrando assim, apenas as portas
utilizadas pelo JBoss (colhemos da sada do netstat apenas os
processo com o PID do mesmo).
A sada do comando executado obviamente varia entre mquinas
diferentes mas, dever ser algo prximo ao apresentado abaixo:
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java
tcp
0.0.0.0:*
11068/java

14 de 16

0 127.0.0.1:8080
LISTEN

0 127.0.0.1:8083
LISTEN

0 127.0.0.1:5500
LISTEN

0 127.0.0.1:4444
LISTEN

0 127.0.0.1:5501
LISTEN

0 127.0.0.1:4446
LISTEN

0 127.0.0.1:3873
LISTEN

0 127.0.0.1:1090
LISTEN

0 127.0.0.1:1091
LISTEN

0 127.0.0.1:5445
LISTEN

0 127.0.0.1:4712
LISTEN

0 127.0.0.1:8009
LISTEN

0 127.0.0.1:4713
LISTEN

0 127.0.0.1:4714
LISTEN

0 127.0.0.1:1098
LISTEN

0 127.0.0.1:1099
LISTEN

0 127.0.0.1:5455
LISTEN

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...


udp
0.0.0.0:*
11068/java
udp
0.0.0.0:*
11068/java

http://www.dicas-l.com.br/arquivo/instalando_inic...

0 0.0.0.0:37770

0 0.0.0.0:9876

Na quarta coluna, temos um par de valores IP:porta. A sexta coluna,


onde para as conexes do tipo tcp est escrito LISTEM, indica que
tais IPs/portas esto aguardando conexes. A stima coluna nos
informa o PID do processo que est escutando tal porta. Logo, neste
exemplo, o PID do JBoss de nr. 11068 e est escutando todas as
portas listadas acima.
Fonte: http://a.ladoservidor.com/tutoriais/jbossas6-instala
/index.html
Paulo Jernimo consultor, instrutor e palestrante.
Trabalha com linguagens de programao e ferramentas
executadas sob plataformas abertas, baseadas em
software livre. Presente no mercado corporativo desde
1993, atualmente produzindo solues com o uso de
frameworks e de prticas geis em Java, Python, Scala,
Clojure ou Groovy. Vasta experincia em arquitetura,
desenvolvimento e infraestrutura para o atendimento a
requisitos no funcionais em softwares de misso crtica,
escalveis e tolerantes a falhas, executados por clusters
de servidores de aplicaes. Currculo completo:
http://j.mp/curriculopj

Follow @dicasl

4,843 followers

Gosto

Veja a relao completa dos artigos de Paulo Jernimo

PDF

RSS Imprimir

Referncias Adicionais
Referncias adicionais sobre os assuntos abordados neste site
podem ser encontradas em nossa Bibliografia.

Avalie esta dica

Avaliao: 3.0 /5 (1904 votos)

Opinio dos Leitores


Flvio Felipe
06 Nov 2014, 11:57

Excelente passo a passo!


felipe
15 Abr 2011, 09:36

Muito obrigado, ajudou bastante

15 de 16

14-02-2015 13:23

[Dicas-L] Instalando, iniciando, testando e parand...

http://www.dicas-l.com.br/arquivo/instalando_inic...

Hermogenes
11 Jul 2010, 02:03

Parabns pelo artigo. Muito bem elaborado o passo a passo


das instalaes e configuraes. Uma dvida, no tpico
"Instalando JDK da Sun" a ltima linha do script no seria:
update-java-alternatives -s java-6-sun?
[]s
Hermogenes
*Nome:
Email:
Me notifique sobre novos comentrios nessa pgina
Oculte meu email

*Texto:

Para publicar seu comentrio, digite o cdigo contido na


imagem acima

Enviar
Powered by Scriptsmill Comments Script

Privacy Policy
O material veiculado neste site poder ser livremente distribudo
para fins no comerciais, segundo os termos da licena da

Creative Commons
.

16 de 16

14-02-2015 13:23

You might also like