Um Pouco Mais Sobre Deploy no JBoss AS 7

Postado em

Olá amigos,

O post de hoje é mais uma dica da experiência que adquiri no dia a dia. Em versões anteriores o arquivo da aplicação WAR/EAR era implantado no diretório ${JBOSS_HOME}/server/<profile>/deploy e quando quiríamos realizar um BKP, bastava apenas copiá-lo para um outro lugar.  Eu sempre faço isso quando vou realizar um novo deploy. Eu copio o WAR  atual para o diretório tmp. Isso me dá mais segurança para envitar problemas caso alguma coisa esteja errada na versão implantada.

No JBoss AS 7 em standalone mode é bem simples: Basta copiar o arquivo que fica deployado em ${JBOSS_HOME}/standalone/deployments.

Agora no domain mode temos um problema. Quando realizamos o deploy do arquivo WAR/EAR, ele é descompactado e copiado para o diretório content em ${JBOSS_HOME}/domain/data/content ficando quase impossível encontrar o arquivo deployado. Entao se você está utilizando o domain mode sempre faça uma cópia de segurança do arquivo WAR/EAR antes de realizar o deploy, acredito que essa seja o melhor approach.

Qualquer dúvida estou a disposição.

Abs

11 comentários em “Um Pouco Mais Sobre Deploy no JBoss AS 7

    diogenes12 disse:
    22 de março de 2013 às 15:43

    Olá Mauricio,
    Em meu servidor JBoss7, faço algumas conexões com o banco Oracle, porem sem nenhuma configuração adicional, todavia, preciso fazer uma conexão com um banco ORACLE 10G do JBoss, através do TNSNAMES do ORACLE, um arquivo.ora, como devo fazer a conexão deste .ORA, do meu JBoss7 com o Oracle para realizar esta conexão?

    datasource

    jdbc:oracle:thin:@192.168.222.114:1521:pprod
    oracle.jdbc.OracleDriver
    oracle-10.jar

    userx
    xxx

      Mauricio Magnani Jr respondido:
      22 de março de 2013 às 18:35

      O Diogenes adoraria ajudar mas eu nunca trabalhei com JBoss e Oracle ao mesmo tempo… na vdd não trabalho com Oracle desde 2008 então nessa nem vou saber te ajudar =/

      Abs

    Renato disse:
    24 de maio de 2013 às 11:04

    Bom dia Maurício,

    Estou nas fases finais de teste com o JBoss AS7 usando o modo “Domain”. Está quase tudo ok, porém estamos com uma dúvida.
    Quando faço um deploy de uma aplicação tudo ocorre as mil maravilhas
    com tudo quando preciso fazer uma update da mesma aplicação ele não permite ele da um erro dizendo que já existe uma aplicação igual.
    Neste ponto verifiquei que nas telas de deploy mais precisamente na segunda tela existem 3 campos.

    1) Key
    2) Name
    3) Runtime Name

    O que fiz foi alterar o nome da aplicação no campo 2 e assim consegui fazer o deploy.
    Muito bem, só que eu preciso fazer com que a nova versão da aplicação
    entre em produção sem que os clientes percebam.
    Será que você já passou por isso.

    Resumindo é que preciso fazer uma update de uma aplicação sem derrubar os clientes que já estão usando a versão anterior.

    Um Abraço.

      Mauricio Magnani Jr respondido:
      24 de maio de 2013 às 13:14

      E ai Renato Boa Tarde,

      Antes de responder a sua pergunta gostaria de saber se está usando um balancer com o Apache com Mod JK ou Mod Cluster?

      Acredito que posso te dar um resposta melhor com essas informações.

      Abs

    Renato disse:
    24 de maio de 2013 às 13:30

    Maurício,

    Na verdade eu uso uma outra técnica. Estou usando um cara chamado
    LVS onde os servidores ficam por baixo dele e este cara roda em outro servidor. Com isso eu não preciso executar o apache pois este cara e quem faz o balanceamento. Funciona perfeitamente inclusive no tocante a seções e tudo mais.

    Abs

    Mauricio Magnani Jr respondido:
    24 de maio de 2013 às 13:51

    Legal Renato,
    Nesse caso já que o LVS faz o balancer para o JBoss voce poderia criar 2 Server Groups utilizando o mesmo profile.

    Voce tem que realizar o deploy da aplicação nesses 2 Server Groups e pronto!

    Quando for fazer o update da aplicação faça apenas para um do server groups primeiro enquanto o outro continuará respondendo pois acredito que o seu LVS deva verificar se a aplicação é “Up” no JBoss.

    Depois disso faça a atualização no outro Server Group.

    Sendo assim a sua aplicação não ficará indisponível para o usuário e ele nem vai perceber que a aplicação foi atualizada.

    Bom eu posso dar uma olhada e verificar se tem outra maneira… mas acredito que seja isso!

    Eu realmente não conheço nenhuma maneira de atualizar a aplicação e manter a sessão do usuário a não se que tudo fosse replicado para outro servidor quando o servidor que está sendo atualizado ficar “Down”.

    Esse fim de semana vou fazer mais uns testes e voltamos a conversar!

    Abraços

    Renato disse:
    24 de maio de 2013 às 14:27

    Ok,

    Vamos ver se eu entendi.

    Sim o LVS percebe se um dos nós está ativo ou não e também posso
    criar dois servers grupos.
    Mais contudo imagem que os cliente que estão conectados na versão antiga de um dos server grupos for undeployada, suas conexões e consequentemente suas seções serão perdidas e por alguns segundos
    o que ocorrerá é um erro de aplicação não existente até que seja feita
    uma nova requisição.
    Não sei se fui claro!

    Você concorda?

    Na versão 6 existe um botão de “update” para exatamente se fazer o
    deploy de uma nova versão da mesma aplicação e que os clientes
    que encontram-se conectados não percam nada. Assim que ele feche
    a seção atual e tente abrir uma nova seção a versão que lhe será
    fornecida será a da nova versão da aplicação.

    Na verdade o que imagino sobre o conceito de “Hot Deploy” é exatamente
    isso.

    É isso?

    De qualquer forma vou fazer o teste que você sugeriu.

    Abs

    Renato disse:
    24 de maio de 2013 às 15:58

    Grande Maurício,

    Cara sua idéia funcionou!
    É isso mesmo.

    Criei um novo grupo no mesmo perfil e a única resalva é que a primeira coisa a se fazer e parar o server (via console mesmo) e assim deployar
    a versão nova nestes servers.

    Cara nos cluster ficou um show, nem a seção o cliente perde.

    Maurício um grande abraço e muito obrigado pela ajuda, e qualquer coisa estamos aqui.

      Mauricio Magnani Jr respondido:
      24 de maio de 2013 às 22:40

      Opa Renato desculpe nao ter respondido a pergunta anteiriro hehe tava meio corrido hoje a tarde….

      Cara fico feliz que tenha funcionado🙂

      Eu faço desse jeito com Apache + Mod Cluster ou Mod JK mas com o LVS nunca havia visto um caso!

      Parabéns ai vejo que voce está manjando bem do JBoss 7!

      Bom te digo a mesma coisa precisar estamos ai!

      Grande Abraço😀

    Alves disse:
    10 de julho de 2013 às 1:32

    Maurucio eu estou com problema quando faço o deploy pelo console de administraçao do Jboss 7 As pois estava indo tudo bem, mas agora ele não abre a opção de “save” quando terminar o upload. Olhei na log e encontrei essa mensagem: 23:41:33,155 WARN [org.jboss.as.server] (HttpManagementService-threads – 61) JBAS015891: Caught exception closing input stream for uploaded deployment content: java.io.IOException: Stream closed
    Eu estou trabalhando em modo Standalone.

      Mauricio Magnani Jr respondido:
      10 de julho de 2013 às 9:33

      Oi Alvez,

      Esse é um erro bem genérico que pode ocorrer quando o pacote é corrompido no upload. O problema que até agora não consegui identificar a causa real desse problema o que faço é tentar novamente. Uma coisa interessante que pode fazer é verificar as permissões dos diretórios que o JBoss está instalado pois isso pode ocorrer também pelo fato de o JBoss não ter permissão para salvar o arquivo.

      Abs

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s