<!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;">
    How to start/spawn 'n' subprocesses for 'n' users using JBPM-4.3.
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/matrixpooh">Al Nadein</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/553170#553170">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 Felix,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160;&#160; A unique constrain for ID_ on JBMP4_EXECUTION is there to ensure that there don't exist more than 1 process with the same id. Since the only client of this database is the pvm (jbpm process virtual machine) and it's designed having this restriction in mind, there is really no harm to drop the constrain. Being a perfectionist, I still think there should be a code fix, rather than relaxation of the data model constrains. </p><p>&#160;&#160;&#160;&#160; The reason of the error is really a bug. A process is created, then a fork is hit, a child process is created. Both operations are done in memory, nothing is being recorded in a database just yet. Then either a wait state or end of a process is hit. At this moment, a system would try to persist the records: there will be 2 records created - one for the main process, another for the child process. 2 insert statements would be issued, both of them will have "ID_" set to null just because at that moment neither of ID_ values has been calculated yet. This is done with the assumption that there will be a calculation of ID_ values and the updates will be issued immediately in the same transaction. But in this setup, updates have no chance to be issued since the transaction fails to insert the second record due to a duplicate ID_ value, i.e. null. The question is why not to calculate ID_ value upfront and make a single insert instead of insert and then update.</p><p>&#160;&#160;&#160;&#160; I did work with HuieSheng to identify and resolve the bug, but then was pulled into some other things and didn't have a chance to follow up on her patch. In short, my project is in production with my patch. Will try to fetch it for you shortly.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Also, wanted to say huge thanks for your process sample: creating an arbitrary number of subprocesses is something I've been trying to do for a while.</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/553170#553170">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>