■想定される原因
Java は何らかの問題によって異常終了する際に、その時点のメモリ上の状況をログに出力します。DataSpider Servista ではこのログを「ダンプファイル」と呼んでいます。
hs_err_pid****.log は、このダンプファイルです。
Java は Just In Time コンパイル方式(以下、JIT方式)を採用しており、実行時にJava 中間コードから OS の Native コードに変換(コンパイル)し実行することで、パフォーマンスを向上しています。
DataSpiderServer の内部処理でも JIT 方式を採用していますが、JIT 方式のうち、Compiler Thread が呼び出された場合に、サービスが停止することがあります。確認方法や対応方法については以下をご確認ください。
また、「■確認方法」で該当するログが出力されていない場合は、本文書の末尾に記載しております「■該当しない場合」をご参照ください。
■確認方法
(1) ダンプファイルの確認
以下のパスに出力されているダンプファイルを展開してください。
$DATASPIDER_HOME/server/bin/hs_err_pid****.log
(2) 処理スレッドの確認
ダンプファイル内を「CompilerThread」で検索して、「CompilerThread」で障害が発生したという情報があるかご確認ください。たとえば、以下のようなログが出力されます。
Current thread (0x52d70cf8): JavaThread "CompilerThread1" daemon
(3) コンパイルされていたモジュールの確認
ダンプファイル内を「Current CompileTask」で検索して、障害発生時にコンパイルしていたモジュールを確認してください。たとえば、以下のようなログが出力されます。
例:
Current CompileTask:
C2:2519 ! jp.co.headsol.salesforce.adapter.executer.AbstractUpdateByMultiKeyExecuter.exec()V (994 bytes)
■対応方法
事象発生時にコンパイルされていたモジュールを JIT 方式の対象から外すことで、事象を回避することができます。以下の値を設定ファイルの「lax.nl.java.option.additional=」内に設定して、サービスを再起動してください。
(※設定ファイルの詳細についてはヘルプの「プロパティリファレンスをご参照ください)
・設定ファイル(DataSpiderServer.lax)の場所
$DATASPIDER_HOME/server/bin/DataSpiderServer.lax
・設定キー
-XX:CompileCommand=exclude,full/class/name,method
「■確認方法の(3)」に挙げた例の場合、以下のような値を設定します。
例:
-XX:CompileCommand=exclude,jp/co/headsol/salesforce/adapter/executer/AbstractUpdateByMultiKeyExecuter,exec
■該当しない場合
ダンプファイルが出力されていて、「CompilerThread」で障害が発生していない場合は、別の箇所で問題が発生している可能性があります。この場合は、以下の情報を弊社サポートセンターまでご送付ください。
・再現頻度
事象が発生した回数や頻度についてお伝えください。
・発生時の状況
新規に追加した処理を初めて実行した、特に大量の件数を同期対象にしていたなど事象発生時にだけ、他と異なる処理を実行していた場合には、その情報をお伝えください。
・設定変更
事象の発生が始まった前後で、環境または DataSpider Servista の設定を変更されているかお伝えください。
また、変更した設定がある場合には、元に戻すことで事象が解消されるかも可能であればお試しいただき、その結果もお伝えいただければ、より早い解決につながる可能性があります。
・各種ログ
・ダンプファイル
$DATASPIDER_HOME/server/bin/hs_err_pid****.log
・サーバログ
$DATASPIDER_HOME/server/logs/server.log
・サーバ標準エラー出力
$DATASPIDER_HOME/server/logs/server.error.log
・execログ
$DATASPIDER_HOME/server/logs/<日付ディレクトリ(yyyyMMdd)>/exec.log
・XMLログ
$DATASPIDER_HOME/server/logs/<日付ディレクトリ(yyyyMMdd)>/execution/<実行ID>.xml
※原因とおもわれるスクリプト実行が特定できている場合にご送付ください
(※各ログの詳細についてはヘルプの「ログガイド」をご参照ください。)
参考情報
本FAQと同様の内容は、製品のヘルプの「トラブルシューティング」にも記載しております。
・トラブルシューティング
設定ファイルやログの情報は以下をご参照ください。
・プロパティリファレンス
・ログガイド