DataSpiderServer のサービスが停止していました

Avatar
dstn

Question

DataSpiderServer のサービスが停止していました。
確認するポイントを教えてください。

Answer

サービスの停止は、javaVM の問題やメモリ不足など、複数の要因で発生します。

緊急時の対応を想定して、切り分けのために確認するポイントのみを以下に記載いたします。
確認する理由が必要な場合には、本文書の末尾の「■確認の理由」を参照してください。
また、各問題の詳細を確認されたい場合には、以下にご案内している各FAQをご参照ください。

■確認するポイント

(1) ダンプログの確認
 以下のいずれかのログが出力されているか、ご確認ください。

・バージョン 3.0 以降、または、バージョン 2.4.x 以前の x86 版を使用されている場合
 $DATASPIDER_HOME\server\bin\hs_err_pid<pid>.log
・バージョン 2.4.x 以前の x64 版を使用されている場合
 $DATASPIDER_HOME\server\bin\jrockit.<pid>.dump

 出力されている場合は、FAQの Q221 または Q222 をご参照ください。

(2) DataSpiderServer.lax の確認
 以下の設定ファイルから初期ヒープサイズ、最大ヒープサイズの設定値をご確認いただき、
 設定値に差が無いかご確認ください。
 $DATASPIDER_HOME/server/bin/DataSpiderServer.lax

 初期ヒープサイズは、以下のいずれかのキーで指定されています。

・バージョン 3.0 以降、または、バージョン 2.4.x 以前で 2 GB 以上を設定されている場合
 lax.nl.java.option.additional= 内の -Xms
・バージョン 2.4.x  以前の x86 版を使用している場合
 lax.nl.java.option.java.heap.size.initial

 最大ヒープサイズは、以下のいずれかのキーで指定されています。

・バージョン 3.0 以降、または、バージョン 2.4.x 以前で 2 GB 以上を設定されている場合
 lax.nl.java.option.additional= 内の -Xmx
・バージョン 2.4.x  以前の x86 版を使用している場合
 lax.nl.java.option.java.heap.size.max

 二つの設定値に差がある場合は、FAQの Q223 をご参照ください。

(3) サーバログ、サーバ標準エラー出力の確認
 以下のディレクトリに出力されているログで、サービスが停止した時間帯に
 出力されている内容を確認してください。

 $DATASPIDER_HOME/server/logs/server.log
 $DATASPIDER_HOME/server/logs/server.error.log

 以下のエラーメッセージで検索をかけて、サービスが停止した時間帯に
 該当するエラーが発生している場合は、以下の FAQ をご確認ください。

・java.lang.OutOfMemoryError: Java heap space
・java.lang.OutOfMemoryError: nativeGetNewTLA
・java.lang.OutOfMemoryError: unable to create new native thread
・java.lang.OutOfMemoryError: mmAllocObject
 ヒープ領域のメモリが確保できない状態になっています。
 この場合の対応方法は、FAQの「Q134」をご参照ください。

・java.lang.OutOfMemoryError: PermGen space
 ヒープ領域の一部である、パーマネント領域のメモリが確保できない状態になっています。
 この場合の対応方法は、FAQの「Q146」をご参照ください。

■確認の理由

(1) ダンプログの確認
 Java は Just In Time コンパイル方式(以下、JIT方式)を採用しており、実行時に
 Java 中間コードから OS の Native コードに変換(コンパイル)し実行することで、
 パフォーマンスを向上しています。
 DataSpiderServer の内部処理でも JIT 方式を採用していますが、JIT 方式のうち、
 Compiler Thread が呼び出された際に、サービスが停止することがあります。

 メモリが十分に確保できている状態で上記問題が発生した場合、サービス停止時の
 処理状況がダンプログに出力されるため、この情報から調査を進めることができます。
 逆に、メモリが十分に確保されていない場合は、ダンプログが出力されないため、
 (ダンプログを出力するためのメモリも確保できないため)
 原因をメモリ不足かどうか切り分けることができます。

 このため、まず最初にダンプログの確認をお願いします。

(2) DataSpiderServer.lax の確認
 初期ヒープサイズと最大ヒープサイズの設定値が異なる場合、javaVM はサービスの
 起動時に初期ヒープサイズで指定された容量のメモリを確保し、その後、
 メモリが不足した場合に、最大ヒープサイズに至るまで、確保するメモリ容量を
 拡張していきます。
 このときにメモリが確保できない場合、サービスが停止します。

 javaVM 側でメモリ不足を検知する前にサービスが停止することがあり、
 この場合は、サーバログなどにメモリ不足を示すログが出力されません。

 このため、ダンプログの次に、DataSpiderServer.lax の確認をお願いします。

(3) サーバログ、サーバ標準エラー出力の確認
 プロジェクト、スクリプトの作成数、または、処理対象のデータ件数が多いために
 DataSpiderServer.lax で指定した容量以上のメモリが必要となった場合、
 メモリ不足のエラー(java.lang.OutOfMemoryError)が発生します。

 この場合、処理に必要なメモリの確保が難しくなるため、サービスが停止しやすい
 状態となります。

 このため、サーバログ、サーバ標準エラー出力の確認をお願いします。

参考情報

Q134
 それまで正常に終了していたスクリプトで処理対象のデータ件数を多くしたところ、以下のエラーが発生し、スクリプトの実行が失敗するようになりました。
 原因と対応策を教えてください。
 java.lang.OutOfMemoryError: Java heap space
Q146
 スクリプト実行時にエラー(ScriptNotFoundException)が発生したり、DataSpider Studio が接続できなくなったりする問題が不定期に発生しています。
 サーバログ、サーバ標準エラー出力を確認したところ、以下のようなエラーが出力されていました。原因と対応策について教えてください。
 java.lang.OutOfMemoryError: PermGen space
Q221
 $DATASPIDER_HOME/server/bin に、jrockit.****.dump というファイルが出力されて、DataSpider Servista のサービスが停止していました。
 (****には半角数字が入っています)
 原因と対応方法を教えてください。
Q222
 $DATASPIDER_HOME/server/bin に hs_err_pid****.log というファイルが出力されて、DataSpider Servista のサービスが停止していました。
 原因と対応方法を教えてください。
 (****には半角数字が入っています)
Q223
 DataSpider Servista のプロセスが停止していました。
 ログなどを見ても、特に原因と思われるエラーが出力されていません。
 原因と対応方法を教えてください。



[注意事項]
  • このFAQの内容は2017年3月時点のものです。内容は予告なく変更されることがありますので、ご注意ください。
  • 一部にDataSpider Servistaサポートサイトへのリンクを含むことがあります。サポートサイトにアクセスするには、DataSpiderのサポート契約が必要です。


ID:Q224

コメント

記事コメントは受け付けていません。

Powered by Zendesk