Thanks for your answer!
I create a session, with the same sessionId
private StatefulKnowledgeSession createKSession(int sessionId, String processPath) {
// Create the kbuilder
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// Add simpleProcess.bpmn to kbuilder
kbuilder.add(ResourceFactory.newFileResource(processPath), ResourceType.BPMN2);
System.out.println("Compiling resources");
// Check for errors
if (kbuilder.hasErrors()) {
if (kbuilder.getErrors().size() > 0) {
for (KnowledgeBuilderError error : kbuilder.getErrors()) {
System.out.println("Error building kbase: " + error.getMessage());
}
}
throw new RuntimeException("Error building kbase!");
}
// Create a knowledge base and add the generated package
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
// return a new statefull session
return kbase.newStatefulKnowledgeSession();
}
and then I use this session to complete my workItem.
I never dispose my session.