[jboss-user] [jBPM Users] - Re: Problem moving from 4.1 to 4.2 using Spring configuratio

suganda do-not-reply at jboss.com
Wed Dec 2 21:10:45 EST 2009


Hi Saraswati,

Thanks for the reply

Below is complete snippet for this weird exception 

Spring Configuration


  | <?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:aop="http://www.springframework.org/schema/aop"
  | 		xmlns:tx="http://www.springframework.org/schema/tx"
  | 		xsi:schemaLocation="
  | 		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  | 		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
  | 		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
  | 	
  | 	<bean id="dol.jdbcDatasource"
  | 		class="org.springframework.jdbc.datasource.DriverManagerDataSource"  lazy-init="true" >
  | 		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
  | 		<property name="url" value="jdbc:mysql://${dol.jdbc.server}:${dol.jdbc.port}/${dol.jdbc.database}" />
  | 		<property name="username" value="${dol.jdbc.loginuser}" />
  | 		<property name="password" value="${dol.jdbc.password}" />
  | 	</bean>
  | 
  | 	<bean id="dol.hbSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  | 		<property name="dataSource"> <ref bean="${dol.datasource}"/> </property>
  | 	 	<property name="mappingLocations">
  |     	    <list>
  | 				<value>classpath:com/gda/dol/comp/resources/hibernate/jbpm.repository.hbm.xml</value>
  | 				<value>classpath:com/gda/dol/comp/resources/hibernate/jbpm.execution.hbm.xml</value>
  | 				<value>classpath:com/gda/dol/comp/resources/hibernate/jbpm.history.hbm.xml</value>
  | 				<value>classpath:com/gda/dol/comp/resources/hibernate/jbpm.task.hbm.xml</value>
  | 				<value>classpath:com/gda/dol/comp/resources/hibernate/jbpm.identity.hbm.xml</value>
  |         	</list>
  | 	    </property>
  |   		<property name="schemaUpdate" value="false"/>
  |   		<property name="hibernateProperties">
  |   			<props>
  |   				<prop key="hibernate.show_sql">true</prop>  			
  |   				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
  |   				<prop key="hibernate.jdbc.batch_size">50</prop>
  |   				<prop key="hibernate.cache.use_second_level_cache">false</prop> 				  				
  |   				<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>  				
  | 				<prop key="hibernate.cache.provider_class">org.hibernate.cache.OSCacheProvider</prop>
  | 				<prop key="hibernate.current_session_context_class">thread</prop>			
  | 				<prop key="hibernate.connection.release_mode">after_transaction</prop>	
  |   			</props>
  |   		</property>
  |   		<property name="configLocations">
  | 			<list>
  | 				<value>classpath:com/gda/dol/comp/resources/jbpm/hibernate.cfg.xml</value>
  | 			</list>
  | 		</property>
  | 	</bean>
  |  		
  | 	<bean id="dol.hbTxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"  lazy-init="true">
  | 		<property name="sessionFactory" ref="dol.hbSessionFactory"/>
  | 	</bean>
  | 	
  | 	<bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
  | 		<constructor-arg value="com/gda/dol/comp/resources/jbpm/jbpm.cfg.xml" />
  | 	</bean>
  | 	
  | 	<bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />
  | 	<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
  | 	<bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" />
  | 	<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
  | 	
  | 	<bean id="_deployService" class="com.gda.dol.comp.jbpm.impl.DeployServiceImpl">
  | 		<property name="repositoryService" ref="repositoryService" />
  | 	</bean>
  | 
  | 	<bean id="processInformationService"
  | 		class="com.gda.dol.comp.jbpm.impl.ProcessInformationServiceImpl">
  | 		<property name="repositoryService" ref="repositoryService" />
  | 		<property name="executionService" ref="executionService" />
  | 	</bean>
  | 
  | 	<bean id="simpleProcessService" 
  | 		class="com.gda.dol.comp.jbpm.impl.SimpleProcessServiceImpl">
  | 		<property name="repositoryService" ref="repositoryService" />
  | 		<property name="executionService" ref="executionService" />
  | 	</bean>
  | 
  | 	<bean id="_echoService" class="com.gda.dol.comp.jbpm.impl.EchoServiceImpl" />
  | 	
  | 	<bean id="_initialFillService" class="com.gda.dol.comp.jbpm.impl.InitialFillServiceImpl">
  | 		<property name="repositoryService" ref="repositoryService" />
  | 	</bean>
  | 	
  | 		<bean id="abstractService"
  | 		class="com.gda.abc.xxx.framework.springSupport.SpringServiceFactory"
  | 		abstract="true">
  | 		<property name="transactionManager">
  | 			<ref bean="${dol.application.txManager}" />
  | 		</property>
  | 		<property name="transactionAttributes">
  | 			<props>
  | 				<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
  | 			</props>
  | 		</property>
  | 	</bean>
  | 
  | 	<bean id="echoService" parent="abstractService">
  | 		<property name="target">
  | 			<ref bean="_echoService" />
  | 		</property>
  | 		<property name="proxyInterfaces">
  | 			<list>
  | 				<value>
  | 					com.gda.dol.comp.jbpm.EchoService
  | 				</value>
  | 			</list>
  | 		</property>
  | 	</bean>
  | 	
  | 	<bean id="initialFillService" parent="abstractService">
  | 		<property name="target">
  | 			<ref bean="_initialFillService" />
  | 		</property>
  | 		<property name="proxyInterfaces">
  | 			<list>
  | 				<value>
  | 					com.gda.dol.comp.jbpm.InitialFillService
  | 				</value>
  | 			</list>
  | 		</property>
  | 	</bean>
  | 	
  | 	<bean id="deployService" parent="abstractService">
  | 		<property name="target">
  | 			<ref bean="_deployService" />
  | 		</property>
  | 		<property name="proxyInterfaces">
  | 			<list>
  | 				<value>
  | 					com.gda.dol.comp.jbpm.DeployService
  | 				</value>
  | 			</list>
  | 		</property>
  | 	</bean>
  | </beans>
  | 

JBPM Configuration

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <jbpm-configuration xmlns="http://jbpm.org/xsd/cfg">
  | 
  |   <process-engine-context>
  | 
  |     <repository-service />
  |     <repository-cache />
  |     <execution-service />
  |     <history-service />
  |     <management-service />
  |     <task-service />
  |     <identity-service />
  |     	
  | 	<command-service name="txRequiredCommandService">
  |       <retry-interceptor />
  |       <environment-interceptor transactionManager="dol.hbTxManager"/>
  |       <spring-transaction-interceptor />
  |     </command-service>
  |       
  |     <deployer-manager>
  |       <jpdl-deployer />
  |     </deployer-manager>
  |     
  |     <object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator">
  |       <field name="commandService"><ref object="txRequiredCommandService" /></field>
  |     </object>
  | 
  |     <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager" />
  |     
  |     <script-manager default-expression-language="juel"
  |                     default-script-language="juel"
  |                     read-contexts="execution, environment,
  |                                    process-engine, spring"
  |                     write-context="">
  |         <script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
  |     </script-manager>
  | 
  |     <authentication />
  | 
  |     <job-executor auto-start="false" />
  | 
  |     <id-generator />
  |     <types resource="jbpm.variable.types.xml" />
  | 
  |     <business-calendar>
  |       <monday    hours="9:00-12:00 and 12:30-17:00"/>
  |       <tuesday   hours="9:00-12:00 and 12:30-17:00"/>
  |       <wednesday hours="9:00-12:00 and 12:30-17:00"/>
  |       <thursday  hours="9:00-12:00 and 12:30-17:00"/>
  |       <friday    hours="9:00-12:00 and 12:30-17:00"/>
  |       <holiday period="01/07/2008 - 31/08/2008"/>
  |     </business-calendar>
  | 
  |   </process-engine-context>
  | 
  |   <transaction-context>
  |     <repository-session />
  |     <db-session />
  |     <pvm-db-session />
  |     <job-db-session />
  |     <task-db-session />
  |     <message-session />
  |     <timer-session />
  |     <history-session />
  |     <!--<transaction />
  |     <hibernate-session />-->
  |     <hibernate-session current="true"/>
  |     <identity-session />
  |   </transaction-context>
  | </jbpm-configuration>
  | 

hibernate.cfg.xml

  | <?xml version="1.0" encoding="utf-8"?>
  | <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  |                                          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  | <hibernate-configuration>
  |  <!--<session-factory name="jbpm4-spring">-->
  |  <session-factory>
  |   <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
  |  </session-factory>
  | </hibernate-configuration>

InitialFillServiceImpl class 

  | public class InitialFillServiceImpl implements InitialFillService{
  | 		private RepositoryService repositoryService;
  | 		
  | 		public void testGanda(){
  | 			/*NewDeployment newDeployment = repositoryService.createDeployment();
  | 		    newDeployment.setName("TestSpring");
  | 		    newDeployment.setTimestamp(new Date().getTime());
  | 		    newDeployment.addResourceFromClasspath("com/gda/dol/comp/jbpm/impl/process.jpdl.xml");
  | 		    newDeployment.deploy();*/
  | 			List<Deployment> deploymentIdList = repositoryService.createDeploymentQuery().list();
  | 		    for(Deployment deployment : deploymentIdList){
  | 		    	int i = 1;
  | 		    	System.out.println("Retrieve element : "+i);
  | 		    	System.out.println("Deployment ID : "+deployment.getId());
  | 		    	System.out.println("Deployment Name : "+deployment.getName());
  | 		    	i++;
  | 		    }
  | 		}
  | 
  | 		public void setRepositoryService(RepositoryService repositoryService) {
  | 			this.repositoryService = repositoryService;
  | 		}
  | 		
  | }
  | 

process.jpdl.xml

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process name="EndState" xmlns="http://jbpm.org/4.2/jpdl">
  | 
  |   <start g="16,96,48,48">
  |      <transition to="get return code"/>
  |   </start>
  | 
  |   <state name="get return code" g="96,94,110,52">
  |     <transition name="200" to="ok" g="150,63:-36,11"/>
  |     <transition name="400" to="bad request" g=":-16,-27"/>
  |     <transition name="500" to="internal server error" g="150,177:-33,-32"/>
  |   </state>
  | 
  |   <end name="ok" state="completed" g="239,40,48,48"/>
  |   <end-cancel name="bad request" g="239,97,48,48"/>
  |   <end-error name="internal server error" g="240,154,48,48"/>
  | 
  | </process>

Same Exception that i have posted earlier.

Yup, I noticed if i make it current="true" for <spring-transaction-interceptor />, I will get another exception something like Mandatory Exception. Thatys why I enable it, and can run with it. 

I already double check the table schema, and i have that JBPM4_EXECUTION table because previously i run the script in install directory. 

The Weird things is located in this 3 lines in jbpm.cfg.xml
    <!--
    <hibernate-session />-->
    <hibernate-session current="true"/>

if I make current="false" in hibernate-session , I can run my program without any error, I can deploy as well as retrieve information's from JBPM Tables, However the problem ONLY occurs when i set current="true" in hibernate-session which is recommended by everyone including mandatory by JBPM Documentation. I am not sure why this happened ? 

any clue ?

Thanks in advance,

Best Regards,
Suganda



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

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



More information about the jboss-user mailing list