Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第2章 JBoss EAP の開始および停止

2.1. JBoss EAP の開始

JBoss EAP は、Red Hat Enterprise Linux、Windows Server、Oracle Solaris、および Hewlett-Packard HP-UX でサポートされ、スタンドアロンサーバーまたは管理対象ドメイン操作モードで実行されます。JBoss EAP を起動するコマンドは、基盤のプラットフォームと選択する操作モードによって異なります。

サーバーは最初に一時停止状態で起動され、必要なサービスがすべて起動するまでリクエストを受け入れません。必要なサービスがすべて起動すると、サーバーは通常の稼働状態となり、リクエストの受け入れを開始します。

JBoss EAP をスタンドアロンサーバーとして起動

$ EAP_HOME/bin/standalone.sh
注記

Windows Server の場合は、EAP_HOME\bin\standalone.bat スクリプトを使用します。

この起動スクリプトは、EAP_HOME/bin/standalone.conf ファイル (Windows Server の場合は standalone.conf.bat) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルで設定をカスタマイズできます。

JBoss EAP はデフォルトで standalone.xml 設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できるスタンドアロン設定ファイルとそれらの使用方法については、「スタンドアロンサーバー設定ファイル」の項を参照してください。

使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help 引数を使用するか、「サーバーランタイム引数」を参照してください。

管理対象ドメインでの JBoss EAP の起動

ドメイン内のサーバーグループのサーバーを起動する前にドメインコントローラーを起動する必要があります。このスクリプトを使用して最初にドメインコントローラーを起動した後、関連するホストコントローラーに対して使用します。

$ EAP_HOME/bin/domain.sh
注記

Windows Server の場合は EAP_HOME\bin\domain.bat スクリプトを使用します。

この起動スクリプトは、EAP_HOME/bin/domain.conf ファイル (Windows Server の場合は standalone.conf.bat) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルで設定をカスタマイズできます。

JBoss EAP はデフォルトで host.xml ホスト設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できる管理対象ドメイン設定ファイルとそれらの使用方法については、「管理対象ドメイン設定ファイル」の項を参照してください。

管理対象ドメインを設定するとき、追加の引数を起動スクリプトに渡す必要があります。使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help 引数を使用するか、「サーバーランタイム引数」の項を参照してください。

2.2. JBoss EAP の停止

JBoss EAP の停止方法は、開始した方法によって異なります。

JBoss EAP の対話的なインスタンスの停止

JBoss EAP を起動したターミナルで Ctrl+C を押します。

JBoss EAP のバックグラウンドインスタンスの停止

管理 CLI を使用して、稼働中のインスタンスへ接続し、サーバーをシャットダウンします。

  1. 管理 CLI を起動します。

    $ EAP_HOME/bin/jboss-cli.sh --connect
  2. shutdown コマンドを実行します。

    shutdown
注記

管理対象ドメインで実行している場合、shutdown コマンドに --host 引数を使用してシャットダウンする、ホスト名を指定する必要があります。

2.3. JBoss EAP の管理専用モードでの実行

JBoss EAP は管理専用モードで起動することができます。管理専用モードでは、JBoss EAP は管理リクエストを実行および許可できますが、その他のランタイムサービスを起動したりエンドユーザーリクエストを許可したりすることはできません。管理専用モードは スタンドアロンサーバー管理対象ドメイン の両方で使用できます。

管理専用モードでのスタンドアロンサーバーの実行

管理専用モードでのサーバーの起動

JBoss EAP インスタンスを管理専用モードで起動するには、JBoss EAP インスタンスの起動時に --start-mode=admin-only ランタイム引数を使用します。

$ EAP_HOME/bin/standalone.sh --start-mode=admin-only
サーバーが管理専用モードで実行されていることを確認

以下のコマンドを実行して、サーバーの実行モードを確認します。サーバーが管理専用モードで実行されている場合は、結果が ADMIN_ONLY になります。

