jboss

16
HOME ARQUIVO COLUNAS CURSOS ARTIGOS HOT LINKS ENVIAR DICA F.A.Q. NTATO RSS Acesso direto ao conteúdo : Ipok · Segurança Linux · UnderLinux · VivaOLinux · LinuxSecurity · NoticiasLinux · BR-Linux · SoftwareLivre.org Você está aqui: Home Arquivo Dicas-L Assine a Lista Dicas-L OK Receba diariamente por email as dicas de informática publicadas neste site Para se descadastrar, clique aqui. Instalando, iniciando, testando e parando o JBoss AS 6 no Linux Ubuntu 10.04 Colaboração: Paulo Jerônimo Data de Publicação: 07 de julho de 2010 Neste tutorial, parte integrante do treinamento "JBoss AS - Instalação, configuração e monitoração básica (32h) (JBAS-1)", toda vez que citarmos de maneira simplificada a palavra JBoss estaremos nos referindo ao JBoss AS 6. Esporadicamente, este tutorial sofre atualizações. Para acompanhá-las, siga @ladoservidor. Checando os pré-requisitos para a instalação O JBoss é uma aplicação 100% Java, que pode ser executado em qualquer sistema operacional que tenha um Java Development Kit (JDK) instalado na versão 1.5 ou superior. Inversão de URLs [Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic... 1 de 16 14-02-2015 13:23

description

Instalação e configuração JBOOS

Transcript of jboss

Page 1: jboss

HOME ARQUIVO COLUNAS CURSOS ARTIGOS HOT LINKS ENVIAR DICA F.A.Q.

CONTATO RSS

Acesso direto ao conteúdoVisite também: Ipok · Segurança Linux · UnderLinux · VivaOLinux · LinuxSecurity · NoticiasLinux · BR-Linux · SoftwareLivre.org · [mais]

Você está aqui: Home → Arquivo Dicas-L

Assine a Lista Dicas-L

OK

Receba diariamente por email as dicas

de informática publicadas neste site

Para se descadastrar, clique aqui.

Instalando, iniciando, testando eparando o JBoss AS 6 no LinuxUbuntu 10.04Colaboração: Paulo Jerônimo

Data de Publicação: 07 de julho de 2010

Neste tutorial,

parte integrante do

treinamento

"JBoss AS -

Instalação,

configuração e

monitoração

básica (32h)

(JBAS-1)", toda

vez que citarmos

de maneira

simplificada a

palavra JBoss

estaremos nos

referindo ao JBoss AS 6.

Esporadicamente, este tutorial sofre atualizações. Para

acompanhá-las, siga @ladoservidor.

Checando os pré-requisitos para ainstalação

O JBoss é uma aplicação 100% Java, que pode ser executado em

qualquer sistema operacional que tenha um Java Development Kit

(JDK) instalado na versão 1.5 ou superior.

Inversão de URLs

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

1 de 16 14-02-2015 13:23

Page 2: jboss

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

livro JBossInAction, recomenda que seja utilizado no mínimo um

processador single-core (como o Pentium IV), 1 GB de RAM e 500

MB de espaço livre em disco. É claro que estes requisitos são

afetados pela quantidade de usuários que irão utilizar a aplicação e o

correto, em qualquer situação, é a ocorrência 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 relação as versões

anteriores, seu uso é recomendado. Dependendo do hardware, a

versão do JDK pode ser a de 32 ou a 64 bits. Entretanto é importante

estar atento as características da execução de uma versão JVM 64

bits num hardware compatível:

Em máquinas de 64 bits:

Canais duplicados de comunicação entre RAM e CPU

melhoram o desempenho para aplicações com grande

consumo de memória;

O endereçamento de memória é virtualmente ilimitado (até 1

hexabyte). Entretanto, grandes heaps afetam o desempenho

do coletor de lixo;

Aplicações que precisam executar com mais de 1,5 GB de RAM

(incluindo o espaço livre para otimizações do coletor de lixo)

deveriam utilizar JVMs de 64 bits;

Aplicações que executam numa JVM de 32 bits e não exigem

mais que os tamanhos mínimos de heap não irão se aproveitar

dos recursos oferecidos por uma JVM de 64 bits;

Nosso próximo passo então será a instalação de um JDK.

Este tutorial, poderá ter seus passos seguidos através do uso da

vm-curso-ladoservidor. Isto é recomendável e facilitará as atividades

a seguir que, mesmo assim, podem ser executadas em qualquer

Ubuntu na versão 10.04.

Instalando um Java Development Kit(JDK)

Versões anteriores a 10.04 do Ubuntu costumavam instalar um JDK

através dos pacotes sun-java*. Entretanto nesta versão, o pacote

sun-java6-jdk foi movido para outro repositório. Isto tornou

sua instalação um pouco mais complexa. Contudo, o objetivo desta

mudança foi dar maior visibilidade a versão open source equivalente

(o OpenJDK) que pode ser facilmente instalado através dos

repositórios de pacotes já configurados.

Instalando o OpenJDK

A instalação do OpenJDK (e o teste das versões de seus binários) é

realizada pela execução 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á

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

2 de 16 14-02-2015 13:23

Page 3: jboss

instalado. Logo, o comando acima não efetua nenhum

download/instalação nesta VM. Entretanto, se o removessemos e

mandássemos reinstalá-lo, o download deste pacote iria exigir que

alguns outros também fossem baixados. É fácil saber quais são eles

através da execução do comando abaixo:

$ apt-cache depends openjdk-6-jdk

Se solicitarmos a remoção completa do pacote openjdk-6-jdk

podemos notar que, mesmo assim, o comando java continuará a

funcionar. Por que? Vamos descobrir, seguindo a execução (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/java-6-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/java-6-openjdk/jre/bin/java

Pela saída apresentada acima, notamos que o comando java é um

link simbólico em /usr/bin/java. Este link aponta para outro

(/etc/alternatives/java) que por sua vez, aponta para o

binário disponibilizado em /usr/lib/jvm/java-6-openjdk

/jre/bin/java. Com base na localização real deste binário, o

utilitário dpkg-query pode ser utilizado para então determinar qual

o pacote que o contém. Por fim, sua saída nos indica que este

pacote é o openjdk-6-jre-headless. Ou seja, se apenas

desejássemos ter instalado a JRE (e não o JDK), este seria o pacote

que deveriamos utilizar.

Para que todo este uso de links simbólicos? 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 versão diferente de JRE, mas o

/usr/bin/java não. Para testar isto, vamos executar a instalação

do pacote sun-java6-jdk através dos comandos do tópico a

seguir.

Instalando o JDK da Sun

Talvez, por qualquer motivo que seja, desejemos não utilizar a versão

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 '

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

3 de 16 14-02-2015 13:23

Page 4: jboss

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 irão:

Adicionar o repositório de pacotes para o qual foram movidos os

pacotes sun-java6-*;

1.

Atualizar a lista de pacotes do Ubuntu;2.

Implantar a JDK da Sun e o plugin para browsers Mozilla

(incluindo o Firefox);

3.

Após ter realizado a instalação, note que o link

/etc/alternatives/java agora estará apontando para outro

binário, conforme apresentado pela saída do comando a seguir:

$ readlink /etc/alternatives/java /usr/lib/jvm/java-6-sun/jre/bin/java

Note também que as versões apresentadas na execução dos

binários do JDK/JRE também 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 teríamos para os binários 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 binários

do OpenJDK (reinstalando-o) através 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 opinião 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 versão de JDK de nossa

escolha para a execução do JBoss é o OpenJDK.

Baixando e instalando o JBoss

As tarefas relativas ao download e a instalação do JBoss são muito

simples e podem ser realizados de maneira manual através de

quatro passos (sendo um opcional):

Baixar um arquivo compactado da Internet;

Verificar se o download foi efetuado corretamente, utilizando o

utilitário md5sum; (passo opcional)

Descompactar este arquivo no sistema de arquivos local;

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

4 de 16 14-02-2015 13:23

Page 5: jboss

Ajustar algumas variáveis de ambiente;

Para automatizar este trabalho, deixando-o ainda mais simples,

iremos criar e executar um shell-script que poderá ser utilizado várias

vezes para refazer as tarefas acima. Além de torná-las automáticas e

padronizadas, o script também verificará possíveis erros, como:

Download incompleto ou errado;

Impossibilidade de baixar ou extrair o arquivo de instalação do

JBoss por qualquer motivo; (Ex.: falta de espaço em disco)

Vamos gerar o script pela execução 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.20100429-M3.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 variáveis de ambiente para o funcionando do JBoss... " cat >> ~/.bashrc <<'EOF' # Ajusta as variáveis 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

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

5 de 16 14-02-2015 13:23

Page 6: jboss

Após a execução do comando acima, será criado o script

instalar-jboss, que realiza as seguintes tarefas:

Ajusta algumas variáveis que representam:

O log de execução para algumas tarefas ($LOG), que será

gerado no diretório /tmp com o nome do arquivo sendo o

número do processo em execução;

O diretório que conterá o instalador do JBoss:

$INSTALADOR_DIR

O diretório que conterá o JBoss após sua instalação:

$FERRAMENTAS_DIR

O zip do JBoss: $JBOSS_ZIP

A URL base que será utilizada para o download do zip do

JBoss: $JBOSS_URL

O diretório que será construído pela extração do JBoss:

$JBOSS_DIR

Cria a função ok_ou_falha que verificará se houve erro na

execução do comando anterior e, em caso positivo, abortará a

execução do mesmo;

Cria o diretório $INSTALADOR_DIR e efetua a mudança para ele

(mkdir -p ...);

Baixa, caso não existam, o zip de instalação do JBoss e o arquivo

que contém seu checksum ($JBOSS_ZIP.md5) redirecionando a

saída do comando para $LOG;

Verifica o resultado do comando anterior e, em caso de insucesso,

aborta a continuação do script informando a ocorrência de um

erro;

Testa o md5sum do $JBOSS_ZIP;

Verifica o resultado do comando anterior e, em caso de insucesso,

aborta a continuação do script informando a ocorrência de um

erro;

Cria o diretório $FERRAMENTAS_DIR e efetua a mudança para ele

(mkdir -p ...);

Remove o diretório de instalação do JBoss (caso exista) e extrai o

conteúdo o zip do JBoss (unzip ...);

Verifica o resultado do comando anterior e, em caso de insucesso,

aborta a continuação do script informando a ocorrência de um

erro;

Remove (caso exista) e cria o link simbólico jboss apontando

para o diretório no qual foi extraído o JBoss (ln -s ...);

A criação deste link simbólico simplificará o valor da variável

$JBOSS_HOME tornando mais fácil a substituição do JBoss

por outra versão, caso precisemos realizar esta tarefa no

futuro;

Utiliza o grep para verificar se o conteúdo do arquivo

$HOME/.bashrc já foi atualizado com as configurações das

variáveis de ambiente e, em caso positivo, encerra a execução do

script;

Adiciona conteúdo ao arquivo ~/.bashrc ajustando o valor para

algumas variáveis de ambiente utilizadas pelo JBoss na sua

execução. As seguintes variáveis de ambiente são adicionadas:

$JAVA_HOME, que guarda a localização do diretório de

instalação do JDK;

$JBOSS_HOME, que guarda a localização do diretório de

instalação do JBoss;

$PATH, que agora agregará a localização para os binários do

JBoss ($JBOSS_HOME/bin);

Utiliza o sed para alterar o conteúdo do arquivo ~/.bashrc e

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

6 de 16 14-02-2015 13:23

Page 7: jboss

substituir a string FERRAMENTAS_DIR pelo valor correspondente a

variável $FERRAMENTAS_DIR;

Verifica o resultado do comando anterior e, em caso de insucesso,

aborta a continuação do script informando a ocorrência de um

erro;

A execução do script instalar-jboss, e o carregamento das

variáveis de ambientes necessárias para a execução do JBoss AS,

podem ser realizadas através da execução dos comandos a seguir

(observe a saída de execução do instalar-jboss):

$ chmod +x instalar-jboss && ./instalar-jboss Baixando jboss-as-distribution-6.0.0.20100429-M3.zip... Ok Extraindo jboss-as-distribution-6.0.0.20100429-M3.zip... Ok Criando o link jboss para jboss-6.0.0.20100429-M3... Ok Ajustando as variáveis de ambiente para o funcionando do JBoss... Ok $ source ~/.bashrc

O script instalar-jboss poderá ser executado quantas vezes for

necessário. Ele sempre apagará a instalação anterior do JBoss e

refazê-la. Só baixará o instalador do JBoss caso ele não seja

encontrado. Verificará se o checksum MD5 do instalador está correto

e, só reajustará o conteúdo de ~/.bashrc caso isto já não tenha

sido realizado.

Você pode verificar se o ajuste do arquivo ~/.bashrc foi realizado

com sucesso através da execução do comando tail, com o

parâmetro -n 4 para solicitar apenas a impressão das quatro últimas

linhas deste arquivo:

$ tail -n 4 ~/.bashrc # Ajusta as variáveis 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 variáveis de

ambiente ficam disponíveis. Como este arquivo é lido a cada vez que

se abre um shell no Linux, estas variáveis estarão disponíveis toda

vez que isto ocorrer.

A partir deste ponto, estamos preparados para executar o JBoss. Isto

é o que faremos nos próximos passos.

Iniciando e parando o JBoss

Da forma mais básica e simples possível

A execução do JBoss pode ser realizada através do comando a

seguir:

$ run.sh

Quando o comando acima é invocado, o JBoss inicia sua execução.

Vários serviços serão levantados por ele e o log de execução

aparece na tela aberta.

Após o JBoss subir todos os serviços da configuração corrente e

estar pronto para ser executado, uma mensagem como a

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

7 de 16 14-02-2015 13:23

Page 8: jboss

apresentada a seguir, deverá estar presente na console de sua

execução:

07:59:50,725 INFO [org.jboss.bootstrap.impl.base.server.AbstractServer] JBossAS [6.0.0.20100429-M3 "Neo"] Started in 38s:311ms

Este é o sinal visível pelo log, de que o JBoss foi iniciado.

Para finalizar a execução do JBoss existem várias alternativas. A

mais simples delas, caso tenhamos acesso a console de sua

execução, é 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 execução, educadamente. Isto

significa que ele solicitará, para cada um dos serviços em execução,

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 não queiramos que a execução do JBoss esteja atrelada a

uma console. Sendo assim, a forma correta de iniciarmos o JBoss

seria através do comando a seguir:

$ JBOSS_CONSOLE=/tmp/jboss.log; nohup run.sh &> $JBOSS_CONSOLE &

Com isto, o log de execução do JBoss (tanto para a saída padrão

quanto de erros) será direcionado ao arquivo /tmp/jboss.log. O

comando nohup desatrela a execução do comando run.sh do shell

corrente e o &, ao final do comando, coloca a execução do JBoss em

background, liberando o shell corrente para a digitação de novos

comandos.

Uma característica desta forma de inicialização do JBoss é que não

veremos mais o seu log na tela aberta. Para podermos então

acessá-lo, faremos uso do comando tail, conforme demonstrado a

seguir:

$ tail -f $JBOSS_CONSOLE

Outra característica importante é que, mesmo fechando o shell

corrente, o JBoss continuará em execução. Experimente isto! Feche

a console corrente, e abra uma nova. Após fazer isto, verifique que o

processo de execução do JBoss ainda está ativo, através 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 execução do comando java através script run.sh.

Outra forma de verificar a execução de uma aplicação Java, de uma

forma mais portável, é utilizar o comando jps. Ele é um utilitário 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 execução, é exemplificado a seguir:

$ jps -l | grep org.jboss.Main

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

8 de 16 14-02-2015 13:23

Page 9: jboss

Agora que não temos mais acesso a console de execução do JBoss,

como encerrá-lo? Alguns brutos diriam: kill -9 no process id (PID)

do JBoss ;-). Mas, nós somos educados! A menos que o JBoss não o

seja conosco, nós não 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 execução, podemos

colocá-lo em background. Para isto, os procedimentos são:

Iniciar o JBoss da forma mais básica e simples possível

(run.sh). Como vimos, ele ficará atrelado a execução da console

corrente;

Digitar, simultaneamente, as teclas Ctrl e Z (Ctrl+Z). Isto fará

com que o processo em execução do JBoss seja parado;

Executar o comando bg. Isto colocará a execução do JBoss em

background. Mas, trará o inconveniente de que qualquer log de

sua execução ainda aparecerá na tela da console aberta.

Execute os procedimentos acima antes de prosseguir!

Permitindo o acesso para além de localhost

Por medida de segurança o JBoss não permite, nas formas de

inicialização que foram apresentadas anteriormente, que ocorra o

acesso aos serviços levantados por ele, fora de localhost. Isto

significa, por exemplo, que não conseguiriamos acessar as interfaces

administrativas do JBoss a partir de outra máquina. Como testar isto?

Existem algumas formas. Uma delas é observar que portas estão

sendo utilizadas pelo processo do JBoss, como apresentado no

tópico "Verificando as portas utilizadas pelo JBoss". Execute os

comandos daquele tópico e depois retorne a este.

Pelo que podemos observar, por padrão todas as portas TCP abertas

pelo JBoss são acessíveis apenas pelo endereço IP 127.0.0.1

(localhost). Logo, tirando a própria máquina que executa o JBoss,

nenhuma outra poderá acessar seus serviços.

Liberar o acesso ao JBoss para outras máquinas, implica em

reinicializá-lo com um parâmetro que informe que ele deverá se ligar

a uma interface de rede que tenha um IP acessível por outras

máquinas, ou, que ele deverá se ligar a todas as interfaces de rede.

Estas tarefas podem ser realizadas através do parâmetro de

inicialização "-b <IP_OU_NOME>". Vamos então parar o JBoss em

execução e levantá-lo novamente, com este parâmetro:

$ shutdown.sh -S; tail -f $JBOSS_CONSOLE

Ao perceber que o JBoss foi finalizado com sucesso através da

observação do log, damos um Ctrl+C na execução 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 parâmetro "-b 0.0.0.0" passado ao run.sh,

estamos solicitando ao JBoss que ele entre em execução

aguardando conexões oriundas de qualquer uma de suas interfaces

de rede.

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

9 de 16 14-02-2015 13:23

Page 10: jboss

Após 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 (são

mostradas apenas algumas linhas):

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 13415/java tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN 13415/java tcp 0 0 0.0.0.0:5500 0.0.0.0:* LISTEN 13415/java tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 13415/java

Vendo a saída apresentada, notamos que conexões as portas 8080,

8083, etc, podem ser realizadas a partir de qualquer uma das

interfaces de rede. Isto é identificado na saída pelo número do IP

apresentado antes do número da porta: "0.0.0.0".

Podemos testar o acesso a uma porta servida pelo JBoss, através do

comando telnet, como exemplificado a seguir: (Substitua o IP

apresentado por um IP válido em tua máquina, 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 desejássemos que o JBoss se ligasse apenas a uma interface de

rede específica informaríamos, no lugar de "-b 0.0.0.0", o IP ou o

nome da máquina associada a ele (pelo arquivo /etc/hosts ou

pelo DNS). Por exemplo, -b 192.168.2.101.

Colocando uma instância diferente emexecução

Uma instância de JBoss, é uma configuração em execução. O JBoss,

ao ser instalado, vem com diferentes configurações e cada uma

delas é localizada no diretório $JBOSS_HOME/server, conforme

apresentado na saída do comando a seguir:

$ tree -L 1 -d $JBOSS_HOME/server /home/aluno/ferramentas/jboss/server ??? all ??? default ??? jbossweb-standalone ??? minimal ??? osgi ??? standard

A saída acima apresenta 6 configurações distintas. Por padrão,

quando não é especificado que configuração será executada, o jboss

levantará a "default".

Cada configuração, possui um conjunto próprio de diretórios e

arquivos. Por exemplo, na configuração "default", temos os seguintes

diretórios no primeiro nível:

$ tree -L 1 -d $JBOSS_HOME/server/default

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

10 de 16 14-02-2015 13:23

Page 11: jboss

/home/aluno/ferramentas/jboss/server/default ??? conf ??? data ??? deploy ??? deployers ??? lib ??? log ??? tmp ??? work

O escopo deste tópico não abrange a explicação de cada um destes

diretórios. Isto é abordado em outra parte do treinamento

"`JBAS-1-T". Entretanto, é aqui que informamos que, para levantar

uma instância diferente de JBoss, o parâmetro "-c

<configuracao>" deve ser passado ao script run.sh. Devemos

também notar que "run.sh" ou "run.sh -c default" significam a

mesma coisa. Para testar o uso deste parâmetro, vamos finalizar a

instância corrente:

$ shutdown.sh -S; tail -f $JBOSS_CONSOLE

Agora, vamos iniciar uma instância diferente do JBoss, a "minimal":

$ run.sh -c minimal

Podemos observar que esta instância sobe em bem menos tempo

que a "default". Dê um Ctrl+C em sua console para finalizá-la.

Também foge do escopo deste tópico as explicacões para as

configurações de JBoss. Mais informações sobre isto podem ser

obtidas no treinamento "`JBAS-1-T".

Colocando mais de uma instância emexecução

É possível subir várias instâncias do JBoss ao mesmo tempo.

Basicamente, existem duas alternativas para isto: utilizar um IP

diferente para cada instância ou, utilizar um conjunto de portas

diferente para cada uma delas.

A alternativa mais comum para administradores de servidores Linux,

após terem conhecido o uso do parâmetro "-b <IP_OU_NOME>",

discutido no tópico anterior, é realizar a criação de uma interface de

rede (virtual ou não) e levantar cada instância de JBoss num IP

específico. Esta alternativa entretanto, exige o domínio de comandos

do Linux. A outra solução, utilizar portas diferentes para o JBoss, não

exige conhecimentos específicos de Linux e pode ser aplicada em

diferentes sistemas operacionais.

Através de portas diferentes

A execução de mais de uma instância de JBoss através do uso de

um conjunto diferente de portas, para cada uma delas, é realizada na

versão 6 pelo uso de uma propriedade de sistema, passado para a

JVM que executará a instância.

O procedimento é bem simples. Uma segunda instância baseada em

"default" poderá subir da seguinte forma:

Copiamos o conteúdo de "default" para outro diretório, também

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 parâmetro "-Dpropriedade=valor";

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

11 de 16 14-02-2015 13:23

Page 12: jboss

Estes são os comandos que irão criar "intancia2" e colocá-la em

execução, ao mesmo tempo em que será realizada a inicialização da

instância "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 instância, podemos executar o seguinte

comando:

$ shutdown.sh -S -s jnp://localhost:1199

Nos parâmetros passados ao shutdown.sh, além do -S que já

conhecíamos, desta vez também 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 execução. Por

padrão, quando não informamos estes parâmetros/valores, é como

se estivéssemos escrito shutdown.sh -S -s

jnp://localhost:1099. O parâmetro -s ou --server=

especifica uma URL para o endereço 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

configuração default (sem o uso desta propriedade) tem o seu

valor incrementado de 100. Se utilizarmos o valor ports-02, ao

valor padrão é somado 200, e assim por diante... Podemos observar

isto pelo uso do netstat:

Obtendo as portas utilizadas pela primeira instância (ordenando e

mostrando apenas as seis primeiras linhas da saída 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 instância (ordenando e

mostrando apenas as seis primeiras linhas da saída 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

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

12 de 16 14-02-2015 13:23

Page 13: jboss

0.0.0.0:* LISTEN 19357/java tcp 0 0 127.0.0.1:1191 0.0.0.0:* LISTEN 19357/java tcp 0 0 127.0.0.1:1198 0.0.0.0:* LISTEN 19357/java tcp 0 0 127.0.0.1:1199 0.0.0.0:* LISTEN 19357/java tcp 0 0 127.0.0.1:3973 0.0.0.0:* LISTEN 19357/java tcp 0 0 127.0.0.1:4544 0.0.0.0:* LISTEN 19357/java

Através de IPs diferentes

Executar outra instância do JBoss através de IPs diferentes já foi

explicado. Não é mais novidade que o parâmetro "-b

<IP_OU_NOME>", passado ao run.sh, possibilita a execução de

uma outra instância do JBoss num IP diferente mas, escutando o

mesmo conjunto de portas. A questão é: e se tivermos apenas uma

interface de rede, por exemplo, a eth0? Bem, neste caso, se não

quisermos mesmo utilizar um conjunto diferente de portas, a solução

é 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 disponível, o comando a seguir criaria a

interface virtual eth0:0:

ifconfig eth0 add 192.168.1.2 netmask 255.255.255.0

Agora, teríamos uma interface de rede virtual, associada a mesma

placa de rede mas com um IP diferente e, com isto, poderíamos

iniciar o JBoss neste novo IP através de run.sh -b 192.168.1.2.

Não 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 parâmetros abaixo:

ifconfig eth0 del 192.168.1.2

Verificando as portas utilizadas peloJBoss

O comando netstat possibilita-nos averiguar que portas são

utilizadas por um processo em execução. Para testá-lo, caso o JBoss

não esteja no ar, vamos iniciá-lo:

$ JBOSS_CONSOLE=/tmp/jboss.log; nohup run.sh &> $JBOSS_CONSOLE &

Agora, a partir da execução do comando a seguir, solicitaremos ao

netstat que nos informe que portas estão sendo utilizadas pelo PID

do JBoss:

$ sudo netstat -tulpn | grep `ps -ef | grep org.jboss.Main | awk '{print $2}'`

A linha acima merece algumas explicações! Nela, o netstat está

sendo executado com o comando sudo logo, é como se ele

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

13 de 16 14-02-2015 13:23

Page 14: jboss

estivesse sendo rodado pelo superusuário (root) e, portanto,

imprime a informação de todos os processos em execução na

máquina. Mas, nós só queremos as informações 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 saída já temos isto, mas queremos apenas um

número, que é representado pelo segundo campo (na saída do ps).

Logo, utilizamos o canivete suiço awk para obter apenas este campo.

O número obtido é passado ao grep que, por sua vez, recebe como

entrada, a saída do netstat filtrando assim, apenas as portas

utilizadas pelo JBoss (colhemos da saída do netstat apenas os

processo com o PID do mesmo).

A saída do comando executado obviamente varia entre máquinas

diferentes mas, deverá ser algo próximo ao apresentado abaixo:

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:8083 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:5500 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:4444 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:5501 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:4446 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:3873 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:1090 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:1091 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:5445 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:4712 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:8009 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:4713 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:4714 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:1098 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:1099 0.0.0.0:* LISTEN 11068/java tcp 0 0 127.0.0.1:5455 0.0.0.0:* LISTEN 11068/java

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

14 de 16 14-02-2015 13:23

Page 15: jboss

Follow Follow @dicasl@dicasl 4,843 followers 2

udp 0 0 0.0.0.0:37770 0.0.0.0:* 11068/java udp 0 0 0.0.0.0:9876 0.0.0.0:* 11068/java

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

onde para as conexões do tipo tcp está escrito LISTEM, indica que

tais IPs/portas estão aguardando conexões. A sétima 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 Jerônimo é consultor, instrutor e palestrante.Trabalha com linguagens de programação e ferramentasexecutadas sob plataformas abertas, baseadas emsoftware livre. Presente no mercado corporativo desde1993, atualmente produzindo soluções com o uso deframeworks e de práticas ágeis em Java, Python, Scala,Clojure ou Groovy. Vasta experiência em arquitetura,desenvolvimento e infraestrutura para o atendimento arequisitos não funcionais em softwares de missão crítica,escaláveis e tolerantes a falhas, executados por clustersde servidores de aplicações. Currículo completo:http://j.mp/curriculopj

Veja a relação completa dos artigos de Paulo Jerônimo

PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site

podem ser encontradas em nossa Bibliografia.

Avalie esta dica

Avaliação: 3.0 /5 (1904 votos)

Opinião dos Leitores

Flávio Felipe06 Nov 2014, 11:57

Excelente passo a passo!

felipe15 Abr 2011, 09:36

Muito obrigado, ajudou bastante

2GostoGosto

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

15 de 16 14-02-2015 13:23

Page 16: jboss

Privacy Policy

O material veiculado neste site poderá ser livremente distribuído

para fins não comerciais, segundo os termos da licença da

Creative Commons

.

Hermogenes11 Jul 2010, 02:03

Parabéns pelo artigo. Muito bem elaborado o passo a passodas instalações e configurações. Uma dúvida, no tópico"Instalando JDK da Sun" a última linha do script não seria:update-java-alternatives -s java-6-sun?[]sHermogenes

*Nome:

Email:

Me notifique sobre novos comentários nessa página

Oculte meu email

*Texto:

Para publicar seu comentário, digite o código contido naimagem acima

Enviar

Powered by Scriptsmill Comments Script

[Dicas-L] Instalando, iniciando, testando e parand... http://www.dicas-l.com.br/arquivo/instalando_inic...

16 de 16 14-02-2015 13:23