Hi All,
We are using Drools-core 5.2.0.M2 version and we are facing issue while
inserting facts within
StatefulKnowledge session we insert around 50 facts in single request. We
have 10 threads concurrently requesting for fireAllRules. We are using mvel
dialect and our threads are getting blocked over class.forName
Below is the thread dump
java.lang.Thread.State: BLOCKED (on object monitor) at
java.lang.Class.forName0(Native Method) at
java.lang.Class.forName(Class.java:247) at
org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:110)
at
org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:140)
at org.mvel2.ParserContext.hasImport(ParserContext.java:343) at
org.mvel2.compiler.AbstractParser.createPropertyToken(AbstractParser.java:1308)
at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:830)
at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:132)
at org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:2097)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:900)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:338)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:140)
at org.mvel2.ast.ASTNode.optimize(ASTNode.java:158) at
org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115) at
org.mvel2.ast.Or.getReducedValueAccelerated(Or.java:31) at
org.mvel2.ast.Or.getReducedValueAccelerated(Or.java:31) at
org.mvel2.MVELRuntime.execute(MVELRuntime.java:87) at
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:125)
at org.mvel2.MVEL.executeExpression(MVEL.java:954) at
org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:97)
at
org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:291)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:134) at
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:450)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:378)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:360)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:138) at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:143)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:332)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:293)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:905)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:864)
at
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:251)
at
Please advise if this is a known issues in MVEL 2?
Regards,
Lalit.
--
View this message in context:
http://drools.46999.n3.nabble.com/Drools-Concurrent-Execution-causes-Bloc...
Sent from the Drools: User forum mailing list archive at
Nabble.com.