ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

12.3.1 運用環境に関する異常

Jakarta EEアプリケーションの運用環境に関する以下のトラブルについて対処方法を説明します。

サービスなどの起動が失敗し、ログに「アドレスは既に使用中です」または「Address already in use」が含まれている場合

ポート番号が重複している可能性があります。ポート番号は、システム上のアプリケーションを含む、すべてのサービスにおいてそれぞれ異なるポート番号を設定する必要があります。

ポート番号を確認し重複していた場合は、一意となるようにポート番号を変更してください。

ポート番号の詳細については「付録D ポート番号」を参照してください。


GlassFish Serverインスタンス起動時の異常

GlassFish Serverインスタンスの起動に失敗した場合は、以下のログにエラーメッセージが出力されていないかを確認し、「第11章 GlassFishのメッセージ」を参照して起動失敗の原因を調査してください。

Javaヒープ領域またはメタスペース不足のメッセージが表示される場合、「12.17 OutOfMemoryErrorがログに出力された場合」を参照し、それぞれの領域サイズを増やしてください。


また、以下の対処を行ってください。

上記の調査を行っても原因を特定できない場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。

GlassFish Serverインスタンス起動時にjava.lang.OutOfMemoryErrorが出力された場合

GlassFish Serverインスタンスを起動したときに、以下のメッセージを出力してコマンドが異常終了した場合は、リポジトリーの同期化で使用するJavaヒープが不足している可能性があります。

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

このときスタックトレースに、以下の文字列が含まれます。

com.sun.enterprise.admin.cli.cluster.SynchronizeInstanceCommand.synchronizeInstance

以下の対処を行い、Javaヒープのサイズを大きくしてから再度実行してください。

Javaヒープに指定するサイズの目安は、以下の計算式で算出できます。Javaヒープに指定するサイズの十分性は個別のGlassFish Serverクラスターごとに確認してください。

起動対象のGlassFish Serverクラスターに配備しているアプリケーションのサイズの合計(注)  ×  10

(注) warファイル等のサイズではなく、展開後のファイルの合計サイズです。GlassFish Serverクラスターに複数のアプリケーションが配備される場合は、配備したすべてのアプリケーションのファイルの合計サイズを使用してください。


GlassFish Serverインスタンスの異常終了

GlassFish Serverインスタンスプロセスが異常終了した場合は、以下のログにエラーメッセージが出力されていないか確認し、「第11章 GlassFishのメッセージ」を参照して異常終了の原因を調査してください。

Java VMログおよびサーバーログには、JDK/JREの異常メッセージが出力される場合があります。「チューニングガイド」の「OpenJDK 8のチューニング」も参照して、調査してください。

上記の調査を行っても原因を特定できない場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。

ポイント

PCMIプロファイルの「プロセスの自動再起動」に「自動再起動する」を設定している場合は、運用中にGlassFish Serverインスタンスのプロセスが異常終了しても、PCMIサービスの自動再起動機能によりプロセスの自動再起動が行われるため、業務を継続できます。詳細については、「2.5.1 Java VMプロセスの生死監視」を参照してください。


GlassFish Serverインスタンスのレスポンスが悪化する場合

サーバーログのログレベルが高い(FINE/FINER/FINEST)場合、ログ出力に時間がかかり、処理の遅延またはプロセス起動待ち時間の超過によるGlassFish Serverインスタンスの起動失敗などが発生する可能性があります。

適正なログレベルに設定されていることを確認してください。なお、ログレベルの確認方法や設定方法については、「10.1.19 ログ」を参照してください。


DASまたはGlassFish Serverインスタンス起動時にサーバーログにAS-WEB-GLUE-00167が出力された場合

http-listener-2を無効にした状態でDASまたはGlassFish Serverインスタンスを起動すると、サーバーログに以下のメッセージが出力されますが、HTTPS通信を使用しない場合は問題ありません。

_MessageID=AS-WEB-GLUE-00167;|Error adding HttpProbes. NetworkListener http-listener-2s GrizzlyProxy is NULL

DAS起動時の異常

DASの起動に失敗した場合は、標準出力と以下のログにエラーメッセージが出力されていないか確認し、「第11章 GlassFishのメッセージ」を参照して起動失敗の原因を調査してください。

