WebOTX の起動停止失敗について

以下では、WebOTX のサービスやドメインが異常停止した場合の対処方法について説明しています。

WebOTX Agent Service サービスのタイムアウト

Windows 環境において、管理ドメイン(WebOTXAdmin)の起動は、"WebOTX Agent Service"サービスにより行われます。
WebOTX Agent Service は、サービス開始時、管理ドメイン(WebOTXAdmin)の起動結果を確認します。
WebOTXAdmin ドメインの起動中に異常が発生し、WebOTXAdmin ドメインの起動が異常になった場合には"WebOTX Agent Service"サービスは停止状態となります。

管理ドメインの起動が、一定時間(デフォルト10 分)以内に終了しない場合、もしくは、応答がない場合にサービスのタイムアウトが発生し"WebOTX Agent Service"サービスは停止状態になります。

サービスのタイムアウトが発生した後もドメインの起動は継続されるため、時間が経過すればドメインは正常に起動する場合があります。各ドメインの起動状態を確認するには、otxadmin list-domain コマンドで確認してください。

よく発生するケースとして、サービス単体では起動できるが、再起動を行うとエラーが発生する場合があります。再起動時は、複数のアプリケーションが同時に起動されることで負荷が高くなり一定時間内に起動できなるケースが発生します。このような場合には、タイムアウト時間を変更することで対応可能です。詳細は、 [ ドメイン構築・基本設定ガイド > 1. Windowsサービスとrcスクリプト > 1.3. サービスの設定 ] を参照してください。

また、イベントログ(アプリケーション)に以下のエラーメッセージが出力されている場合があります。 WebOTX Agent Serviceは、起動処理内でWebOTXAdminドメインを起動しますが、以下のエラーメッセージは、そのWebOTXAdminドメインの起動処理でエラーを返した場合に出力されます。

OTX18011006: Start command error. reason: Exec Error. exitcode = 1

この場合、一旦 WebOTX Agent Serviceを停止して、運用管理コマンドから直接 WebOTXAdmin ドメインの起動を実行して、エラーが発生するかを確認してください。エラーが発生した場合、運用管理コマンド上の出力内容やログから以下の項目に該当しないか確認してください。

上記の項目に該当しない場合は、以下の採取資料をご送付の上、開発元にお問い合わせください。

採取資料

イベントログ(アプリケーション、システム、セキュリティ)
${INSTALL_ROOT}/config/asenv.bat
${INSTANCE_ROOT}/logs/server.log
${INSTANCE_ROOT}/logs/webotx_agent.log
${INSTANCE_ROOT}/config/domain.xml

otxadmin コマンドによるドメイン起動でタイムアウト

otxadmin コマンドからドメインを起動した場合、一定時間以内にドメインが起動してこない場合にタイムアウトエラーが発生します。デフォルトでは、停止状態(stopped)から開始状態(starting)状態になるまでに3分、開始状態(starting)から稼動状態(running)になるまで20 分を超過した場合にotxadmin コマンドはエラーとなりドメイン起動を中止します。

たとえば、多くの子ドメインを作成した場合の管理ドメインの起動時や、Java VMオプションにプロファイル設定を行った場合に発生することがあります。このような場合には、以下の設定を行うことで、otxadminコマンドのタイムアウト時間を変更することが可能です。

${AS_INSTALL}/config ディレクトリ配下に otxadmin.properties というファイル名で新規にファイルを作成します。

ファイルをエディタで編集し、0から2147483の範囲内で以下の例のように設定を記述します。(単位は秒)

waitDomainTimeout=180
waitDomainRunning=1200
ドメインの起動に失敗
事象説明

管理ドメインの起動処理中、または、一般ドメインの起動処理中に問題が発生し、ドメインが異常終了した場合には、Windows の場合WebOTX Agent Service は停止状態になります。また、UNIX の場合、WOAgentSvc の実行が失敗します。

この状態のときは、Web コンテナやEJB コンテナも起動失敗するため、クライアントからのアクセスがエラーになります(ユーザ実装によります)。

ドメインが正常に起動した後に何らかの原因でドメインのエージェントプロセスが異常終了した場合、Webコンテナなどの機能も停止するのでクライアントからのアクセスがエラーになります(ユーザ実装によります)。

Standard/EnterpriseのようにJava プロセスがドメインのエージェントプロセスとは別に動作している場合、Web コンテナやEJB コンテナが動作していればクライアントからのアクセスは正常にできる可能性はあります。

また、ドメインのエージェントプロセスが異常終了している場合、統合運用管理ツールからドメインの管理を行うことができなくなります。

状況の確認方法

以下のotxadmin コマンドを実行し各ドメインの状態を確認してください。

${AS_INSTALL}/bin/otxadmin list-domains

停止状態(not running)のドメインに関して異常終了した原因を確認します。以下のログにエラーメッセージが出力されていないか確認してください。

イベントログ(アプリケーション、システム)・syslog
${INSTANCE_ROOT}/logs/webotx_agent.log
${INSTANCE_ROOT}/logs/server.log
${AS_INSTALL}/domains/WebOTXAdmin/logs/webotx_agent.log
${AS_INSTALL}/domains/WebOTXAdmin/logs/server.log

ドメインの起動に失敗した場合、管理ドメインにより以下のエラーメッセージがsyslogに出力されます。

