*概要 [#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);};