サーバーログにメモリ不足を示すエラーメッセージが出力されている場合は、「6.15 DASのヒープ領域サイズ/メタスペースサイズ」を参照して対処を行ってください。
サーバーログにエラーメッセージが出力されておらず、かつコマンドラインのみ出力される場合、以下のディレクトリーを削除後、DASを起動してください。

[運用資産格納ディレクトリー]\domains\domain1\osgi-cache\felix

[運用資産格納ディレクトリー]/domains/domain1/osgi-cache/felix

ログファイルについての詳細は、「4.17 Jakarta EEアプリケーションのログ」を参照してください。

起動時の異常によって、不正にプロセスが残存する場合があります。「DASのプロセス回収手順」を参照して、残存しているプロセスを回収してください。

JVMオプションのチューニングによって、製品の動作に必要なオプションを削除している場合があります。「8.8.15 Java VMの定義項目」を参照して、デフォルトのJVMオプションを削除していないか確認してください。


通信ポートの獲得失敗による起動失敗

通信ポートを獲得できないために起動に失敗している場合は、「ポート番号の重複によってDASが起動できない場合」、または「付録D ポート番号」を参照してポート番号をチューニングしてください。

なお、他のサービス・プロセスとのポート番号重複によりDASの起動に失敗している場合、重複したポート番号を利用しているサービス、プロセスを一旦停止した上で、DASを起動して設定を変更してください。


HTTPリスナーの設定値異常による起動失敗や操作不能

HTTPリスナーに対する設定を誤った場合、DASやGlassFish Serverクラスターの起動に失敗する場合があります。

GlassFish Serverクラスターの場合は、GlassFish Serverクラスターが停止、DASが起動している状態でasadminコマンドを実行し、正しい値を設定してください。その後GlassFish Serverクラスターを起動することにより復旧できます。

DASの場合、HTTPリスナーの設定に異常があると起動ができない、asadminコマンドによる操作を受け付けないという状態になります。

この場合、DASが停止している状態でdomain.xmlを修正します。


注意

domain.xmlを編集する際は、下記に示す箇所以外の設定を変更しないでください。変更するとDASを使用できなくなる場合があります。また、編集前にdomain.xmlを退避することをおすすめします。

domain.xmlの修正方法

以下のファイルをテキストエディタなどで開いて編集します。

[運用資産格納ディレクトリー]\domains\domain1\config\domain.xml

[運用資産格納ディレクトリー]/domains/domain1/config/domain.xml

name属性に「server-config」が設定されているconfigタグ配下について、以下の観点を確認します。不正な値が指定されている場合は編集します。

  • port属性が存在するかどうか、また指定されているポート番号の値が正しいかどうか
    port属性は必ず指定されている必要があります。

  • address属性がある場合、マシンのIPアドレスとなっているか
    address属性が存在しない場合、初期値「0.0.0.0」が指定されているものとして動作します。

  • enabled属性がある場合、運用管理用HTTPリスナー(admin-listener)に対してfalseが設定されていないか
    falseの場合、asadminコマンドによる操作を受け付けることができないため、trueを設定します。

  • transport属性、protocol属性、thread-pool属性が存在しているか
    存在しない場合、以下の例のように指定する必要があります。

正常なdomain.xmlの例

<domain log-root="${com.sun.aas.instanceRoot}/logs" ・・・>

・・・
 <configs>
  <config name="server-config">
・・・
   <network-config >
・・・
    <network-listeners>
     <network-listener port="28787" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
<network-listener port="28888" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
<network-listener port="12041" protocol="pu-protocol" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
</network-listeners> ・・・ </network-config > </config> </configs> </domain>

インストール直後のdomain.xmlの状態は、以下のようになっています。

ポート番号
port

ネットワークアドレス
address

HTTPリスナーの有効化
enabled

運用管理用HTTPリスナー
admin-listener

12041

指定なし

(初期値0.0.0.0)

指定なし

(初期値true)

HTTPリスナー
http-listener-1

28787

指定なし

(初期値0.0.0.0)

指定なし

(初期値true)

HTTPSリスナー
http-listener-2

