*概要 [#ca1c0f06]
-Fessバッチファイルから起動したときはジョブスケジューラが正常に動作するが、タスクから起動したときにジョブスケジューラが正常に動作しない
-ログを確認すると、jvm.dllの呼び出しに失敗している
-JAVAのPATHの設定を変更する事で解決

*詳細 [#c8aa68ef]
**現象 [#w6d47c32]
-Fessをfess.batから起動するとジョブスケジューラが正常に動作する
-Windowsのサービスに登録して起動すると、Fess自体は動作するが、ジョブスケジューラを「今すぐ開始」しても、すぐに終了して動作しない
-「システム情報」→「ジョブログ」を確認しても、状態は「OK」になっているが、すぐに終了している。
-夜間のバッチ処理でも同様
|名前|状態|開始時間|終了時間|
|Default Crawler|OK|2018-09-20T00:00:00|2018-09-20T00:00:00|
|Default Crawler|OK|2018-09-19T16:36:39|2018-09-19T16:36:40|

**ログを確認 [#q264c96f]
-fess.logを確認すると
-fess.logを確認すると以下のエラーが出力されている
 2018-09-20 00:00:00,608 [job_default_crawler] WARN  Failed to evalue groovy script: return container.getComponent("crawlJob").logLevel("info").execute(executor); => {executor=org.codelibs.fess.job.impl.GroovyExecutor@1f571c6}
 org.codelibs.fess.exception.FessSystemException: Exit Code: 4
 Output:
 Error: missing `server' JVM at `C:\Program Files\Java\jre1.8.0_181\bin\server\jvm.dll'.
 Please install or use the JRE or JDK that contains these missing components.
-jvm.dllのパスを確認すると、「C:\Program Files\Java\jre1.8.0_181\bin\server\」が存在していない
-代わりに「C:\Program Files\Java\jre1.8.0_181\bin\client」は存在するので、試しに「client」フォルダを「server」という名前でコピーして動作確認すると、ジョブスケジューラが正常に動作する

**JAVAのPATH [#kdbb0eee]
-システム環境変数ではJAVA_HOMEを設定している
|JAVA_HOME|C:\Program Files\Java\jdk1.8.0_181|
|Path|C:\Program Files\Common Files\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%\bin|
-JDKのパスを指定しているのに、JREのパスを参照しているのはなぜか。。。
-コマンドプロンプトで確認すると
 C:\>java -version
 java version "1.8.0_181"
 Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
 Java HotSpot(TM) Client VM (build 25.181-b13, mixed mode, sharing)
 
 C:\>where java
 C:\Program Files\Common Files\Oracle\Java\javapath\java.exe
 C:\Program Files\Java\jdk1.8.0_181\bin\java.exe
-JDKの前に「C:\Program Files\Common Files\Oracle\Java\javapath\java.exe」が入っている
-Pathの設定で最初に「C:\Program Files\Common Files\Oracle\Java\javapath」が入っているのが原因
-Pathの設定を以下のように変更
|Path|%JAVA_HOME%\bin;C:\Program Files\Common Files\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\|
-Windowsを再起動
-コマンドプロンプトで確認
 C:\>where java
 C:\Program Files\Java\jdk1.8.0_181\bin\java.exe
 C:\Program Files\Common Files\Oracle\Java\javapath\java.exe
-この状態でジョブスケジューラの動作を確認すると、サービスから起動した場合でも、正常に動作する

*参考 [#gcaf9c02]
-[[JAVA_HOMEが効かない!?複数のJDKを切り替えて使うときの問題点>https://web.plus-idea.net/2017/04/java_home-swich-jdk/]]



----
Fess JAVA JAVA_HOME PATH
&size(12){Total:&counter(total); / Today:&counter(today); / Yesterday:&counter(yesterday);};

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS