[jboss-user] [jBPM] - How to resume a process instance from a loaded session in jbpm 5.0
Feki Ahmed
do-not-reply at jboss.com
Fri Feb 15 11:00:49 EST 2013
Feki Ahmed [https://community.jboss.org/people/bardelman] created the discussion
"How to resume a process instance from a loaded session in jbpm 5.0"
To view the discussion, visit: https://community.jboss.org/message/797952#797952
--------------------------------------------------------------
Hi,
i ve tried to load a session from the database with the loadStatefulKnowledgeSession, and then i tried to active a process Instance from that loaded session so i tried with ksession.startProcess(String processId) but it started a new process instance and not the old persisted one.
now i know that startProcess isn't the appropriate method to do that but i still don't know what's the right way ...
here is my code , it s a java class:
public static void main(String[] args) {
ksession = ReloadSession(SessionId, taskname);
UserTransaction ut = null;
try {
ut = (UserTransaction) new InitialContext().lookup( "java:comp/UserTransaction" );
} catch (NamingException e1) {
e1.printStackTrace();
}
try {
ut.begin();
} catch (NotSupportedException e) {
e.printStackTrace();
} catch (SystemException e) {
e.printStackTrace();
}
processInstance = ksession.startProcess(taskname);
ksession.fireAllRules();
try {
ut.commit();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (HeuristicMixedException e) {
e.printStackTrace();
} catch (HeuristicRollbackException e) {
e.printStackTrace();
} catch (RollbackException e) {
e.printStackTrace();
} catch (SystemException e) {
e.printStackTrace();
}
}
private StatefulKnowledgeSession ReloadSession(String tasktoreloadidSession,String tasktoreloadname){
StatefulKnowledgeSession ksession =null;
try {
UserTransaction ut = (UserTransaction) new InitialContext().lookup( "java:comp/UserTransaction" );
ut.begin();
ksession = JbpmAPIUtil.loadStatefulKnowledgeSession(Integer.parseInt(tasktoreloadidSession), tasktoreloadname+".bpmn");
/*Create the knowledge base */
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "testlog", 1000);
CommandBasedWSHumanTaskHandler taskHandler = new CommandBasedWSHumanTaskHandler(ksession);
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", taskHandler);
taskHandler.connect();
ut.commit();
logger.close();
} catch (Throwable t) {
log.error(t.getMessage(), t.getCause());
throw new RuntimeException("error while reloading session",t);
}
return ksession;
}
public static StatefulKnowledgeSession loadStatefulKnowledgeSession(int idsession,String processName) throws Exception {
/*
* Create the knowledgebase using the required bpmn and drl files
*/
KnowledgeBase kbase = readKnowledgeBase(processName);
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.jbpm.persistence.jpa" );
Environment env = KnowledgeBaseFactory.newEnvironment();
env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );
env.set( EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager() );
env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
Properties properties = new Properties();
properties.put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory");
properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory");
KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);
return JPAKnowledgeService.loadStatefulKnowledgeSession(idsession,kbase, config, env);
}
unfortunatelly, the user guide do not talk about this enough. i need your help please !!
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/797952#797952]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20130215/ba2fc8b8/attachment-0001.html
More information about the jboss-user
mailing list