28888

指定なし

(初期値0.0.0.0)

指定なし

(初期値true)


DAS停止時の異常

DASの停止に失敗した場合は、標準出力と以下のログにエラーメッセージが出力されていないか確認し、「第11章 GlassFishのメッセージ」を参照して停止失敗の原因を調査してください。

また、停止時の異常によって、不正にプロセスが残存する場合があります。「DASのプロセス回収手順」を参照して、残存しているプロセスを回収してください。


DASの異常終了

DASが異常終了した場合は、システムログ/イベントログにエラーメッセージが通知されます。

「OutOfMemoryError」と出力される場合には、「12.17 OutOfMemoryErrorがログに出力された場合」を参照し、Javaヒープ領域・メタスペース領域を増やしてください。

その他の場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。

なお、DASが異常終了すると、asadminコマンドによる定義変更やGlassFish Serverインスタンスの操作ができません。本現象が発生した場合は、DASを再起動してください。

ポイント

PCMIプロファイルの「プロセスの自動再起動」に「自動再起動する」を設定している場合は、運用中にDASのプロセスが異常終了しても、PCMIサービスの自動再起動機能によりプロセスの自動再起動が行われるため、業務を継続できます。詳細については、「2.5.1 Java VMプロセスの生死監視」を参照してください。


DASの動作が定義項目の値と異なる場合

getサブコマンドで取得される値とDASの動作が異なる場合、DASを再起動してください。再起動しても定義項目の値が反映されない場合、資料採取を行った上で技術員に連絡してください。


DASが操作を受け付けない場合

DASのフルスレッドダンプ採取手順」を実施して、ユーザーアプリケーションがハングしていないかどうか確認してください。ユーザーアプリケーションがハングしていない場合、「DASのプロセス回収手順」を参照して、残存しているプロセスを回収してください。資料採取を行った上で技術員に連絡してください。

また、運用管理HTTPリスナーのポート番号を変更した場合、通常の運用操作は受け付けません。「運用管理用HTTPリスナーのポート番号を変更する場合」を参照してください。


DASフルスレッドダンプ採取手順

以下の手順により、DASのフルスレッドダンプを採取してください。

  1. 以下のファイルを参照して、DASのプロセスIDを確認してください。

    [運用資産格納ディレクトリー]\domains\domain1\config\pid

    [運用資産格納ディレクトリー]/domains/domain1/config/pid

    注意

    ファイルが存在していない場合、またはjavaプロセスが存在しない場合、プロセスは存在していません。

  2. 1で確認したIDのプロセスがjavaプロセスとして存在しているか、以下の方法で確認してください。

    Windowsのタスクマネージャで確認してください。

    psコマンドを使用して確認してください。


  3. 1で確認したプロセスIDに対して、以下の方法でフルスレッドダンプを取得してください。

    thdumpコマンドを使用してフルスレッドダンプを取得してください。thdumpコマンドの詳細は、「トラブルシューティング集」の「Javaツール機能」-「スレッドダンプツール」を参照してください。

    jstackコマンドを実行してください。jstackコマンドの詳細は、「トラブルシューティング集」の「Javaツール機能」-「JDKに含まれるトラブルシューティングに役立つツール」を参照してください。


DASプロセス回収手順

以下の手順により、DASのプロセスを回収してください。

  1. 以下のファイルを参照して、DASのプロセスIDを確認してください。

    [運用資産格納ディレクトリー]\domains\domain1\config\pid

    [運用資産格納ディレクトリー]/domains/domain1/config/pid

    注意

    ファイルが存在していない場合、またはjavaプロセスが存在しない場合、プロセスは存在していません。

  2. 1で確認したIDのプロセスがjavaプロセスとして存在しているか、以下の方法で確認してください。

    Windowsのタスクマネージャで確認してください。

    psコマンドを使用して確認してください。


  3. 1で確認したプロセスIDに対して、以下の方法でプロセスを回収してください。

    Windowsのタスクマネージャでプロセスを終了させてください。

    killコマンドを使用してプロセスを削除してください。


DASでのアプリケーション運用時の異常

DASでアプリケーションを運用する際の異常については、「12.3.3 アプリケーションの運用に関する異常」を参照してください。


