3 Replies Latest reply on Sep 9, 2007 8:39 PM by Kyll Yang

    about Jbpm scheduler

    Kyll Yang Newbie

      Hello !

      I have a problem about Jbpm scheduler.

      My process definition file is:

      ......
      <task-node name="chiefCheck">
       <task name="chiefCheckTask" swimlane="chief">
       <timer duedate="10 seconds" repeat="5 seconds" name="chiefCheckTimer" transition="end">
       <action class="com.rathink.bpm.example.askforleave.handler.action.ChiefCheckTimerActionHandler"/>
       </timer>
       </task>
       <transition to="timeDecision" name="chiefCheckEnd"/>
       </task-node>
      ......
      





      My jbpm.cfg.xml is like this:

      <jbpm-context>
       <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory"/>
       <service name="tx" factory="org.jbpm.tx.TxServiceFactory"/>
       <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory"/>
       <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"/>
       <service name="authorization" factory="org.jbpm.security.authorization.IdentityAuthorizationServiceFactory"/>
       </jbpm-context>
      
      <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"/>
       <string name="resource.mail.templates" value="jbpm.mail.templates.xml"/>
      
      <int name="jbpm.byte.block.size" value="1024" singleton="true"/>
       <string name="jbpm.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">
       <field name="jbpmConfiguration">
       <ref bean="jbpmConfiguration"/>
       </field>
       <field name="name">
       <string value="JbpmJobExector"/>
       </field>
       <field name="nbrOfThreads">
       <int value="1"/>
       </field>
       <field name="idleInterval">
       <int value="5000"/>
       </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 -->
       </bean>
      


      My web.xml is like this:
      ......
      <servlet>
       <servlet-name>JobExecutorServlet</servlet-name>
       <servlet-class>com.rathink.bpm.servlet.JobExecutorServlet</servlet-class>
       <load-on-startup>3</load-on-startup>
       </servlet>
      
       <servlet-mapping>
       <servlet-name>JobExecutorServlet</servlet-name>
       <url-pattern>/jobexecutor</url-pattern>
       </servlet-mapping>
      ......
      




      spring + jbpm config:
      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
      
       <description>JBPM Configure File</description>
      
       <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
       <property name="sessionFactory">
       <ref bean="sessionFactory"/>
       </property>
       <property name="configuration">
       <value>/WEB-INF/jbpm.cfg.xml</value>
       </property>
       <property name="createSchema">
       <value>false</value>
       </property>
       </bean>
      
       <bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
       <constructor-arg index="0" ref="jbpmConfiguration"/>
       </bean>
      
      </beans>
      


      when i startup my web application, and start a process instance,
      throws:
      2007-08-31 17:35:43.524 [Thread: http-8080-1] org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:255)
      ERROR: action threw exception: service 'scheduler' unavailable
      org.jbpm.svc.JbpmServiceException: service 'scheduler' unavailable
       at org.jbpm.svc.Services.getCurrentService(Services.java:91)
       at org.jbpm.svc.Services.getCurrentService(Services.java:81)
       at org.jbpm.scheduler.def.CreateTimerAction.execute(CreateTimerAction.java:66)
       at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:247)
       at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:215)
       at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:185)
       at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:169)
       at org.jbpm.taskmgmt.exe.TaskInstance.create(TaskInstance.java:169)
       at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:149)
       at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:168)
       at org.jbpm.graph.def.Node.enter(Node.java:318)
      


      I do not know what should i do........
      I have no any idea.......

      I could not speak English well, sorry.

      Help me, Thanks a lot!!!!