:read-attribute(name=running-mode)
{
  "outcome" => "success",
  "result" => "ADMIN_ONLY"
}
注記

さらに、以下のコマンドを使用すると、JBoss EAP が起動された最初の実行モードを確認することもできます。

/core-service=server-environment:read-attribute(name=initial-running-mode)
管理 CLI から別のモードでリロード

異なるランタイムスイッチを使用して JBoss EAP インスタンスを停止および起動する他に、管理 CLI を使用して異なるモードでリロードすることもできます。

サーバーを管理専用モードでリロードするには、以下を実行します。

reload --start-mode=admin-only

サーバーを通常モードでリロードするには、以下を実行します。

reload --start-mode=normal

サーバーが管理専用モードで起動され、reload コマンドに --start-mode 引数の指定がない場合は、サーバーは通常モードで起動されます。

管理専用モードでの管理対象ドメインの実行

管理対象ドメインの場合、ドメインコントローラーが管理専用モードで起動されると、スレーブホストコントローラーからの受信接続を許可しません。

管理専用モードでのホストコントローラーの起動

--admin-only ランタイム引数を渡してホストコントローラーを管理専用モードで起動します。

$ EAP_HOME/bin/domain.sh --admin-only
ホストコントローラーが管理専用モードで実行されていることを確認

以下のコマンドを実行して、ホストコントローラーの実行モードを確認します。ホストコントローラーが管理専用モードで実行されている場合は、結果が ADMIN_ONLY になります。

/host=HOST_NAME:read-attribute(name=running-mode)
{
  "outcome" => "success",
  "result" => "ADMIN_ONLY"
}
管理 CLI から別のモードでリロード

異なるランタイムスイッチを使用してホストコントローラーを停止および起動する他に、管理 CLI を使用して異なるモードでリロードすることもできます。

ホストコントローラーを管理専用モードでリロードするには、以下を実行します。

reload --host=HOST_NAME --admin-only=true

ホストコントローラーを通常モードでリロードするには、以下を実行します。

reload --host=HOST_NAME --admin-only=false

ホストコントローラーが管理専用モードで起動され、reload コマンドに --start-mode 引数の指定がない場合は、ホストコントローラーは通常モードで起動されます。

2.4. JBoss EAP の正常な一時停止およびシャットダウン

JBoss EAP は正常に一時停止およびシャットダウンできます。これにより、新しいリクエストを許可せずにアクティブなリクエストを正常に完了できます。タイムアウト値は、一時停止またはシャットダウン操作がアクティブなリクエストの完了まで待つ期間を指定します。サーバーが一時停止しても管理リクエストは処理されます。

正常なシャットダウンは、リクエストがサーバーに入るエントリーポイントを中心にサーバー全体のレベルで調整されます。以下のサブシステムが正常なシャットダウンをサポートします。

Undertow
undertow サブシステムはすべてのリクエストが終了するまで待機します。
mod_cluster
modcluster サブシステムは PRE_SUSPEND フェーズでサーバーが一時停止することをロードバランサーに通知します。
EJB
ejb3 サブシステムはすべてのリモート EJB リクエストおよび MDB メッセージ配信が終了するまで待機します。MDB への配信は PRE_SUSPEND フェーズで停止します。EJB タイマーは中断され、サーバーが再開したときにタイマーがアクティベートされます。
トランザクション

サーバーは一時停止すると新しいリクエストを受け付けませんが、インフライトトランザクションおよびリクエストは完了するかタイムアウトが期限切れになるまで継続されます。これは、XTS トランザクションに関連する web サービスリクエストも同様です。

注記

デフォルトでは、ejb サブシステムでのトランザクションの正常シャットダウンは無効になっています。EJB 関連のトランザクションが完了してからサーバーを一時停止する場合は、トランザクションの正常シャットダウンを有効にする必要があります。例を以下に示します。

