トラブルシューティング

  1. DataSpiderServerが異常停止する
  2. メモリ不足によりアプリケーションが停止する
  3. DataSpiderServerの起動に失敗する
  4. DataSpiderServerの起動時に時間がかかる
  5. Windows-31J(CP932)からの変換時の文字化け
  6. 不正なグローバルリソースの設定で接続テストが成功する
  7. ScriptRunnerの戻り値が「143」になる

DataSpiderServerが異常停止する

事象

DataSpiderServerがダンプファイルを出力して異常停止する場合があります。
  1. DataSpiderServerプロセスが停止する。
  2. $DATASPIDER_HOME/server/bin下にダンプファイル(hs_err_pidxxxx.log)が出力される。
  3. ダンプファイル内に「CompilerThread」で障害が発生したとの情報がある。
例:Current thread (0x52d70cf8): JavaThread "CompilerThread1" daemon

原因

JavaはJust In Timeコンパイル方式(以下、JIT方式)を採用しており、実行時にJava中間コードからOSのNative コードに変換(コンパイル)し実行することで、パフォーマンスを向上しています。
DataSpiderServerの内部処理でもJIT方式を採用していますが、JIT方式のうち、Compiler Threadが呼び出された際にこの事象が発生する場合があります。
原因の詳細については、Oracleの技術情報(https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/crashes001.html#CIHDDHCI)を参照してください。

対処方法

対象の処理をJIT方式の対象外にすることにより事象の回避が可能です。
以下の値をlaxファイルの「lax.nl.java.option.additional=」内に設定してDataSpiderServerを起動してください。
「-XX:CompileCommand=exclude,com/appresso/ds/common/kernel/ModuleName,equals」
DataSpiderServerのlaxファイルについては、「プロパティリファレンス」を参照してください。

メモリ不足によりアプリケーションが停止する

事象

DataSpiderServerやクライアントなどの各種アプリケーションがメモリ不足により停止する場合があります。

原因

各種アプリケーションの使用メモリの最大値への拡張時に、OSのメモリが足りず拡張に失敗するためです。

対処方法

アプリケーション起動時に指定する最大ヒープサイズと初期ヒープサイズを同値に設定してください。
アプリケーション起動時にメモリの最大値を確保するため、使用メモリの拡張失敗による停止を防ぐことができます。
アプリケーションのヒープサイズの変更方法については、「プロパティリファレンス」を参照してください。

DataSpiderServerの起動に失敗する

事象

$DATASPIDER_HOME/server/tmp下のファイルを開いた状態でDataSpiderServerを起動すると、起動に失敗する場合があります。

原因

DataSpiderServer起動時に行う$DATASPIDER_HOME/server/tmp下の不要なファイルを削除する処理に失敗しているためです。

対処方法

開いているファイルを閉じてからDataSpiderServerを起動してください。

DataSpiderServerの起動時に時間がかかる

事象

$DATASPIDER_HOME/server/tmp下に大量のフォルダ/ファイルが存在する場合、DataSpiderServerの起動に時間がかかる場合があります

原因

DataSpiderServer起動時に$DATASPIDER_HOME/server/tmp下の不要なファイルを削除しているためです。

対処方法

不要なファイルをあらかじめ削除してください。

Windows-31J(CP932)からの変換時の文字化け

Windows-31J(Microsoft Code Page 932)では、重複して符号化されている文字が存在します。
これらの文字をDataSpider(内部的にはUnicodeで保持しています。)で別のエンコードに変換する際に、文字化けが発生する場合があります。

Windows-31JとShift_JIS間であれば、文字コンバータの「CP932からSJISに変換処理」「SJISからCP932に変換処理」を使用することで、特定の文字の文字化けを回避することができます。

「SJISからCP932に変換処理」および「CP932からSJISに変換処理」で変換できる特定の文字は以下の通りです。

文字 Shift_JISのコード位置 Shift_JISからUnicodeへのマッピング Windows31-JからUnicodeへのマッピング
0x815C 0x2014 0x2015
0x8160 0x301c 0xff5e
0x8161 0x2016 0x2225
0x817C 0x2212 0xff0d
¢ 0x8191 0x00a2 0xffe0
£ 0x8192 0x00a3 0xffe1
¬ 0x81ca 0x00ac 0xffe2

不正なグローバルリソースの設定で接続テストが成功する

事象

メールアダプタやWebアダプタなどのネットワークを経由するアダプタで、グローバルリソースの設定が不正であっても[接続テスト]に成功する。

原因

DataSpiderServerが稼働するOSにインストールされたウイルスチェックソフトが、アダプタの接続をグローバルリソースで設定した接続先に対してではなく、ウイルスチェックソフトが開いているポートに接続させているために発生します。

対処方法

ウイルスチェックソフトの監視対象から、アダプタで接続するポートを外してください。

ScriptRunnerの戻り値が「143」になる

事象

ScriptRunnerの実行中にOSからユーザーがログオフすると、ScriptRunnerの戻り値が「143」になる。

原因

JVMの仕様により、ScriptRunnerのプロセス実行中にOSからユーザーがログオフすると、ScriptRunnerのプロセスが強制終了します。
その際に、戻り値「143」を返します。

対処方法

ScriptRunner.laxの「lax.nl.java.option.additional」に「-Xrs」を追加してください。
「-Xrs」を指定すると、JVMはCTRL_C_EVENT、CTRL_CLOSE_EVENT、CTRL_LOGOFF_EVENT、およびCTRL_SHUTDOWN_EVENTの監視と処理を行いません。
すなわち、ユーザーのログオフを検知しなくなるため、事象の発生を回避できます。