[jboss-user] [JBoss jBPM] - Stateless Process Engine executor threading issues
jorgemoralespou_2
do-not-reply at jboss.com
Wed Feb 28 13:06:58 EST 2007
Hi,
We've developed an engine for executing process instances. Until know, we only need execution of stateless processes, so we get the root token, and signal on it until reaching the final state. Everything works fine till here. We have a WS facade for starting the Process executions.
The problem is that execution times increase linearly as the number of clients increase, which isn't the desired behaviour.
Everything seems to scale up properly, but for the JBPM engine. Theres is plenty of cpu time left, plenty of threads configured in the AS, plenty of everything, but isn't scaling.
I post you here the execution logic we use so any of you can help us finding a solution.
Thanks
| JbpmContext ctx = null;
| boolean newContext = false;
| try {
| // Fetch JbpmContext
| ctx = getJbpmConfiguration().getCurrentJbpmContext();
| if (ctx == null) {
| ctx = getJbpmConfiguration().createJbpmContext();
| newContext = true;
| }
|
| // Get process definition
| ProcessDefinition processDefiniton = null;
| if (version == null) {
| processDefiniton = ctx.getGraphSession()
| .findLatestProcessDefinition(processName);
| } else {
| processDefiniton = ctx.getGraphSession().findProcessDefinition(
| processName, version);
|
| }
| if (processDefiniton == null) {
| throw new ProcessDefinitionNotFoundException(processName,
| version);
| }
|
| // Create instace, add input params as context variables
|
| ProcessInstance instance = new ProcessInstance(processDefiniton);
| instance.getContextInstance().setTransientVariable(
| "REQUEST", req);
|
| // Execute process
| do{
| instance.getRootToken().signal();
| } while (!EndState.class.isAssignableFrom(instance.getRootToken().getNode().getClass()));
|
| // Get output parameters
| Map<String, Serializable> response = (Map<String, Serializable>) instance.getContextInstance().getTransientVariable("RESPONSE");
| return response;
| } catch (Exception e) {
| throw new JbpmEngineException("Unexpected error", e);
| } finally {
| if (ctx != null && newContext) {
| ctx.close();
| }
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4023855#4023855
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4023855
More information about the jboss-user
mailing list