3 Replies Latest reply on Apr 9, 2009 10:44 AM by Cristian vieri

    Timer on node clarification

    Cristian vieri Newbie

      Hi all,

      I'm beginner. I have a problem.
      I put a timer and an action on a node, but the timer never start.

      To start the timer do I have to modify anything? What can i do, have you got any idea?

      I have Jboss 4.2.3 GA and JBPM jbpm-3.2.6.SP1.

      My deployed process is:

      <?xml version="1.0" encoding="UTF-8"?>

      <process-definition xmlns="urn:jbpm.org:jpdl-3.2"

      <start-state name="init">




      <end-state name="finish"></end-state>


      I execute the process in my web application so:

      JbpmContext context= JbpmConfiguration.getInstance().createJbpmContext();
      try {

      Map <String , Object> variables= new HashMap<String, Object>();
      JbpmInputsParameter inputs= new JbpmInputsParameter();
      variables.put("inputsBean", inputs);
      System.out.println("Start process: "+Calendar.getInstance().getTime());
      ProcessInstance instance = context.newProcessInstance("process name");
      while (!instance.hasEnded()) {
      System.out.println("I'm in state "+instance.getRootToken().getNode().getName());
      System.out.println("End process: "+Calendar.getInstance().getTime());

      System.out.println("The result is: "+instance.getContextInstance().getVariable("result"));

      } catch (Exception e) {

        • 1. Re: Timer on node clarification
          Joram Barrez Master

          You need to call the jbpmConfiguration.startJobExecutor() operation. Timers are in fact a subclass of Jobs, so something is needed to execute the (also dont forget to define a valid SchedulerService)

          • 2. Re: Timer on node clarification
            Cristian vieri Newbie

            Ops, my right xml process is:

            <?xml version="1.0" encoding="UTF-8"?>
            <process-definition xmlns="urn:jbpm.org:jpdl-3.2"
             <swimlane name="parameters"></swimlane>
             <start-state name="init">
             <task swimlane="parameters">
             <variable access="read,write,required" name="inputsBean"></variable>
             <transition to="node1"></transition>
             <node name="node1">
             <action name="callMsisdn" class="com.nsn.npc.jbpm.util.BeanActionHandler">
             <timer duedate="10 seconds" name="timeout" transition="to finish">
             <transition to="finish" name="to finish"></transition>
             <end-state name="finish"></end-state>

            • 3. Re: Timer on node clarification
              Cristian vieri Newbie

              But i configure the scheduler with:

              <service name='scheduler' factory='org.jbpm.scheduler.db.DbSchedulerServiceFactory' />
              <bean name='jbpm.job.executor' class='org.jbpm.job.executor.JobExecutor'>
               <field name='jbpmConfiguration'><ref bean='jbpmConfiguration' /></field>
               <field name='name'><string value='JbpmJobExecutor' /></field>
               <field name='nbrOfThreads'><int value='1' /></field>
               <field name='idleInterval'><int value='1000' /></field>
               <field name='maxIdleInterval'><int value='3600000' /></field> <!-- 1 hour -->
               <field name='historyMaxSize'><int value='20' /></field>
               <field name='maxLockTime'><int value='600000' /></field> <!-- 10 minutes -->
               <field name='lockMonitorInterval'><int value='60000' /></field> <!-- 1 minute -->
               <field name='lockBufferTime'><int value='5000' /></field> <!-- 5 seconds -->

              It's right?
              The timer don't change the state if the time of action over timer's time.

              Thanks in advanced