[jboss-user] [JBoss jBPM] - JBPMContext.close cause Exception

NiB do-not-reply at jboss.com
Sat Jan 20 07:23:06 EST 2007


Hi,
I am using jBPM 3.2 Alpha 2 and trying to start the a process from an ejb3 messagedrivenbean by:


  | 	private void kickOffProcess(String processname, String [] attrnames, java.io.Serializable[] attrvalues) {
  | 		org.jbpm.JbpmConfiguration jbpmConfiguration = org.jbpm.JbpmConfiguration.parseXmlString(
  | 	    	      "<jbpm-configuration>" +
  | 	    	      
  | 	    	      // A jbpm-context mechanism separates the jbpm core 
  | 	    	      // engine from the services that jbpm uses from 
  | 	    	      // the environment.  
  | 	    	      "<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' />"+
  | 	    	    "</jbpm-context>"+
  | 
  | 	    	    // configuration property used by persistence service impl org.jbpm.persistence.db.DbPersistenceServiceFactory 
  | 	    	    "<string name='resource.hibernate.cfg.xml' value='config/hibernate.cfg.xml' />"+
  | 
  | 	    	    // <!-- configuration resource files pointing to default configuration files in jbpm-{version}.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' />"+
  | 	    	    
  | 	    	    "<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>"+
  | 	    	      "</jbpm-configuration>"
  | 	    	    );		
  | 	    org.jbpm.JbpmContext jbpmcontext =jbpmConfiguration.createJbpmContext();
  | 	
  | 		try {
  | 	   		
  | 		org.jbpm.graph.exe.ProcessInstance pi = jbpmcontext.newProcessInstance(processname); 
  | 		
  | 		for (int i=0;i<attrnames.length;i++)			pi.getContextInstance().setVariable(attrnames,attrvalues);	
  | 
  | 		pi.getRootToken().signal();
  | 
  | 		jbpmcontext.save(pi);
  | 		} catch (Exception ex) { 
  | 			ex.printStackTrace();
  | 		} finally {
  |                        // EXCEPTION HERE
  | 			jbpmcontext.close(); 
  | 		}
  | 	
  | 		
  | 	}
  | 
  | 

I get an exception when I am calling jbpmcontext.close():


  | 13:09:33,078 DEBUG [Services] executing default save operations
  | 13:09:33,078 DEBUG [HibernateSaveOperation] saving process instance
  | 13:09:33,093 DEBUG [SaveLogsOperation] flushing logs to logging service.
  | 13:09:33,109 DEBUG [CascadeSaveOperation] cascading save of 'org.jbpm.graph.exe.ProcessInstance at 4d2262'
  | 13:09:33,109 DEBUG [JbpmContext] closing JbpmContext
  | 13:09:33,109 DEBUG [Services] closing service 'persistence': org.jbpm.persistence.db.DbPersistenceService at f9a36a
  | 13:09:33,109 DEBUG [DbPersistenceService] committing hibernate transaction
  | 13:09:33,140 ERROR [JDBCTransaction] JDBC commit failed
  | java.sql.SQLException: You cannot commit during a managed transaction!
  | 	at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcCommit(BaseWrapperManagedConnection.java:543)
  | 	at org.jboss.resource.adapter.jdbc.WrappedConnection.commit(WrappedConnection.java:334)
  | 	at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
  | 	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
  | 	at org.jbpm.persistence.db.DbPersistenceService.endTransaction(DbPersistenceService.java:233)
  | 	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:170)
  | 	at org.jbpm.svc.Services.close(Services.java:222)
  | 	at org.jbpm.JbpmContext.close(JbpmContext.java:139)
  | [..]
  | 

The task nodes in the process appears in the webapp, but when I use
a transition button they won't follow the transition. Can anyone help me?

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

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



More information about the jboss-user mailing list