/subsystem=ejb3:write-attribute(name=enable-graceful-txn-shutdown,value=true)
EE Concurrency

サーバーはすべてのアクティブなジョブが終了するまで待機します。キューに置かれたジョブはすべてスキップされます。現在、EE Concurrency には永続性がないため、キューに置かれスキップされたジョブは失われます。

サーバーが一時停止状態である間、スケジュールされたタスクはスケジュールどおりの時間に実行されますが、java.lang.IllegalStateException が発生します。サーバーが再開されると、スケジュールされたタスクは通常どおり実行され、ほとんどの場合でタスクのスケジュールを変更する必要はありません。

Batch
サーバーはタイムアウト期間内の実行中のジョブをすべて停止し、スケジュール済みのジョブをすべて延期します。
注記

現在、正常シャットダウンは新しいインバウンド JMS メッセージを拒否しません。インフライトアクティビティーによってスケジュールされた EE バッチジョブおよび EE 同時実行タスクは、現在実行の継続が許可されます。しかし、タイムアウトウィンドウを渡す EE 同時実行タスクが提出されると、実行時にエラーが発生します。

リクエストは request-controller サブシステムによって追跡されます。このサブシステムがないと、一時停止および再開機能が制限され、リクエストの完了を待たずにサーバーが一時停止またはシャットダウンします。しかし、この機能が必要ない場合は、request-controller サブシステムを削除してパフォーマンスを若干向上することができます。

2.4.1. サーバーの一時停止

JBoss EAP 7 には、サーバーの操作を正常に一時停止する suspend モードが導入されました。このモードでは、アクティブなリクエストがすべて正常に完了されますが、新しいリクエストは許可されません。サーバーが中断されたら、シャットダウンすることができます。さらに、元の実行状態に戻ったり、中断状態のままメンテナンスを実行することができます。

注記

管理インターフェースのサーバーの一時停止よる影響はありません。

管理コンソールまたは管理 CLI を使用するとサーバーを一時停止および再開できます。

サーバーの一時停止状態のチェック

以下の管理 CLI コマンドを使用するとサーバーの中断状態を表示できます。結果の値は、RUNNINGPRE_SUSPENDSUSPENDING、または SUSPENDED のいずれかになります。

  • スタンドアロンサーバーの中断状態をチェックします。

    :read-attribute(name=suspend-state)
  • 管理対象ドメインのサーバーの中断状態をチェックします。

    /host=master/server=server-one:read-attribute(name=suspend-state)
中断

アクティブなリクエストが完了するまでサーバーが待機するタイムアウト値を秒単位で指定し、以下の管理 CLI コマンドを使用してサーバーを中断します。デフォルト値は 0 で、即座に中断します。-1 を値として指定すると、サーバーはアクティブなリクエストがすべて完了するまで無期限に待機します。

以下の各例は、リクエストが完了するまで最大 60 秒待機した後、一時停止します。

  • スタンドアロンサーバーを一時停止します。

    :suspend(timeout=60)
  • 管理対象ドメインのすべてのサーバーを一時停止します。

    :suspend-servers(timeout=60)
  • 管理対象ドメインの単一のサーバーを一時停止します。

    /host=master/server-config=server-one:suspend(timeout=60)
  • サーバーグループのすべてのサーバーを一時停止します。

    /server-group=main-server-group:suspend-servers(timeout=60)
再開

resume コマンドを適切なレベル (サーバー、サーバーグループ、ドメイン全体) で使用すると、サーバーが正常な実行状態に戻り、新しいリクエストを許可できるようになります。

:resume
サーバーを一時停止状態で起動

