[jBPM] - Problem in a process with a event-based timer and JPAWorkingMemoryDbLogger
by Marco Piraccini
Marco Piraccini [http://community.jboss.org/people/mpiraccini] created the discussion
"Problem in a process with a event-based timer and JPAWorkingMemoryDbLogger"
To view the discussion, visit: http://community.jboss.org/message/621274#621274
--------------------------------------------------------------
Hi Guys,
I have a very simple process with a timer event:
http://community.jboss.org/servlet/JiveServlet/showImage/2-621274-16871/p... http://community.jboss.org/servlet/JiveServlet/downloadImage/2-621274-168...
The timer has a timeCylce of 500ms. The scripts simply set a variable (message1 and message2) that i look to see of the scripts has been executed.
My test see that -after the prcess start- the first task is executed, waits for 1000ms and then check the that the second task has been executed (inspecting the message2 variable). Also the test check that the process is completed.
The Task2 script task containt that code:
<bpmn2:script>
System.out.println("Executing Script Task 1");
kcontext.setVariable("message","Executed Script Task 1");
</bpmn2:script>
That works perfectly...at least until I add:
JPAWorkingMemoryDbLogger logger = new JPAWorkingMemoryDbLogger(session);
When I do that, it seems that:
- The timer does not trigger the "Script Task 2" task.
- The error below appears in the console:
Hibernate: insert into NodeInstanceLog (id, log_date, nodeId, nodeInstanceId, nodeName, processId, processInstanceId, type) values (null, ?, ?, ?, ?, ?, ?, ?)
INFO BitronixTransactionManager - shutting down Bitronix Transaction Manager
org.drools.RuntimeDroolsException: Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalProcessInstanceAction@22862041
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:996)
at org.drools.impl.StatefulKnowledgeSessionImpl.executeQueuedActions(StatefulKnowledgeSessionImpl.java:845)
at org.jbpm.process.instance.event.DefaultSignalManager.signalEvent(DefaultSignalManager.java:89)
at org.jbpm.process.instance.timer.TimerManager$ProcessJob.execute(TimerManager.java:164)
at org.drools.time.impl.JDKTimerService$JDKCallableJob.call(JDKTimerService.java:151)
at org.drools.persistence.jpa.JpaJDKTimerService$JpaJDKCallableJob.internalCall(JpaJDKTimerService.java:80)
at org.drools.persistence.jpa.JpaJDKTimerService$JpaJDKCallableJob.access$100(JpaJDKTimerService.java:63)
at org.drools.persistence.jpa.JpaJDKTimerService$JDKCallableJobCommand.execute(JpaJDKTimerService.java:96)
at org.drools.persistence.jpa.JpaJDKTimerService$JDKCallableJobCommand.execute(JpaJDKTimerService.java:84)
at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:292)
at org.drools.persistence.jpa.JpaJDKTimerService$JpaJDKCallableJob.call(JpaJDKTimerService.java:75)
at org.drools.persistence.jpa.JpaJDKTimerService$JpaJDKCallableJob.call(JpaJDKTimerService.java:63)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at org.jbpm.process.instance.impl.ProcessInstanceImpl.getProcess(ProcessInstanceImpl.java:67)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.getWorkflowProcess(WorkflowProcessInstanceImpl.java:180)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.getNodeContainer(WorkflowProcessInstanceImpl.java:68)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.getNode(NodeInstanceImpl.java:100)
at org.jbpm.workflow.instance.node.ActionNodeInstance.getActionNode(ActionNodeInstance.java:35)
at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:43)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:185)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:150)
at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:47)
at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:162)
at org.jbpm.workflow.instance.node.TimerNodeInstance.triggerCompleted(TimerNodeInstance.java:135)
at org.jbpm.workflow.instance.node.TimerNodeInstance.signalEvent(TimerNodeInstance.java:125)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:333)
at org.jbpm.process.instance.event.DefaultSignalManager$SignalProcessInstanceAction.execute(DefaultSignalManager.java:117)
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:994)
... 18 more
...any idea? It seems a bug to me...
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/621274#621274]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 2 months
[jBPM] - ReceiveTaskHandler handling multiple process intances with the same message-id
by Melih Cetin
Melih Cetin [http://community.jboss.org/people/mscetin] created the discussion
"ReceiveTaskHandler handling multiple process intances with the same message-id"
To view the discussion, visit: http://community.jboss.org/message/617949#617949
--------------------------------------------------------------
BPMN2 JUnit test for BPMN2-ReceiveTask is implemented as
ksession.getWorkItemManager().registerWorkItemHandler("Receive Task", receiveTaskHandler);
...
receiveTaskHandler.messageReceived("HelloMessage", "Hello john!");
I tried to use ReceiveTaskHandler class in a project to receive a notification from an external system for a specific process-instance and resume the process upon receipt of the message. I could not figure out how to specify the process-instance for which the received message is applicable.
JUinit test works fine as there is only one process instance in the session during the execution of this test. The source code for ReceiveTaskHandler is:
public class ReceiveTaskHandler implements WorkItemHandler {
// TODO: use correlation instead of message id
private Map<String, Long> waiting = new HashMap<String, Long>();
...
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
String messageId = (String) workItem.getParameter("MessageId");
waiting.put(messageId, workItem.getId());
* // If waiting map previously contained a mapping for messageId, the old value is replaced !!!*
}
public void messageReceived(String messageId, Object message) {
Long workItemId = waiting.get(messageId);
if (workItemId == null) {
return;
}
Map<String, Object> results = new HashMap<String, Object>();
results.put("Message", message);
ksession.getWorkItemManager().completeWorkItem(workItemId, results);
}
...
}
The comment of // TODO: use correlation instead of message id at the top of the source file also gave the impression that the implementation is not complete. As an interim solution, I decided to extend ReceiveTaskHandler class as follows:
public class ReceiveTaskHandler extends org.jbpm.bpmn2.handler.ReceiveTaskHandler {
private Map<String, Long> waiting = new HashMap<String, Long>();
private KnowledgeRuntime ksession;
public ReceiveTaskHandler(KnowledgeRuntime ksession) {
super(ksession);
this.ksession = ksession;
}
private String constructKey(long processInstanceId, String messageId) {
return processInstanceId + "|" + messageId;
}
@Override
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
long processInstanceId = workItem.getProcessInstanceId();
String messageId = (String) workItem.getParameter("MessageId");
waiting.put(constructKey(processInstanceId, messageId), workItem.getId());
// If waiting map previously contained a mapping for messageId, the old value is replaced !!!
}
@Override
public void messageReceived(String messageId, Object message) {
throw new UnsupportedOperationException(
"messageReceived(String messageId, Object message) method is not supported. " +
"Instead use messageReceived(long, String, Object) method" );
}
public void messageReceived(long processInstanceId, String messageId, Object message) {
Long workItemId = waiting.get(constructKey(processInstanceId, messageId));
if (workItemId == null) {
return;
}
Map<String, Object> results = new HashMap<String, Object>();
results.put("Message", message);
ksession.getWorkItemManager().completeWorkItem(workItemId, results);
}
}
I was wondering if "Receive Task" is the right task to use for waiting an external notification. If yes, then can any core jBPM contributor review the extension that I used locally and consider adding it to the next release of jBPM.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/617949#617949]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 2 months
[jBPM] - problem about jbpm5.1 web console
by HUI LIU
HUI LIU [http://community.jboss.org/people/brianlh] created the discussion
"problem about jbpm5.1 web console"
To view the discussion, visit: http://community.jboss.org/message/614794#614794
--------------------------------------------------------------
I have installed jbpm5.1 by "ant install.demo" and started it.
When I access jbpm5.1.0 web console http://localhost:8080/jbpm-console/app.htm http://localhost:8080/jbpm-console/app.htm and review the process list,
then an exception is thrown out.
Who can give me some advice to solve the problem?
Thanks in advance.
=========================================
URL: 'http://localhost:8080/gwt-console-server/rs/process/definitions' Action: 'org.jboss.bpm.console.client.process.UpdateDefinitionsAction' Exception: 'class com.google.gwt.http.client.RequestException' HTTP 500: Etat HTTP 500 - type Rapport d'exception message description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te. exception org.jboss.resteasy.spi.UnhandledException: java.lang.IllegalStateException: Failed to load: org.jbpm.integration.console.ManagementFactoryImpl org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230) org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)=========================================
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/614794#614794]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 2 months
[EJB3] - EJB3 Session Bean Pool
by Robert Geisler
Robert Geisler [http://community.jboss.org/people/robert.geisler] created the discussion
"EJB3 Session Bean Pool"
To view the discussion, visit: http://community.jboss.org/message/597611#597611
--------------------------------------------------------------
hello...
during the last few weeks we experienced some problems with session bean instantiation.
in the past we used default session bean pool, ThreadlocalPool. this pool implementation creates instances for every newly created thread, but these instances seem to never be destroyed, not even if the threads, they were created for, die.
so we tried StrictMaxPool pool implementation and set a maximum of 100.000. with this pool we see much less bean instances, because the pool creates them only if there are no free instances left. existing beans (released earlier) get reused later, allthough they are not destroyed until container/ server shuts down.
a simple scenario: in the morning 200 users log in and read their private messages. they all start working at 8 a.m. and they are using mostly the same services. every single user needs one bean instance for one request and because all users request concurrently, StrictMaxPool creates 200 instances. later the users have lunch, so no one fires request to the server, all beans (200!) are released and waiting in the pool. but because StrictMaxPool does not destroy beans, the 200 instances are kept in server vm/ heap all the day (until shutdown!).
we think this behaviour is a waste of resources! a pool should destroy instances if there a more instances in the pool than we want to reserve for further usage. because later the day our 200 users will almost never produce 200 concurrent requests again, we would like to configure the pool to just keep a maximum of 50 beans.
so my questions are:
1) why are instances not destroyed by StrictMaxPool? there is an idea of destroying instances in StrictMaxPool.release, but because pool.size will never be more than maxSize (an attemp to get one more bean always fails!), remove is never called!?
2) is there a pool implementation that destroys instances and just holds a configurable amount of beans? or do we have to implement it on our own (TolerantMinPool ; ))?
3) ?some more suggestions?
thanks in advance
robert
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/597611#597611]
Start a new discussion in EJB3 at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 2 months
[JBoss Messaging] - Standalone JMS - connection dropped
by Denis Demichev
Denis Demichev [http://community.jboss.org/people/demichev] created the discussion
"Standalone JMS - connection dropped"
To view the discussion, visit: http://community.jboss.org/message/624096#624096
--------------------------------------------------------------
Hello All,
Trying to utilize JBoss 5.1.0 JMS server in our project. This is a standalone server without any clustering capabilities.
Running it as: run.bat -c default -b DTCJDBWFXJM1
The application with JBoss client tries to connect to the server and works pretty fine for 40-45 minutes.
After that I see an error message (see below) and the application is using fail-over functionality to reconnect to server again and it does.
I.e. the problem is resolved just by re-connecting again. I cannot say that this could be reproduced with some specific steps, but
rather I see it sporadically happens under stress.
Unfortunately I cannot add any additional information from the server logs as soon as there's nothing unusual there - just a standard boot process.
One more note that potentially can give someone a clue. From time to time under stress again I see that JBoss just stops responding and delivering JMS messages to JMS clients, I'm not sure if that is cause by GC (stop the world?) - I'm using just a set of standard out-of-the-box configuration files with 5-7 JMS queues (all durable).
Would appreciate ideas on why this happens and how to workaround. Although this is not a big issue in DEV environment, potentialy It could be quite annoying to support people who receive e-mails every time some exception occurrs.
Here's Exception stacktrace:
org.jboss.jms.exception.MessagingNetworkFailureException
at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:240)
at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)
at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
at org.jboss.jms.client.delegate.ClientConnectionDelegate.org$jboss$jms$client$delegate$ClientConnectionDelegate$createSessionDelegate$aop(ClientConnectionDelegate.java:186)
at org.jboss.jms.client.delegate.ClientConnectionDelegate$createSessionDelegate_6052335267724906805.invokeTarget(ClientConnectionDelegate$createSessionDelegate_6052335267724906805.java)
......
Caused by: org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection for InvokerLocator [bisocket://DTCJDBWFXJM1:4457/?JBM_clientMaxPoolSize=200&clientLeasePeriod=10000&clientSocketClass=org.jboss.jms.client.remoting.ClientSocketWrapper&connectionWait=10&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&pingFrequency=214748364&pingWindowFactor=10&socket.check_connection=false&stopLeaseOnFailure=true&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat&validatorPingPeriod=10000&validatorPingTimeout=5000]
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:776)
at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:426)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165)
.....
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.jboss.remoting.transport.socket.SocketClientInvoker$1.run(SocketClientInvoker.java:299)
at java.security.AccessController.doPrivileged(Native Method)
Thanks!
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/624096#624096]
Start a new discussion in JBoss Messaging at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 2 months
[jBPM] - Re: registerWorkItemHandler workItemName
by Tobias Wittur
Tobias Wittur [http://community.jboss.org/people/tob1as] created the discussion
"Re: registerWorkItemHandler workItemName"
To view the discussion, visit: http://community.jboss.org/message/622283#622283
--------------------------------------------------------------
@Esteban
Thanks Esteban, I already copied the ServiceTaskHandler class and invoked my own java class with it, similar to the HelloProcess Example. So this works.
The interface was a bit hidden, but already defined in the example above:
<bpmn2:interface id="_2_ServiceInterface" name="org.jbpm.examples.junit.HelloService">
<bpmn2:operation id="_2_ServiceOperation" name="hello"/>
</bpmn2:interface>
I am successfully invoking a webservice with it and transfering json data in my process. So finally a feeling of success :)
@Tihomir
I never really had an issue with opening the xml from the BPMN Eclipse 2.0 Editor in Oryx or vice versa. Oryx and the Eclipse BPMN 2.0 Editor work perfectly together and are in my opinion also compliant with the BPMN 2.0 spec. My problem is solely the execution of an Oryx generated xml code in eclipse with a processTest.java file.
I wrote the whole xml again by hand and now it works (The example below is a bit more advance at this stage already). I think I will go on coding it by hand for now.
However, it would be nice if the example (working in oryx and eclipse editor plugin) that I posted above would be executable. It is the same semantic structure as the xml below. So it must be a syntax issue.
<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Definition"
targetNamespace="http://www.example.org/MinimalExample"
typeLanguage="http://www.java.com/javaTypes"
expressionLanguage="http://www.mvel.org/2.0"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
xmlns:g="http://www.jboss.org/drools/flow/gpd"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:tns="http://www.jboss.org/drools">
<itemDefinition id="xItemDef" />
<itemDefinition id="bItemDef" />
<itemDefinition id="StartProcessMessageType" structureRef="java.lang.String" />
<itemDefinition id="requestBadgeMessageType" structureRef="java.lang.Object" />
<itemDefinition id="requestLoyaltyStatusMessageType" structureRef="java.lang.Object" />
<message id="StartProcessMessage" itemRef="StartProcessMessageType" />
<message id="requestLoyaltyStatusMessage" itemRef="requestLoyaltyStatusMessageType" />
<message id="requestBadgeMessage" itemRef="requestBadgeMessageType" />
<interface id="requestLoyaltyStatusInterface" name="loyaltyManagement2.requestLoyaltyStatus">
<operation id="requestLoyaltyStatusOperation" name="hello">
<inMessageRef>requestLoyaltyStatusMessage</inMessageRef>
</operation>
</interface>
<interface id="requestBadgeInterface" name="loyaltyManagement2.requestBadge">
<operation id="requestBadgeOperation" name="hello">
<inMessageRef>requestBadgeMessage</inMessageRef>
</operation>
</interface>
<process processType="Private" id="ServiceProcess" name="Service Process" isExecutable="true" tns:packageName="com.sample" >
<property id="s" itemSubjectRef="xItemDef"/>
<property id="b" itemSubjectRef="bItemDef"/>
<!-- Start Event-->
<startEvent id="messageStartEvent" name="StartProcess" >
<dataOutput id="messageStartEventOutput" />
<dataOutputAssociation>
<sourceRef>messageStartEventOutput</sourceRef>
<targetRef>s</targetRef>
</dataOutputAssociation>
<outputSet>
<dataOutputRefs>messageStartEventOutput</dataOutputRefs>
</outputSet>
<messageEventDefinition messageRef="StartProcessMessage"/>
</startEvent>
<!-- Script Task-->
<scriptTask id="_2" name="Scipt Task - Value Printer" >
<script>System.out.println("s = " + s);</script>
</scriptTask>
<!-- Service Task -->
<serviceTask id="_4" name="requestLoyaltyStatus" operationRef="requestLoyaltyStatusOperation" implementation="Other" >
<ioSpecification>
<dataInput id="requestLoyaltyStatusParam" name="Parameter" />
<dataOutput id="requestLoyaltyStatusResult" name="Result" />
<inputSet>
<dataInputRefs>requestLoyaltyStatusParam</dataInputRefs>
</inputSet>
<outputSet>
<dataOutputRefs>requestLoyaltyStatusResult</dataOutputRefs>
</outputSet>
</ioSpecification>
<dataInputAssociation>
<sourceRef>s</sourceRef>
<targetRef>requestLoyaltyStatusParam</targetRef>
</dataInputAssociation>
<dataOutputAssociation>
<sourceRef>requestLoyaltyStatusResult</sourceRef>
<targetRef>s</targetRef>
</dataOutputAssociation>
</serviceTask>
<!-- Service Task -->
<serviceTask id="_5" name="requestBadge" operationRef="requestBadgeOperation" implementation="Other" >
<ioSpecification>
<dataInput id="requestBadgeParam" name="Parameter" />
<dataOutput id="requestBadgeResult" name="Result" />
<inputSet>
<dataInputRefs>requestBadgeParam</dataInputRefs>
</inputSet>
<outputSet>
<dataOutputRefs>requestBadgeResult</dataOutputRefs>
</outputSet>
</ioSpecification>
<dataInputAssociation>
<sourceRef>s</sourceRef>
<targetRef>requestBadgeParam</targetRef>
</dataInputAssociation>
<dataOutputAssociation>
<sourceRef>requestBadgeResult</sourceRef>
<targetRef>b</targetRef>
</dataOutputAssociation>
</serviceTask>
<!-- Script Task-->
<scriptTask id="_6" name="Scipt Task - Value Printer" >
<script>System.out.println("b = " + b);</script>
</scriptTask>
<!-- End Event-->
<endEvent id="_3" name="EndProcess" >
<terminateEventDefinition/>
</endEvent>
<!-- Connections-->
<sequenceFlow id="messageStartEvent-_2" sourceRef="messageStartEvent" targetRef="_2" />
<sequenceFlow id="_2-_4" sourceRef="_2" targetRef="_4" />
<sequenceFlow id="_4-_5" sourceRef="_4" targetRef="_5" />
<sequenceFlow id="_5-_6" sourceRef="_5" targetRef="_6" />
<sequenceFlow id="_6-_3" sourceRef="_6" targetRef="_3" />
</process>
</definitions>
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/622283#622283]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 2 months