<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Re: jBPM5 Restarts and Asynchronous Work Items
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/melc">Chris Melas</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/605996#605996">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hello,</p><p>I'm not sure if that helps but I'm actually using jbpm in a similar manner and for the following issues i've taken the following corresponding actions,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>i1.&#160; when starting a custom work item (aka service task) that takes long the knowledgesession is not responsive as it is waiting for the process to finish</p><p>a1. run the custom work item asynchronously in a thread and when it completes call manager.completeWorkItem(workItem.getId(), results); within the executeWorkItem(WorkItem workItem, WorkItemManager manager) method of my custom work item handler</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>i2.&#160; when running a custom work item that takes long the system might go down, so when the system restarts the tasks are not finished.</p><p>a2. the custom work items are actually persisted in the database by the jbpm, so if the system goes down before they've completed i've put some extra code to restart the work items present in the database as bootstrap code on the initialization of the system i.e. </p><p>for (Object resultObject : results) { </p><p>//where results are the rows from selecting the workitems from the database having name equal to my custom work items</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WorkItemInfo workItemInfo = (WorkItemInfo) resultObject;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WorkItem workItem = workItemInfo.getWorkItem(ksession.getEnvironment());</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; MyCustomWorkItemHandler myCustomWorkItemHandler = new MyCustomWorkItemHandler ();</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; myCustomWorkItemHandler .executeWorkItem(workItem, ksession.getWorkItemManager());</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>i3. multiple processes with the need to share the knowledge session</p><p>a3. create many processes even on different threads from the same knowledgesession</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>i4. multiple processes with no need to share the knowledge session</p><p>a4. create multiple knowledge session, whenever required, with one or more processes from each sessions</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>To be honest i haven't tested very much issues 3 and 4 but they seem to work.</p><p>I would greatly appreciate any ideas and comments, thanks</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/605996#605996">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>