Its okay...
The data is persisted in the Log tables in the Oracle database.
But, when I runs the following code without loggers:-
JPAWorkingMemoryDbLogger logger = new JPAWorkingMemoryDbLogger(ksession);
WSHumanTaskHandler objWSHuman= new WSHumanTaskHandler();
objWSHuman.setConnection("127.0.0.1", 9123);
ksession.getWorkItemManager().registerWorkItemHandler("Human Task",objWSHuman);
// start a new process instance
Map<String, Object> params = new HashMap<String, Object>();
params.put("initiator", objTargetBean.getEmpName());
params.put("reason", "Yearly performance evaluation");
ProcessInstance prs= ksession.startProcess("targetSettingFlow", params);
System.out.println("okay Process Start is done...");
Thread.sleep(1000);
logger.dispose();
TaskClient taskClient = new TaskClient(new MinaTaskClientConnector("MinaConnector",
new MinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
taskClient.connect("127.0.0.1", 9123);
BlockingTaskSummaryResponseHandler taskSummaryHandler = new BlockingTaskSummaryResponseHandler();
taskClient.getTasksAssignedAsPotentialOwner(objTargetBean.getEmpName(), "en-UK", taskSummaryHandler);
TaskSummary task1 = taskSummaryHandler.getResults().get(0);
BlockingTaskOperationResponseHandler taskOperationHandler = new BlockingTaskOperationResponseHandler();
taskOperationHandler = new BlockingTaskOperationResponseHandler();
taskClient.start(task1.getId(), objTargetBean.getEmpName(), taskOperationHandler);
taskOperationHandler = new BlockingTaskOperationResponseHandler();
taskClient.complete(task1.getId(), objTargetBean.getEmpName(), null, taskOperationHandler);
then after completing the first human task, it shows the next human task as "Reserved", as a usual behavior or in other words after completing first human task it move to the next one..
but when I added following two lines:-
JPAWorkingMemoryDbLogger logger = new JPAWorkingMemoryDbLogger(ksession);
and logger.dispose();
after that, when I complete my first human task, then it not shows the "next one" the un-usual behavior or in other words it just completed the "reserved" one and forgot to move to next human task... :(
Is the reason behind is the Log tables not properly persisted or I have to place the logger.dispose(); to somewhere else.
Note: In the above code, I start the process and complete the first "human task node" in one hit...
Regards.
Rajan Bansal