EAP 6 で JBAS013412: Timeout after ... seconds waiting for service container stability. を解決するために jboss.as.management.blocking.timeout 設定する
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Issue
- サーバーの起動時に以下のエラーが出力されます。
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")]'
-
サーバーで非常に大きなアプリケーションが実行しており、サーバーを起動するのに 5~6 分かかる場合があります。したがって、タイムアウトを 600 または 900 秒に設定するにはどうすれば良いですか? どこでどのように設定しますか?
-
アプリケーションコードのロードに時間がかかりすぎる場合は、スレーブの
JBoss EAPインスタンスが起動しません。 -
https://bugzilla.redhat.com/show_bug.cgi?id=1117945 に記載されているバグが発生しました。この問題は 6.3.3 または将来の 6.4 で修正されましたか?
-
新しいバージョンのアプリケーションをデプロイすると、"Operation timeout awaiting service container stability" エラーが発生します。通常、アプリケーションのデプロイは非常に速くなります。タイムアウトになるまで待ちます。この問題が発生している原因は何ですか?
-
以下のエラーが発生したあと、Jboss アプリケーションサーバーを再起動することができません。以前この問題が発生していたので、<property name="jboss.as.management.blocking.timeout" value="600"/> プロパティを設定しました。すると、サーバーがデプロイメントが発生するのを 600 秒待って、その後失敗するようです。このとき QA 環境がダウンします。この問題を解決するにはどうすれば良いですか?
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")
]'
- テスト目的で動力不足の仮想マシンで
jbossを実行すると、起動に時間がかかり、その後タイムアウトになる場合があります。タイムアウトの時間を延ばすことはできますか? - AWS 仮想マシンに WAR ファイルをデプロイすることができません。
- JBOSSEAP6 windows サービスを開始すると、デプロイメントは ".deployment" ファイルではなく、デプロイメントディレクトリに ".failed" ファイルを作成します。これは新たに作られた AWS EC2 Windows Server 2012 R@ インスタンスです。これは現在のところテスト環境で、JBoss サービスを開始しようとするたびに問題が発生します。
Resolution
- EAP 6.3.0 以降では、設定ファイル (
standalone-*.xmlまたはdomain.xmlファイル) に、システムプロパティjboss.as.management.blocking.timeoutを設定します。たとえば以下のようになります。
...
</extensions>
<system-properties>
<property name="jboss.as.management.blocking.timeout" value="600"/>
</system-properties>
<management>
...
- 以下の CLI コマンドを使用してこれを設定します。
スタンドアロンモードの場合:
/system-property=jboss.as.management.blocking.timeout:add(value=600)
ドメインモードの場合:
- $JBOSS_HOME/bin/domain.conf を編集し、if ブロックの後の
-Djboss.as.management.blocking.timeout=600から設定します。
...
#
# 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_OPS -Djboss.as.management.blocking.timeout=600"
...
注意: サーバーグループまたは個々のドメインサーバーレベルでプロパティを設定する使用事例でのみ、ホストコントローラーに設定したタイムアウトより低いタイムアウトの設定が必要になる可能性があります。
Root Cause
- EAP 6.3.0.ER8 の
jboss.as.controller: BlockingTimeoutに新しいクラスがあります。このクラスはjboss.as.management.blocking.timeoutの値をロードするか、300 (秒) をデフォルトに設定します。
注意: このプロパティは、デプロイメントごとのタイムアウトではなく、コンテナーの安定性におけるタイムアウトです。そして、起動時にjboss.as.management.blocking.timeoutに到達すると、すべてのアプリケーションがデプロイされなくなり、コンテナーがシャットダウンします。この根拠としては、重要な失敗に気づかない可能性があるため、半分稼動しているサーバーに潜在的な危険があるということです。
Diagnostic Steps
- ウィルススキャナーがサーバーにインストールされているかどうかを確認します。
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.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
