Skip to Main Content

Intelligent Advisor

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Out of Memory Error in Building Rulebase with Module

FC 11131Nov 10 2013 — edited Nov 11 2013

Dear OPA Developers,

Need your help around one of the new features in OPA 10.4 which is Modules.

I have two rulebases A and B.  While in rulebase A, I would like to be able to determine policy outcomes written in rulebase B.  So I created a module out of rulebase B (select Build Module), opened project of rulebase A, and linked the .rmod output of rulebase B into rulebase A (Modules folder > Add Module Link..)

When I try to debug without screens, build is successful and I am able to investigate the rules in rulebase B from here.  However when I debug with screens, build and run in ODS, or build and run in OWD, they all prompt a stack strace on the screen.  The root cause of the exception is a “java.lang.OutOfMemoryError: Java heap space”

If I build these rulebases separately, it works fine and no errors.  It only happens when one becomes the module of the other.  How can this memory error be fixed?  I am pasting the whole error message below hoping to help in investigation.  (Sorry for the long text..)

Any help to make this work is appreciated.  Thank you!

HTTP status 500

exception

  1. javax.servlet.ServletException: Servlet.init() for servlet WebDeterminationsServlet threw exception

        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)

        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)

        org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

        org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

        org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

        org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)

        java.lang.Thread.run(Unknown Source)

root cause

  1. java.lang.OutOfMemoryError: Java heap space

        org.apache.xerces.dom.DeferredDocumentImpl.getNodeObject(Unknown Source)

        org.apache.xerces.dom.DeferredElementNSImpl.synchronizeData(Unknown Source)

        org.apache.xerces.dom.ElementNSImpl.getNamespaceURI(Unknown Source)

        org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.addNode(DOM2DTM.java:262)

        org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:523)

        org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.java:565)

        org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaultBase.java:1142)

        org.apache.xml.dtm.ref.DTMDefaultBaseTraversers$ChildTraverser.next(DTMDefaultBaseTraversers.java:463)

        org.apache.xpath.axes.ChildTestIterator.getNextNode(ChildTestIterator.java:83)

        org.apache.xpath.axes.BasicTestIterator.nextNode(BasicTestIterator.java:170)

        org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:335)

        org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:494)

        org.apache.xml.dtm.ref.DTMNodeList.<init>(DTMNodeList.java:81)

        org.apache.xpath.objects.XNodeSet.nodelist(XNodeSet.java:346)

        org.apache.xpath.jaxp.XPathImpl.getResultAsType(XPathImpl.java:329)

        org.apache.xpath.jaxp.XPathImpl.evaluate(XPathImpl.java:282)

        com.oracle.determinations.util.xml.dom.XmlElement.selectElements(XmlElement.java:89)

        com.oracle.determinations.util.xml.dom.XmlElement.selectElements(XmlElement.java:81)

        com.oracle.determinations.engine.local.modules.Module.loadDataModel(Module.java:295)

        com.oracle.determinations.engine.local.modules.Module.<init>(Module.java:56)

        com.oracle.determinations.engine.local.modules.ModuleLoader.loadChildModules(ModuleLoader.java:72)

        com.oracle.determinations.engine.local.modules.ModuleLoader.loadModules(ModuleLoader.java:56)

        com.oracle.determinations.engine.local.modules.ModuleLoader.createUnifiedRulebase(ModuleLoader.java:31)

        com.oracle.determinations.engine.local.RulebaseLoader.createUnifiedRulebase(RulebaseLoader.java:141)

        com.oracle.determinations.interview.engine.local.LocalRulebaseService.applyChangeSet(LocalRulebaseService.java:243)

        com.oracle.determinations.interview.engine.plugins.rulebaseresolver.ClassloaderRulebaseResolverPlugin.initialise(ClassloaderRulebaseResolverPlugin.java:73)

        com.oracle.determinations.interview.engine.local.LocalRulebaseService.<init>(LocalRulebaseService.java:53)

        com.oracle.determinations.interview.engine.local.LocalInterviewEngine.initialise(LocalInterviewEngine.java:181)

        com.oracle.determinations.interview.engine.local.LocalInterviewEngine.<init>(LocalInterviewEngine.java:66)

        com.oracle.determinations.interview.engine.InterviewEngineFactory.createInstance(InterviewEngineFactory.java:19)

        com.oracle.determinations.web.platform.servlet.WebDeterminationsServletContext.init(WebDeterminationsServletContext.java:180)

        com.oracle.determinations.web.platform.servlet.WebDeterminationsServletContext.<init>(WebDeterminationsServletContext.java:116)

This post has been answered by Ben Rogers on Nov 11 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 9 2013
Added on Nov 10 2013
2 comments
1,749 views