Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

Como configurar a propriedade "jboss.as.management.blocking.timeout" para resolver o "JBAS013412: Timeout after ... seconds waiting for service container stability." no EAP 6.x/7.x

Solution Verified - Updated -

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.x
    • 7.x

Issue

  • O servidor lança o seguinte erro ao iniciar:
12:21:13,956 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS013412: Timeout after [300] seconds waiting for service container stability. Operation will roll back. Step that first updated the service container was 'add' at address '[("interface" => "management")]'
  • Existem aplicações muito grandes em execução no servidor e podem levar de 5 a 6 minutos para os servidores iniciarem. Então, como defino o tempo limite para 600 ou 900 segundos? Onde e como configurá-lo?

  • A instância slave do JBoss EAP não inicia quando o código da aplicação leva muito tempo para carregar.

  • Estamos vindo através deste bug mencionado em https://bugzilla.redhat.com/show_bug.cgi?id=1117945 e gostaríamos de saber se foi corrigido na versão 6.3.3+.

  • Ao tentar implantar uma nova versão do nosso aplicativo, recebo o seguinte erro. "Operation timeout awaiting service container stability", normalmente, o aplicativo era implantado bem rápido. Agora, ele aguarda até que o tempo limite seja atingido. O que pode estar causando esse problema?

  • O servidor de aplicativos JBoss não é capaz de reiniciar depois de gerar o erro abaixo. Tivemos esse problema em nossos servidores no passado, então definimos essa propriedade, parece que o servidor está esperando 600 segundos para que a implantação aconteça e falhando após isto. Você poderia, por favor, nos aconselhar sobre qual poderia ser o problema, já que nosso ambiente de QA está inativo neste momento?

02:30:20,757 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS013412: Timeout after [600] seconds waiting for service container stability. Operation will roll back. Step that first updated the service container was 'add' at address '[
    ("core-service" => "management"),
    ("management-interface" => "native-interface")
]'
  • Nós executamos o JBoss em uma VM com pouca capacidade para fins de teste, às vezes pode levar muito tempo para iniciar e expirar. É possível estender o tempo limite?

  • Não é possível implantar o arquivo WAR na VM da AWS

  • Quando nós iniciamos o serviço do JBOSSEAP6, a implantação produz um arquivo ".failed" no diretório $JBOSS_HOME/<standalone|domain>/deployments, ao invés de um arquivo ".deployed". Esta é uma nova instância do AWS EC2 Windows Server 2012 R@ - um ambiente de testes por agora e o problema ocorre sempre que iniciamos o serviço do JBoss.

Resolution

No EAP 7.x e no EAP 6.3.0 ou posterior, você pode configurar a propriedade de sistema jboss.as.management.blocking.timeout para ajustar o tempo limite (segundos) aguardando a estabilidade do contêiner de serviço.

**Para o modo standalone ** :

  • Use o seguinte comando da CLI para definir jboss.as.management.blocking.timeout. Por exemplo:

    /system-property=jboss.as.management.blocking.timeout:add(value=600)
    

    o comando acima irá definir a propriedade jboss.as.management.blocking.timeout no arquivo de configurações( por exemplo: standalone-*.xml) como:

    ...
    </extensions>
    <system-properties>
          <property name="jboss.as.management.blocking.timeout" value="600"/> 
    </system-properties>
    <management>
    ...
    

ou

  • Adicione -Djboss.as.management.blocking.timeout=600 ao argumento da jvm do standalone.sh ou adicione o seguinte JAVA_OPTS no arquivo standalone.conf:

    JAVA_OPTS="$JAVA_OPTS -Djboss.as.management.blocking.timeout=600"
    

Para o modo domínio :

  • Edite o $JBOSS_HOME/bin/domain.conf e configure-o através desta linha -Djboss.as.management.blocking.timeout=600 depois do bloco if:
...
#
# Specify options to pass to the Java VM. 
#
if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
else
   echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi

JAVA_OPTS="$JAVA_OPTS -Djboss.as.management.blocking.timeout=600"
...

Nota: O único caso de uso para configurar uma propriedade no server-group ou servidor de domínio individual seria se você quisesse um timeout menor do que foi configurado no host controllers

Root Cause

  • No EAP 6.3.0.ER8 há uma nova classe em jboss.as.controller: BlockingTimeout. Esta classe carrega o valor da propriedade do sistema jboss.as.management.blocking.timeout ou o padrão de 300 (segundos).
    Nota: Esta propriedade não é um tempo limite por implementação, mas um tempo limite na estabilidade do contêiner e se o jboss.as.management.blocking.timeout for atingido durante a inicialização , todos os aplicativos serão desfeitos as implantações previamente realizadas e o contêiner será encerrado. O motivo por trás disto é que ter um servidor funcionando parcialmente é perigoso pois não poderá notar maiores falhas.

Diagnostic Steps

  • Confirme se há algum escaneador de vírus instalado no servidor
  • Se o problema foi causado após realizar alterações na aplicação, verifique exatamente o que foi feito desde quando estava funcionando? Houve alguma atualização? Adição? Apontamento para um novo banco de dados ou sistema externo?
  • Colete informações de thread dumps durante o período de inicialização para que possamos verificar onde está paralisando.
  • Tenha certeza de adicionar a configuração no domain.conf no Domain Controller e no Slave Host Controller.

Depois de coletar, nós poderemos analisar e verificar e existe algum tipo de impasse ou recurso que seus threads estão aguardando, o que os impede de concluir a implantação, etc.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments