[jboss-user] [JBoss Seam] - Re: jbpm timer transaction issues
torsty
do-not-reply at jboss.com
Tue Feb 12 14:59:48 EST 2008
hi, have you solved your problem? I did something similar with seam 2.0.1GA and jbpm 3.2.2.
Everything worked all right. process-definition looked like:
| <process-definition
| name="myWf"
| xmlns="urn:jbpm.org:jpdl-3.2"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="urn:jbpm.org:jpdl-3.2 http://jbpm.org/xsd/jpdl-3.2.xsd">
|
| <start-state name="start" >
| <transition to="step1"/>
| </start-state>
|
| <task-node name="step1" end-tasks="true">
| <event type="node-enter">
| <create-timer name="myTimeout" duedate="30 seconds" transition="toExpire">
| <action name="testWriteOut" expression="#{timerLogger.logTimer}"/>
| </create-timer>
| </event>
| <task name="stepOneTask" description="task 1">
| <assignment actor-id="#{currentUser.id}" />
| </task>
| <transition name="finished" to="end"/>
| <transition name="toExpire" to="expire"/>
| </task-node>
| ...
|
The action I call looks like:
| package my.package;
|
| import java.io.Serializable;
|
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.End;
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Logger;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Scope;
| import org.jboss.seam.log.Log;
|
| @Name( "timerLogger" )
| @Scope( ScopeType.CONVERSATION )
| public class TimerLogger implements Serializable {
| /**
| *
| */
| private static final long serialVersionUID = 6974693306545880498L;
|
| @Logger
| private Log log;
|
| @In(value="aContextVariable", scope=ScopeType.BUSINESS_PROCESS)
| String aContextVariable; // this is a business process context variable
|
| @End
| public void logTimer( )
| {
| System.out.println( "---------------- timer was created." );
| log.info( "--------- variable: " + aContextVariable );
| }
| }
|
My jbpm.cfg.xml looks like:
| <jbpm-configuration>
|
| <jbpm-context>
| <service name="persistence">
| <factory>
| <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
| <field name="isTransactionEnabled"><false/></field>
| </bean>
| </factory>
| </service>
| <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="scheduler" factory="org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory" />-->
| <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
| <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
| </jbpm-context>
|
| <!-- configuration property used by persistence service impl org.jbpm.persistence.db.DbPersistenceServiceFactory -->
| <string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />
|
| <!-- configuration resource files pointing to default configuration files in jbpm-jpdl.jar -->
| <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" />
|
| <!-- note that the default job executor needs to be overwritten with a null value -->
| <!-- <null name="jbpm.job.executor" /> -->
|
|
| </jbpm-configuration>
|
I am using the JobExecutor Servlet in web.xml
| <servlet>
| <servlet-name>JobExecutorServlet</servlet-name>
| <servlet-class>org.jbpm.job.executor.JobExecutorServlet</servlet-class>
| <load-on-startup>1</load-on-startup>
| </servlet>
| <servlet-mapping>
| <servlet-name>JobExecutorServlet</servlet-name>
| <url-pattern>/jobs</url-pattern>
| </servlet-mapping>
|
Hoping it helps a little bit.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128915#4128915
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128915
More information about the jboss-user
mailing list