vikas jadon [http://community.jboss.org/people/vikasjadon] created the 
discussion

"Is SessionID & ProcessID required to complete WorkItem ?"

To view the discussion, visit: http://community.jboss.org/message/602740#602740

--------------------------------------------------------------
I have question about  ProcessID and SessionID and there usage. I will continue 
to ask after explaining the confusion areas. This is with respect to 
webapplication, used by multiple users and deployed in clustered env.


EntityManagerFactory emf =  Persistence.createEntityManagerFactory( 
"org.drools.persistence.jpa" );
   env = KnowledgeBaseFactory.newEnvironment();
   env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );

// create a new knowledge session that uses JPA to store the runtime state. Is 
this session for the server or I can create per user ? What is best?
// i understand creation session per user will be costly

ksession =   JPAKnowledgeService.newStatefulKnowledgeSession( kBase, null, env 
);
sessionID = ksession.getId();  // i can persist this,  
ksession.getWorkItemManager().registerWorkItemHandler("handle",my_handler_obj);
ksession.getWorkItemManager().registerWorkItemHandler("handle2",my_handler2_obj);

//starting the process, I think this is for each user
pi1 =(WorkflowProcessInstance) 
ksession.startProcess("com.sample.bpmn.wfPOC",parameterMap);
// i can get process id of the process started, so i am in the first workItem 
now.
processID = pi1.getId(); // i can persist this too.
// i have a method in my handler for getting the workItemId. i persisted this 
workItemId
workItemId = my_handler_obj.getWorkItemId();

At some time later I would like to complete the workItem, understanding the 
server is restarted 

// I can use 
JPAKnowledgeService.loadStatefulKnowledgeSession(persisted_sessionID, kBase, 
null, env); but following also works

ksession =   JPAKnowledgeService.newStatefulKnowledgeSession( kBase, null, env 
);
sessionID = ksession.getId();  // it is different session
ksession.getWorkItemManager().registerWorkItemHandler("handle",my_handler_obj);
ksession.getWorkItemManager().registerWorkItemHandler("handle2",my_handler2_obj);

// I can complete workItem which was left earlier,

ksession.getWorkItemManager().completeWorkItem(workItemId, null);

*My questions:*
** 
1. What is the use of sessionID, since i can complete workItem without 
sessionID? is if useful in this scenerio ? (I can load the session)
2. What is the use of processID since i can complete workItem without 
processID?? is it useful in this scenerio ? (i can start the process with 
process id)
3. Is only workItemID sufficient to complete a workItem in realtime? or am i 
missing something
4. How the knowledge session will work in case of clustered env across the 
JVM's using the load balancer.

Any help is highly appreciated.

thanks
Vikas
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/602740#602740]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to