<!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;">
    How to provide my own transaction to jBPM?
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/helmers">Guido Helmers</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/537177#537177">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 Huisheng,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>thanks for your reply.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Integration with Spring is not really an option for us; our DI standard is Guice.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Option 2. doesn't sound optimal either because it introduces an ugly dependency on jBPM; ideally we have dependencies on jBPM services but not on the internals (I think the Command is not really part of the jBPM API?). Apart from that we would end up using different transaction mechanisms for service calls that happen to have a dependency on jBPM (they're wrapped in a Command), and services without jBPM dependency (those don't need to be executed in a Command).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I was hoping for a cleaner solution...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span>Anyway, as for the other issue: </span><a class="jive-link-external-small" href="https://community.jboss.org/message/537176" target="_blank">https://community.jboss.org/message/537176</a></p><p>Although I now have got one hibernate SessionFactory shared by my app and jBPM (see ...; not sure if this is a proper fix), things still seem to be running in different transactions. With the standard jbpm.tx.hibernate.cfg.xml (which configures a standard-transaction-interceptor for every command), when I roll back my top-level transaction, the jBPM stuff (executed inside the transaction created by the StandardTransactionInterceptor) is not rolled back.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>So what I did was create my own tx.hibernate.cfg.xml, and remove the standard-transaction-interceptors from it. That doesn't really work either (now suddenly calls to "repositoryService.createDeployment().addResourceFromClasspath("myProcess.jpdl.xml").deploy()" seem to not properly insert process definitions in the database; it does insert into JBPM4_DEPLOYMENT, but 3 out of the 4 records from JBPM4_DEPLOYPROP are missing).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Before I dive into the deep, can someone let me know if this is the way to go? What's the way to have jBPM use my own transactions? Should it be possible to remove the standard-transaction-interceptor from the interceptor stack? Or is it strictly forbidden; if so, why?</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/537177#537177">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>