サーバーを一時停止状態で起動し、サーバーが再開するまでリクエストを受け入れないようにすることができます。

  • スタンドアロンサーバーを一時停止状態で起動するには、JBoss EAP インスタンスの起動時に --start-mode=suspend ランタイム引数を使用します。

    $ EAP_HOME/bin/standalone.sh --start-mode=suspend
  • 管理対象ドメインサーバーを一時停止モードで起動するには、管理 CLI コマンドで start-mode=suspend 引数を start 操作に渡します。

    /host=HOST_NAME/server-config=SERVER_NAME:start(start-mode=suspend)
    注記

    start-mode 引数をサーバーの reload および restart 操作に渡すこともできます。

  • 管理対象ドメインサーバーグループのすべてのサーバーを一時停止モードで起動するには、管理 CLI コマンドで start-mode=suspend 引数を start-servers 操作に渡します。

    /server-group=SERVER_GROUP_NAME:start-servers(start-mode=suspend)
    注記

    start-mode 引数をサーバーグループの reload-servers および restart-servers 操作に渡すこともできます。

2.4.2. サーバーの正常なシャットダウン

サーバーの停止時に適切なタイムアウト値を指定すると、サーバーは正常にシャットダウンされます。コマンドを実行するとサーバーが一時停止され、すべてのリクエストが完了するまで最大で指定のタイムアウトの期間待機し、その後シャットダウンします。

以下の管理 CLI コマンドを使用してサーバーを正常にシャットダウンします。アクティブなリクエストが完了するまでサーバーが待機するタイムアウト値を秒単位で指定します。デフォルト値は 0 で、即座にサーバーをシャットダウンします。-1 を値として指定すると、アクティブなリクエストがすべて完了するまで無期限に待機した後、シャットダウンします。

以下の各例は、リクエストが完了するまで最大 60 秒待機した後、シャットダウンします。

  • スタンドアロンサーバーを正常にシャットダウンします。

    :shutdown(timeout=60)
  • 管理対象ドメインのすべてのサーバーを停止します。

    :stop-servers(timeout=60)
  • 管理対象ドメインの単一のサーバーを停止します。

    /host=master/server-config=server-one:stop(timeout=60)
  • サーバーグループのすべてのサーバーを正常に停止します。

    /server-group=main-server-group:stop-servers(timeout=60)

2.5. JBoss EAP の起動および停止 (RPM インストール)

RPM インストールの場合、JBoss EAP の起動と停止が ZIP またはインストーラーインストールの場合とは異なります。

2.5.1. JBoss EAP の起動 (RPM インストール)

RPM インストールの JBoss EAP を起動するコマンドは、開始する操作モード (スタンドアロンサーバーまたは管理対象ドメイン) や実行している Red Hat Enterprise Linux のバージョンによって異なります。

JBoss EAP をスタンドアロンサーバーとして起動 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-standalone start
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl start eap7-standalone.service

これにより、standalone.xml 設定ファイルをデフォルトで使用して JBoss EAP が起動されます。JBoss EAP を別の スタンドアロンサーバー設定ファイル で起動するには、RPM サービス設定ファイルにプロパティーを設定します。詳細は「RPM サービスプロパティーの設定」の項を参照してください。

管理対象ドメインでの JBoss EAP の起動 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-domain start
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl start eap7-domain.service

これにより、host.xml 設定ファイルをデフォルトで使用して JBoss EAP が起動されます。JBoss EAP を別の 管理対象ドメイン設定ファイル で起動するには、RPM サービス設定ファイルにプロパティーを設定します。詳細は「RPM サービスプロパティーの設定」の項を参照してください。

RPM サービスプロパティーの設定

本項では、RPM サービスプロパティーと JBoss EAP インストールのその他の起動オプションを設定する方法について説明します。変更を行う前に設定ファイルをバックアップすることが推奨されます。

RPM インストールで利用可能な起動オプションの完全リストは、「RPM サービス設定プロパティー」の項を参照してください。

重要

