GDC job fails with KnowledgeBase error
- Article Type: General
- Product: Voyager
- Product Version: 8.2.0
Problem Symptoms
When attempting to run a GDC job, job fails with following error in log:
2013-06-05 11:56:13,468 604487 [main] ERROR com.exlibris.voyager.jobd.ScanJob - Error building knowledge base
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.exlibris.voyager.drools.KnowledgeBaseBuilder.readKnowledgeBase(KnowledgeBaseBuilder.java:130)
at com.exlibris.voyager.drools.RulesRunnerImpl.buildKnowledge(RulesRunnerImpl.java:61)
at com.exlibris.voyager.jobd.ScanJob.init(ScanJob.java:152)
at com.exlibris.voyager.jobd.JobExecutor.execute(JobExecutor.java:289)
at com.exlibris.voyager.jobd.JobExecutor.main(JobExecutor.java:260)
2013-06-05 11:56:13,471 604490 [main] ERROR 5 - Error building knowledge base
2013-06-05 11:56:13,479 604498 [main] ERROR com.exlibris.voyager.jobd.AbstractRunnableJob -
Failed ScanJob (name = <job name>, id = <job id>) at Wed Jun 05 11:56:13 EDT 2013
Cause
The dialect file (gdc.dsl) is not loading.
Resolution
Before proceeding, double-check it is not the rule itself causing the issue by testing a different (known good) rule in Preview. If all rules are impacted:
- Open an Incident to request Support reload the gdc.dsl.
- Alternatively, if you feel comfortable doing this yourself, follow these steps:
1. SSH to your Voyager server and login as the voyager user.
2. cd /m1/voyager/xxxdb/ini
3. Ensure that gdc.dsl exists in this directory. If not, contact Voyager Support.
4. cd ../sbin
5. ./Prulemgmt -a d -p /m1/voyager/xxxdb/ini/gdc.dsl -n gdc.dsl
6. You should receive a success message:
/m1/voyager/xxxdb/ini/gdc.dsl succesfully written to database as name gdc.dsl
After receiving the success message, restart jobd by typing the following in the same /sbin directory (you may need to kill jobd first):
- ./Pjobd
Additional Information
A similar but not identical error log entry can be generated by problems in your rule. One method that might be helpful to identify any errors in your rule is to run the job that is failing in Preview mode in Job Management > "Do not update database" mode and check the jobd.log file.
- Article last edited: 08-Oct-2019