OTX01130016: ドメイン domain1 は起動していないか、もしくは起動に失敗しています。
(com.nec.webotx.enterprise.system.tools.admin)

ドメイン起動コマンドによって単独でドメイン起動を行った場合は、エラーになっても出力されません。

一般ドメインのdomain.xml の記述に問題があった場合は、管理ドメインにより以下のエラーメッセージがsyslogに出力されます(問題の内容によってエラーメッセージが変わります)。一般ドメインを単独起動した場合は、イベントログには出力されません。

OTX01130049: ドメインの起動時に例外が発生しました:{0}
(com.nec.webotx.enterprise.system.tools.admin) Error:
com.nec.webotx.enterprise.admin.servermgmt.DomainException: abnormal subprocess termination:
Detailed Message:[Fatal Error] domain.xml:1:1: Premature end of file.
javax.management.modelmbean.XMLParseException: XML Parse Exception: Premature end of
file.:org.xml.sax.SAXParseException: Premature end of file.
:
Error: com.nec.webotx.enterprise.launcher.WOLaunchFilter filter class encountered a problem
OTX01130016: ドメイン domain1 は起動していないか、もしくは起動に失敗しています。
(com.nec.webotx.enterprise.system.tools.admin)

また、書式に問題がなくても設定内容に問題があった場合、ドメインの起動が正常に行われない可能性があります。例えば、一般ドメインのポート(既定値6212)が複数ドメイン間で重複した場合、以下のエラーメッセージがsyslogに出力されます。

WebOTX_Agent: OTX01205102: Service
[com.nec.webotx.enterprise.admin.server.core.JmxConnectorLifecycle] cannot be initialized! :

このとき、server.log には以下のメッセージが出力されます。

OTX01205102: Service [com.nec.webotx.enterprise.admin.server.core.JmxConnectorLifecycle] cannot
be initialized! : そのアドレスは既に使われています。 (errno:226)
[org.apache.commons.launcher.ChildMain]

ドメイン動作中にエージェントプロセスが停止した場合、予期せぬイベントであったときは以下のメッセージがsyslogに出力されます。例えば、エージェントプロセスに対し、SIGTERM を実行されたときです。

WebOTX_Agent: OTX01205161: The shutdown request of the application server was done from theinternal system by an unexpected event. (com.nec.webotx.enterprise.system.core)

問題の検出方法

異常終了が発生した場合は、syslogやWebOTX のログにメッセージ出力されます。また、エージェントプロセスを監視しておくことで、運用中のエージェントプロセスの異常終了を発見することができます。

イベントログメッセージに関しては、前述のメッセージの他、「WebOTX マニュアル オペレータメッセージ編」を参照してください。

プロセスの監視に関しては、3.1 プロセス監視 を参照してください。

採取資料

イベントログ(アプリケーション、システム)・syslog
${INSTANCE_ROOT}/logs/server.log
${INSTANCE_ROOT}/logs/webotx_agent.log
${INSTANCE_ROOT}/config/domain.xml

復旧方法
  1. WebOTX を停止してください。
    ${AS_INSTALL}/bin/otxadmin stop-domain --force <ドメイン名>

  2. 起動処理中にエラーとなった場合は、以下のコマンドを実行して、前回正常起動時のドメイン環境に復元してください。
    ${AS_INSTALL}/bin/otxrecovery <ドメイン名>
    起動中に異常終了した場合は、ログを確認して原因を取り除いてください。

  3. WebOTX を起動してください。


この方法で復旧しなかった場合は、ドメインの設定ファイルである domain.xml に問題がある可能性があります。以下の方法で復旧してください。

domain.xml の書式に問題がある場合

イベントログから問題の行がわかっている場合は、WebOTX を停止し、エラーとなっているファイルを開いて、問題の行を修正することでも復旧可能です。

例えば、

[Fatal Error] domain.xml:89:9: The element type "jvm-options" must be terminated by the matchingend-tag "</jvm-options>".

の場合は、${INSTANCE_ROOT}/config/domain.xml の89 行目(9 列目)を確認し、</jvm-options>タグの修正を行ってください。

[Fatal Error] domain.xml:73:23: An invalid XML character (Unicode: 0xf) was found in the element content of the document.

の場合は、${INSTANCE_ROOT}/config/domain.xml の73 行目(23 列目)を確認し、不正文字を修正してください。

記述が途中の状態になっている、0KB となっているなど、破損状態の場合は、手動による復旧は不可能です。otxrecovery で前回正常起動時のドメイン環境に復元してください。

domain.xml の設定内容に問題がある場合

設定内容に問題がある場合、ドメインが起動しても正常に動作しない可能性があります。ログを確認し、設定値の修正を行ってください。

例えば、「そのアドレスは既に使われています。 」や「接続は拒否されました。」の場合は、ポートの重複や権限がない(UNIX の場合、1024 以下のポートをroot ユーザ以外で使用することができません)可能性があります。該当ポートの修正を行い、WebOTX の再起動をしてください。

予防のための対策

WebOTX(ドメイン)が完全に停止する前にマシンのシャットダウンが行われると、domain.xml が書き込みを終了する前にエージェントプロセスが停止されてしまい、domain.xml が破損する可能性があります。

マシンシャットダウン前にWebOTX を停止するように運用方法を変更してください。

また、もし設定ファイルを手動編集する場合はXML の書式に注意してください(タグの設定、使用可能文字等)。


関連情報