Jakarta ee drools内存不足错误

Jakarta ee drools内存不足错误,jakarta-ee,memory-management,file-upload,drools,Jakarta Ee,Memory Management,File Upload,Drools,我正在使用drools5.5,并使用所需的DRL和决策表创建知识库,以执行规则。 在这种情况下,当我尝试在knowledgeBuilder中加载决策表(这是一个有近20000行的XLS)时,我遇到了内存不足的异常 KnowledgeBuilder knowBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); knowBuilder.add(ResourceFactory.newFileResource(fileLocation),Res

我正在使用drools5.5,并使用所需的DRL和决策表创建知识库,以执行规则。 在这种情况下,当我尝试在knowledgeBuilder中加载决策表(这是一个有近20000行的XLS)时,我遇到了内存不足的异常

KnowledgeBuilder knowBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
knowBuilder.add(ResourceFactory.newFileResource(fileLocation),ResourceType.determineResourceType(fileLocation));

当我执行这个命令时,我得到了Java堆空间错误和permGen空间错误。是否有其他方法可以有效地在drools中加载大型规则文件。

问题是XLS文件在内存中有多大以及创建了多少对象? 你是否在课程中插入事实?
堆大小是多少?

i)不清楚“内存中的XLS文件”(磁盘中的文件大小只有4 mb)。ii)是的,我正在将事实插入会话中。(但创建知识库本身时出错)iii)堆大小为2GB您可以将环境设置为在发生OOM时将堆转储到磁盘上吗?例如,使用EclipseMat分析结果可能会让您对问题出现的地方有更多的了解。