[jboss-user] [JBoss jBPM] - JBPM Timer Problem

avivstav do-not-reply at jboss.com
Wed May 2 11:54:53 EDT 2007


Hi 
I try to creater simple flow including Timer:

<process-definition name="testprocess3">
  | 
  |   <start-state name='start'>
  |     <transition to='wait' />
  |   </start-state>
  | 
  |     <state name='wait'>
  |             <timer name='reminder'
  |                  duedate='5 seconds'
  |                  repeat='5 seconds'
  |                  transition='time out'>
  |                  <action class=MyActionHandler' />
  |             </timer>
  |             <transition to='wait2'/>
  |     </state>
  | 
  |     <state name='wait2'>        
  |          <transition to='end'/>
  |     </state>
  | 
  |   <end-state name='end' />
  | </process-definition>

And run it from My Test class as follows:

public void processTimer() {
  | 
  |             JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
  |             try {
  | 
  |               GraphSession graphSession = jbpmContext.getGraphSession();
  | 
  |               ProcessDefinition processDefinition =
  |                   graphSession.findLatestProcessDefinition("testprocess3");
  | 
  |               ProcessInstance processInstance =
  |                   new ProcessInstance(processDefinition);
  | 
  |               Token token = processInstance.getRootToken();
  |               assertEquals("start", token.getNode().getName());
  | 
  |               token.signal();
  | 
  |               token.signal();
  |             }
  |             finally {
  |                 jbpmContext.close();
  |             }
  |       }

The action class is implemented as follows:

public class MyActionHandler implements ActionHandler {    
  |   
  |   public void execute(ExecutionContext executionContext) {
  |       System.out.println("Inside Action handler...");
  |   }
  | }


The first signal() advance from start to wait state which suppose to activate the Timer task every 5 seconds and run the Action class
It looks the Timer is never activated at all.
Any Idea why? 
How exactlly Timers works, is it forked from the main process?


I add to jbpm.cfg.xml the following entries:

<jbpm-configuration>
  |   <jbpm-context>
  |     <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" />
  |     <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
  |     <service name="tx" factory="org.jbpm.tx.TxServiceFactory"/>
  |     <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
  |     <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
  |     <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
  |   </jbpm-context>
  | 
  |    <!--configuration resource files pointing to default configuration files in jbpm-{version}.jar -->
  |   <string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />
  |   <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties" />
  |   <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties" />
  |   <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties" />
  |   <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml" />
  |   <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml" />
  |   <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
  |   <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml" />
  | 
  |   <long   name="jbpm.msg.wait.timout" value="5000" singleton="true" />
  |   <int    name="jbpm.byte.block.size" value="1024" singleton="true" />
  |   <string name="mail.smtp.host" value="localhost" />
  |   <bean   name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" />
  |   <bean   name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
  |   <bean   name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
  |   <bean   name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor" singelton="true" />
  |     
  | </jbpm-configuration>

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4042498#4042498

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4042498



More information about the jboss-user mailing list