<!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">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;">
Questions about transactions in jBPM 4.3
</h3>
<span style="margin-bottom: 10px;">
reply from <a href="http://community.jboss.org/people/rebody">HuiSheng Xu</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/547952#547952">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hi Rachel,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code">What do you mean when you say that "the JobExecutor will start  individual transactions to handle these jobs"?
Does a separate  transaction mean that the information will be stored in a separate  location?</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>JobExecutor may have more than a thread to handle the waiting jobs.  By default, each of thread could handle one job.  Each of them will execute in a separate transaction.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The information of jobs are stored in the JBPM4_JOB table.  When one of them was picked by jobExecutor,  JobExecutor will lock it and try to execute it in a transaction.  If Jobexecutor can successly complete this job, it will delete the related job information from database, and try to pick another job.  If these were some exceptions occurs, JobExecutor will store the exception information and try to execute the job again. </p><blockquote class="jive-quote"><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Also, are you saying that every activity with an async continuation is  executed in its own thread?  If so, is there any chance of activities  being executed out of order?  In other words, in a pd: A-B-C (all  async), could B start before A finishes?  I've tested this and the  answer seems to be 'no,' but I just want to be sure that this could  never happen.</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Yes.  If you use fork to create multiply path of async executions,  then you cannot tell whick execution will be executed first,  which one will be executed second.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>But as you said that your process definition is sequence,  there is no parallal paths.  So when process arrivalled activity A,  it will create a async job and return.  At that moment, there was only one job for activity A.  Until Jobexecutor finished this job, the process will not arrivalled other activities, so there will be no more jobs be created.  When jobExecutor finished the job of activity A,  then process will continue, and arrivalled activity B then return.  The job of activity B will be created and waited jobExecutor to execute.  So I needn't worry about the order of sequence process.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Hope this will be some help. <span> :) </span></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/547952#547952">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>