Red Hat Enterprise Linux 7 では、RPM サービス設定ファイルは systemd を使用してロードされるため、変数式は拡張されません。

  • サーバー設定ファイルを指定します。

    スタンドアロンサーバーを起動する場合、デフォルトで standalone.xml ファイルが使用されます。管理対象ドメインで実行する場合、デフォルトで host.xml ファイルが使用されます。他の設定ファイルを使用して JBoss EAP を起動するには、適切な RPM 設定ファイル (例: eap7-standalone.conf) に WILDFLY_SERVER_CONFIG プロパティーを設定します。

    WILDFLY_SERVER_CONFIG=standalone-full.xml
  • 特定の IP アドレスにバインドします。

    デフォルトでは、JBoss EAP RPM インストールは 0.0.0.0 にバインドします。JBoss EAP を特定の IP アドレスにバインドするには、適切な RPM 設定ファイル (例: eap7-standalone.conf) に WILDFLY_BIND プロパティーを設定します。

    WILDFLY_BIND=192.168.0.1
    注記

    管理インターフェースを特定の IPアドレスにバインドする場合は、次の例のように JBoss EAP 起動設定ファイルに設定を追加します。

  • JVM オプションまたは Java プロパティーを設定します。

    JBoss EAP の起動スクリプトに渡す JVM オプションまたは Java プロパティーを指定するには、起動設定ファイルを編集します。スタンドアロンサーバーの場合、このファイルは EAP_HOME/bin/standalone.conf になります。管理対象ドメインの場合、このファイルは EAP_HOME/bin/domain.conf になります。以下の例は、ヒープサイズを設定し、JBoss EAP 管理インターフェースを指定の IP アドレスにバインドします。

    JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m"
    JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.management=192.168.0.1"
    注記

    場合によっては、標準の jboss.bind.address プロパティーを使用せずに WILDFLY_BIND プロパティーを使用して JBoss EAP バインドアドレスを設定する必要があります。

注記

同じ名前のプロパティーが RPM サービス設定ファイル (例: /etc/sysconfig/eap7-standalone) と JBoss EAP 起動設定ファイル (例:EAP_HOME/bin/standalone.conf) にある場合、JBoss EAP 起動設定ファイルのプロパティーの値が優先されます。このようなプロパティーの 1 つが JAVA_HOME です。

2.5.2. JBoss EAP の停止 (RPM インストール)

RPM インストールの JBoss EAP を停止するコマンドは、開始された操作モード (スタンドアロンサーバーまたは管理対象ドメイン) や実行している Red Hat Enterprise Linux のバージョンによって異なります。

JBoss EAP をスタンドアロンサーバーとして停止 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-standalone stop
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl stop eap7-standalone.service
管理対象ドメインでの JBoss EAP の停止 (RPM インストール)
  • Red Hat Enterprise Linux 6 の場合

    $ service eap7-domain stop
  • Red Hat Enterprise Linux 7 の場合

    $ systemctl stop eap7-domain.service

RPM インストールで利用可能な起動オプションの完全リストは、「RPM サービス設定ファイル」の項を参照してください。

2.6. PowerShell スクリプト (Windows Server)

重要

複数の PowerShell スクリプトはテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジプレビュー機能のサポート範囲」を参照してください。

JBoss EAP には、ほとんどの JBoss EAP 管理スクリプトに相当する PowerShell スクリプトが含まれています。これには、Microsoft Windows Server で JBoss EAP を起動する PowerShell スクリプトが含まれます。

JBoss EAP PowerShell スクリプトは、テストされた Windows Server バージョンで実行される PowerShell バージョン 2 以上で動作することを目的としています。

JBoss EAP PowerShell スクリプトは EAP_HOME\bin にあり、JBoss EAP のバッチスクリプトとほぼ同様に使用されます。

たとえば、standalone-full.xml 設定ファイルを使用してスタンドアロン JBoss EAP サーバーを起動するには、以下の PowerShell コマンドを使用します。

.\standalone.ps1 "-c=standalone-full.xml"
注記

JBoss EAP PowerShell スクリプトの引数は引用符で囲む必要があります。