Garrett,
No, there is no limit in the number of process instances you can have
simultaneously. I did manage to reproduce your error though, and
discovered an issue when firing rules (we do not allow nested execution
of fireAllRules() but in some specific case this didn't work correctly).
This has been fixed on trunk.
Kris
Quoting Garrett Conaty <garrett(a)conaty.net>:
My scenario is a rule that is firing over a collection. For each
item
in that collection a ruleflow starts to handle it. Right now the
ruleflow just uses the log workitem to log the steps. When there are
~600 items in the collection I'm getting stack overflows. Granted
the
processes could be optimized (I'd really like to take each thing in
the collection that matched and start a process for the set of them).
Still is there a limit to the number of active processes with work
items?
java.lang.StackOverflowError
at java.lang.Long.valueOf(Long.java:547)
at
org
.drools
.workflow.core.impl.NodeContainerImpl.getNode(NodeContainerImpl.java:44)
at
org
.drools
.workflow
.core.impl.WorkflowProcessImpl.getNode(WorkflowProcessImpl.java:47)
at
org
.drools
.workflow
.core
.impl.WorkflowProcessImpl.internalGetNode(WorkflowProcessImpl.java:51)
at
org
.drools
.workflow.instance.impl.NodeInstanceImpl.getNode(NodeInstanceImpl.java:
90)
at
org
.drools
.workflow
.instance
.impl
.ExtendedNodeInstanceImpl
.getExtendedNode(ExtendedNodeInstanceImpl.java:24)
at
org
.drools
.workflow
.instance
.impl
.ExtendedNodeInstanceImpl.triggerEvent(ExtendedNodeInstanceImpl.java:41)
at
org
.drools
.workflow
.instance
.impl
.ExtendedNodeInstanceImpl
.internalTrigger(ExtendedNodeInstanceImpl.java:28)
at
org
.drools
.workflow
.instance
.node
.EventBasedNodeInstance.internalTrigger(EventBasedNodeInstance.java:30)
at
org
.drools
.workflow
.instance
.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:80)
at
org
.drools
.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:
111)
at
org
.drools
.workflow
.instance
.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:141)
at
org
.drools
.workflow
.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:
128)
at
org
.drools
.workflow
.instance
.impl
.ExtendedNodeInstanceImpl
.triggerCompleted(ExtendedNodeInstanceImpl.java:37)
at
org
.drools
.workflow
.instance
.node
.EventBasedNodeInstance.triggerCompleted(EventBasedNodeInstance.java:96)
at
org
.drools
.workflow
.instance
.node
.EventBasedNodeInstance.triggerCompleted(EventBasedNodeInstance.java:77)
at
org
.drools
.workflow
.instance
.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:
192)
at
org
.drools
.workflow
.instance
.node.WorkItemNodeInstance.workItemCompleted(WorkItemNodeInstance.java:
244)
at
org
.drools
.workflow
.instance
.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:222)
at
org
.drools
.workflow
.instance
.impl
.WorkflowProcessInstanceImpl
.signalEvent(WorkflowProcessInstanceImpl.java:258)
at
org
.drools
.process
.instance
.impl
.DefaultWorkItemManager.completeWorkItem(DefaultWorkItemManager.java:96)
at
com.jsi.inactivity.DroolsTest$1.executeWorkItem(DroolsTest.java:40)