[jboss-user] [jBPM] - Re: Work Item not persisted

Swaminathan Bhaskar do-not-reply at jboss.com
Fri Sep 21 12:12:46 EDT 2012


Swaminathan Bhaskar [https://community.jboss.org/people/swaminathan.bhaskar] created the discussion

"Re: Work Item not persisted"

To view the discussion, visit: https://community.jboss.org/message/760862#760862

--------------------------------------------------------------
Finally works ... Made some code adjustments to launch a thread from the CustomWorkItemHandler and pass the KnowledgeSession as follows:

import org.drools.runtime.process.*;

public class CustomWorkItemTask implements Runnable {
    private WorkItem item;
    private WorkItemManager manager;

    public CustomWorkItemTask(WorkItem item, WorkItemManager manager) {
        this.item = item;
        this.manager = manager;
    }

    @Override
    public void run() {
        System.out.printf("\n-----> Waiting in custom work item %s <ID:%d> for 60 secs\n", item.getName(), item.getId());

        // Artificial wait
        try {
            Thread.sleep(60000);
        }
        catch (Exception ex) {
        }

        System.out.printf("\n-----> Completing custom work item %s <ID:%d>\n", item.getName(), item.getId());

           manager.completeWorkItem(item.getId(), null);
    }
}

// -------------------------------------------------------------


import org.drools.runtime.*;
import org.drools.runtime.process.*;

public class CustomWorkItemHandler implements WorkItemHandler {
    private KnowledgeRuntime ksession;

    public CustomWorkItemHandler(KnowledgeRuntime session) {
        this.ksession = session;
    }

    @Override
    public void executeWorkItem(WorkItem item, WorkItemManager manager) {
*        // NOTE: Cannot use the WorkItemManager passed into the method - It will throw the following exception:*
*        //       javax.persistence.TransactionRequiredException: No active JTA transaction on joinTransaction call*

        CustomWorkItemTask task = new CustomWorkItemTask(item, ksession.getWorkItemManager());

        new Thread(task).start();
    }

    @Override
    public void abortWorkItem(WorkItem item, WorkItemManager manager) {
    }
}

Hope this is helpful for someone
--------------------------------------------------------------

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

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/20120921/1c9fb01c/attachment.html 


More information about the jboss-user mailing list