1 Reply Latest reply on Sep 20, 2007 12:22 PM by Fabien Coppens

    Problem with timers (org.jbpm.JbpmException: couldn't execut

    E B Newbie

      Hi,

      I have some problem with timers.

      In my process definition I have a timer in some state:

      <state name="watering">
       <timer name="timer_eb"
       duedate="2 minutes"
       transition="overdose" >
       <action class='com.comarch.oss.core.controller.UIControllerHandler' />
       </timer>
      ...
      </state>


      I expect that timer will fire 2 minutes after state enter and defined transition and action will execute.
      But nothing happens.
      Instead of that in server.log file I found:

      2007-09-17 13:16:26,250 DEBUG [org.jboss.ejb.txtimer.TimerImpl] run: [id=1,target=[target=jboss.j2ee:service=EJB3,ear=oss-enterprise.ear,jar=jbpm-enterprise.jar,name=TimerServiceBean],remaining=0,periode=0,active]
      2007-09-17 13:16:26,250 DEBUG [org.jboss.ejb.txtimer.TimerImpl] setTimerState: in_timeout
      2007-09-17 13:16:26,250 DEBUG [org.jbpm.scheduler.ejbtimer.TimerServiceBean] ejb timer [id=1,target=[target=jboss.j2ee:service=EJB3,ear=oss-enterprise.ear,jar=jbpm-enterprise.jar,name=TimerServiceBean],remaining=0,periode=0,in_timeout] fires
      2007-09-17 13:16:26,250 ERROR [org.jbpm.scheduler.ejbtimer.TimerServiceBean] org.jbpm.JbpmException: couldn't execute timer
      2007-09-17 13:16:26,250 ERROR [org.jboss.ejb.txtimer.TimerImpl] Error invoking ejbTimeout: javax.ejb.EJBException: org.jbpm.JbpmException: couldn't execute timer
      2007-09-17 13:16:26,250 DEBUG [org.jboss.ejb.txtimer.TimerImpl] Timer was not registered with Tx, resetting state: [id=1,target=[target=jboss.j2ee:service=EJB3,ear=oss-enterprise.ear,jar=jbpm-enterprise.jar,name=TimerServiceBean],remaining=0,periode=0,in_timeout]
      2007-09-17 13:16:26,250 DEBUG [org.jboss.ejb.txtimer.TimerImpl] setTimerState: expired
      2007-09-17 13:16:26,250 DEBUG [org.jboss.ejb.txtimer.TimerImpl] killTimer: [id=1,target=[target=jboss.j2ee:service=EJB3,ear=oss-enterprise.ear,jar=jbpm-enterprise.jar,name=TimerServiceBean],remaining=0,periode=0,expired]
      2007-09-17 13:17:44,703 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000


      Earlier my timer is properly created, started and activated:

      2007-09-17 13:14:26,234 DEBUG [org.jbpm.graph.def.GraphElement] executing action 'CreateTimerAction(e8cc94)'
      2007-09-17 13:14:26,234 DEBUG [org.jbpm.graph.exe.Token] token[7705] is locked by token[7705]
      2007-09-17 13:14:26,250 DEBUG [org.jbpm.graph.def.GraphElement] event 'timer-create' on 'State(watering)' for 'Token(/)'
      2007-09-17 13:14:26,250 DEBUG [org.jbpm.scheduler.ejbtimer.EjbSchedulerService] creating timer timer(timer_eb,13:16:26,250)

      2007-09-17 13:14:26,265 DEBUG [org.jbpm.scheduler.ejbtimer.TimerServiceBean] creating timer timer(timer_eb,13:16:26,250) in the ejb timer service
      2007-09-17 13:14:26,312 DEBUG [org.jboss.ejb.txtimer.TimerImpl] setTimerState: created
      2007-09-17 13:14:26,328 DEBUG [org.jboss.ejb.txtimer.TimerImpl] setTimerState: started_in_tx

      2007-09-17 13:14:26,875 DEBUG [org.hibernate.pretty.Printer] org.jbpm.scheduler.def.CreateTimerAction{repeat=null, actionExpression=null, dueDate=2 minutes, timerAction=org.jbpm.graph.def.Action#7652, referencedAction=null, id=7651, isAsync=false, processDefinition=null, isPropagationAllowed=true, timerName=timer_eb, event=org.jbpm.graph.def.Event#7650, actionDelegation=null, transitionName=overdose, name=null}

      2007-09-17 13:14:26,953 DEBUG [org.jboss.ejb.txtimer.TimerImpl] commit: [id=1,target=[target=jboss.j2ee:service=EJB3,ear=oss-enterprise.ear,jar=jbpm-enterprise.jar,name=TimerServiceBean],remaining=119297,periode=0,started_in_tx]
      2007-09-17 13:14:26,953 DEBUG [org.jboss.ejb.txtimer.TimerImpl] setTimerState: active


      What does that error (org.jbpm.JbpmException: couldn't execute timer) stand for?
      How to resolve it?

      Best Regards,
      e2rd