PCMIサービスの異常終了

PCMIサービスが異常終了した場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。

なお、PCMIサービスが異常終了すると、以下の機能は動作しません。ただし、運用中のアプリケーションの動作には影響ありません。


正常な状態に復旧するには、以下の手順でリカバリを行ってください。

  1. 運用中のGlassFish Serverインスタンスを確認します。

    asadminコマンドのlist-instancesサブコマンドで起動状態のGlassFish Serverインスタンスを確認してから、以下のファイルを参照し、起動状態のGlassFish ServerインスタンスのプロセスIDを確認してください。

     [運用資産格納ディレクトリー]\nodes\localhost-domain1\<GlassFish Serverインスタンス名>\config\pid

     [運用資産格納ディレクトリー]/nodes/localhost-domain1/<GlassFish Serverインスタンス名>/config/pid

    注意

    ファイルが存在していない場合、プロセスは存在していません。

  2. 1で確認したIDのプロセスがjavaプロセスとして存在しているか、以下の方法で確認してください。


    Windowsのタスクマネージャで確認してください。


    psコマンドを使用して確認してください。

    注意

    プロセスIDに対応するjavaプロセスが存在しない場合、プロセスは存在していません。

  3. 1で確認したプロセスIDに対して、以下の方法でプロセスを回収してください。


    Windowsのタスクマネージャでプロセスを終了させてください。


    killコマンドを使用してプロセスを削除してください。

  4. DASのプロセス回収手順で、DASのプロセスを回収してください。

  5. 以下の手順でPCMIサービスを起動します。


    Interstage PCMI(glassfish5)サービスを停止して、起動します。


    PCMIサービスを起動します。

  6. DASを再起動します。

  7. GlassFish Serverクラスターを再起動します。

注意

  • リカバリを行わずにPCMIサービスを起動した場合、リカバリを行っていないGlassFish Serverインスタンスに対して正しい操作を行うことができません。リカバリを行って、正常な状態に復旧してください。

  • リカバリ対象は、PCMIサービスより前に起動しているGlassFish Serverインスタンスです。リカバリを行わずにPCMIサービスを起動した状態で、リカバリ対象のGlassFish Serverインスタンスを見分ける場合は、PCMIサービスの起動時刻とGlassFish Serverインスタンスの起動時刻を比較して判別してください。
    なお、PCMIサービスの起動時刻はイベントログ/システムログに出力されたメッセージ「PCMI1000」の時刻、GlassFish Serverインスタンスの起動時刻はイベントログ/システムログに出力されたメッセージ「PCMI1002」の時刻でそれぞれ確認してください。

GlassFish Server管理コンソールGlassFish Serverクラスターの起動に失敗する場合

asadmin change-master-passwordサブコマンドの実行後、GlassFish Server管理コンソールGlassFish Serverクラスターの起動に失敗する

GlassFish Server管理コンソールを使用する場合、GlassFish Serverクラスターの操作にはマスターパスワードを保存したファイルが必要です。asadmin change-master-passwordサブコマンド実行時に--savemasterpasswordオプションにfalseを指定した場合は、GlassFish Server管理コンソールでGlassFish Serverクラスターの起動ができません。

asadmin change-master-passwordサブコマンドの--savemasterpasswordオプションにtrueを指定して再実行してください。

Javaヒープ領域獲得に失敗する

Javaヒープ領域が不足していることが原因でGlassFish Serverクラスターの起動に失敗する場合、「12.17 OutOfMemoryErrorがログに出力された場合」を参照し、Javaヒープのサイズを大きくしてください。


12.3.1.1 DASのサーバーログにjava.util.concurrent.RejectedExecutionExceptionが頻繁に出力される

SEVERE: doSelect exception java.util.concurrent.RejectedExecutionException: The thread pool's task queue is full, limit: {0}

[可変情報]

{0}:キューサイズ

上記メッセージが頻繁に出力される場合、DASの運用管理用のスレッドプール「admin-thread-pool」に対して、キューサイズを拡張してください。

設定方法は、「6.14.4 運用管理用のスレッドプールのキューサイズ」を参照してください。