Criando um Novo Perfil no JBoss AS 7 em Modo Standalone
Umas das questões que mais estou me deparando atualmente no JBoss AS 7 é sobre a criação de novos perfis. Sei que isso é trivial para muitas pessoas que estão lendo esse post mas realmente existem dúvidas relacionadas a isso. Em versões anteriores bastava apenas copiar um dos perfis disponiveis como all, default, etc.
No JBoss AS 7 o diretório JBOSS_HOME/standalone deve ser duplicado para a criação de um novo perfil, Por exemplo:
cp -Rap JBOSS_HOME/standalone JBOSS_HOME/meuperfil
Para iniciar a instância origial execute o comando abaixo:
./standalone.sh -c standalone-full.xml
Para iniciar o perfil criado execute:
./standalone.sh -c standalone-full.xml -Djboss.server.base.dir=../meuperfil -Djboss.socket.binding.port-offset=150
É necessário definir jboss.server.base.dir com o caminho completo ou como no exemplo acima se você estiver no diretório JBOSS_HOME/bin.
O parâmetro jboss.socket.binding.port-offset é similar ao jboss.service.binding.set com a diferença de que no parâmetro antigo você passava os intervalos de portas pré definidos como por exemplo ports-01 e já no novo modelo voce pode passar intervalos de sua preferência como 100, 150, 200, etc.
Espero que tenha ajudado.
[]s
6 de março de 2013 às 17:36
Olá Mauricio, parabéns pelo material.
Estou com uma dúvida. Realizei os seguintes procedimentos acima citado.
Vou citar os passos que realizei. Obs. Estou fazendo os testes em um ambiente local com Windows 7, antes de ir para a produção no Linux Ubuntu.
Copiei o Jboss7 para a pasta C:\apps\jboss
Fiz uma cópia da pasta: C:\Apps\jboss\standalone colocando o nome de: perfil1
Editei o arquivo “standalone.xml” no caminho a seguir alterando a porta-offset para 150: C:\Apps \jboss\perfil1\configuration\standalone.xml alterando a linha: port-offset=”${jboss.socket.binding.port-offset:150}”>
Dentro do console do CMD, diretamente na pasta bin: C:\Apps\jboss\bin> Executei os comandos:
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml -Djboss.server.base.dir=../perfil1 -Djboss.socket.binding.port-offset=150
É preciso alterar as portas de acesso ao HTTP 8080 e ao console 9990 no novo perfil?
Pois quero abrir cada instancia com uma porta especifica.
Desde já agradecido pela atenção!
6 de março de 2013 às 18:52
E Diogenes Obrigado!!!
Seguinte vc fez tudo certo já rsrsrs
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml — Isso está porta 8080
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml -Djboss.server.base.dir=../perfil1 -Djboss.socket.binding.port-offset=150 — isso está na porta 8230 ( 8080 + 150 )
O port-offset ser para isso… vc colocou as instancias rodando em portas diferentes!!!
Verifica ai e me diz se está funcionando!
Abs
6 de março de 2013 às 22:43
Olá Mauricio, obrigado pela atenção. Vou fazer o teste amanhã cedo e te aviso, mas vai dar certo.
Uma pequena dúvida, para carregar mais de um perfil, precisarei carregar 5 perfis.
É conforme coloquei abaixo? Ou é outra a forma de carregá-los?
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml -Djboss.server.base.dir=../perfil1 -Djboss.socket.binding.port-offset=150 -Djboss.server.base.dir=../perfil2 -Djboss.socket.binding.port-offset=200 -Djboss.server.base.dir=../perfil3 -Djboss.socket.binding.port-offset=250 -Djboss.server.base.dir=../perfil4 -Djboss.socket.binding.port-offset=300 -Djboss.server.base.dir=../perfil5 -Djboss.socket.binding.port-offset=350
Abraço!
7 de março de 2013 às 9:04
Oi Diogenes… sim basicamente seria isso ou voce poderia criar cópias do standalone.xml. Por exemplo standalone-pefil1.xml e na inicialização apontar para cada xml, só nao me lembro o nome do parametro agora…
Olhando bem a quantidade de instancias te pergunto: Voce ja pensou em utilizar o domain mode?
Ficaria bem mais organizado e voce poderia colocar cada aplicação e sua porta especifica o que acha?
Abs
7 de março de 2013 às 22:42
Olá Mauricio, obrigação pela atenção!
Fiz e deu certo. Na citação acima.
Tive que fazer instancia por instancia:
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml -Djboss.server.base.dir=../perfil1 -Djboss.socket.binding.port-offset=150
C:\Apps\jboss\bin>standalone.bat -c standalone-full.xml -Djboss.server.base.dir=../perfil2 -Djboss.socket.binding.port-offset=200
…
Muito trabalhoso!
Ate tentei fazer da forma como você mencionou no último post, mas não consegui, fazer as cópias do standalone.xml. Como poderia fazer ele?
Aproveitando, por dominio seria melhor, todavia não tenho experiencia no JBoss, você poderia me instruir para criar por domínio.
Abraço, obrigado pela atenção!
8 de março de 2013 às 11:30
Entao voce teria que fazer cópias do standalone.xml e na inicializacão dizer: –server-config=meu-standalone.xml e por vai… só lembrar de alterar o offset….
Em relação ao domain vc pode ver esse post… acredito que pode te ajudar 🙂
http://middlewaremagic.com/jboss/?p=1900
A idéia do domain é ter uma centralização das configurações e recursos em um só lugar o Domain Controller!!!
Abs
8 de março de 2013 às 11:33
Esse link também é útil: https://docs.jboss.org/author/display/AS71/Command+line+parameters nele estão alguns params aceitos pele JBoss 7!
12 de março de 2013 às 8:57
Olá Mauricio, obrigado pela atenção de sempre.
Amigo, estou com uma dúvida, já estou com o meu ambiente em produção, criei algumas instancias e estou rodando conforme ambiente acima, na verdade com algumas complexidades a mais.
Estou tentando parar uma instancia especifica, quando rodo o comando: #/jboss/bin/jboss-cli.sh –connect command=:shutdown
Para parar uma aplicação, ele para apenas a do perfil Standalone-Full, como poderia proceder para parar um perfil especifico?
Abraço.
12 de março de 2013 às 9:15
Oi Diógenes, no problem.
Cara acredito que voce não consiga para um profile pois profiles são apenas conjuntos de tecnologias agrupadas e não uma instância em si, por isso disse que o modo Domain seria mais interessante para o seu ambiente!
Mas eu entendi o que voce quis dizer ( pelo menos eu acho )…
Acho que vc está rodando todas as instancias na mesmo máquina e fazendo binding no mesmo ip correto? Acredito que vc utilizou o jboss.socket.binding.port-offset que por exemplo em 100 eleva a management.native.port para 10099 entao para parar a instancia que está no offset “100” siga os passos abaixo:
magnani:jboss-as-7.1.1.Final mmagnani$ ./bin/jboss-cli.sh
You are disconnected at the moment. Type ‘connect’ to connect to the server or ‘help’ for the list of supported commands.
[disconnected /] connect localhost:10099
[standalone@localhost:10099 /] :shutdown
É isso ai mano!
Aquele Abraço!