トラブルシューティング
- DataSpiderServerが異常停止する
- メモリ不足によりアプリケーションが停止する
- DataSpiderServerの起動に失敗する
- DataSpiderServerの起動時に時間がかかる
- Windows-31J(CP932)からの変換時の文字化け
- 不正なグローバルリソースの設定で接続テストが成功する
- ScriptRunnerの戻り値が「143」になる
事象
DataSpiderServerがダンプファイルを出力して異常停止する場合があります。
- DataSpiderServerプロセスが停止する。
- $DATASPIDER_HOME/server/bin下にダンプファイル(hs_err_pidxxxx.log)が出力される。
- ダンプファイル内に「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のメモリが足りず拡張に失敗するためです。
対処方法
アプリケーション起動時に指定する最大ヒープサイズと初期ヒープサイズを同値に設定してください。
アプリケーション起動時にメモリの最大値を確保するため、使用メモリの拡張失敗による停止を防ぐことができます。
アプリケーションのヒープサイズの変更方法については、「プロパティリファレンス」を参照してください。
事象
$DATASPIDER_HOME/server/tmp下のファイルを開いた状態でDataSpiderServerを起動すると、起動に失敗する場合があります。
原因
DataSpiderServer起動時に行う$DATASPIDER_HOME/server/tmp下の不要なファイルを削除する処理に失敗しているためです。
対処方法
開いているファイルを閉じてからDataSpiderServerを起動してください。
事象
$DATASPIDER_HOME/server/tmp下に大量のフォルダ/ファイルが存在する場合、DataSpiderServerの起動に時間がかかる場合があります
原因
DataSpiderServer起動時に$DATASPIDER_HOME/server/tmp下の不要なファイルを削除しているためです。
対処方法
不要なファイルをあらかじめ削除してください。
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の実行中に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の監視と処理を行いません。
すなわち、ユーザーのログオフを検知しなくなるため、事象の発生を回避できます。