<!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="https://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;">
    Working with Multiple Transaction Managers
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="https://community.jboss.org/people/martin1yness">Martin Lyness</a> in <i>jBPM</i> - <a href="https://community.jboss.org/message/756290#756290">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>I've been learning jBPM and working with its Spring integration. This has been a fun experience and pretty strait forward until I ran into the multiple transaction managers issue. It seems known that you can't really share transaction managers with multiple Entity Management Factories in Spring, but the duplicate of everyting (i.e. DataSources, TransactionManagers, and Entity Managment Factories) have been showing a vital limitation.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>What I'm observing is an inadvertant closing of transaction manager B when a method wrapped with a transaction manager A proxy delagates to jBPM classes which are configured to use transaction manager B. You get an exception like 'EntityManager is closed, cannot commit transaction'.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>What I've tried:</p><p>1. Defining a completely different datasource and transaction manager for jBPM's knowledge session than what my other persistence units are using.</p><p>2. Using the Bitronix transaction manager for the knowledge session while using spring's JPA manager for my objects.</p><p>3. Using a transaction qualifier to wrap top level method with my transaction manager and wrapping jBPM invoker classes with the workflow transaction manager.</p><p>4. Not allowing any method that might call a workflow action to be Transactional (this is the only one that works)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>It is inconvienent to have my persistence code work, then have a workflow failure and not be able to rollback my last database interaction. I'm wondering if there is anyway to gain this support? I don't really understand the mechanism that is causing the Spring Transactional Apsect proxy to close the jBPM session, so if anyone has any insights into why this is happening that maybe helpful as well.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I've got a complete project I can share demonstrating the issue, it is 40mb with dependecies and 10kb of just source. If you look at the source, the problem transaction is on the 'SynchronousTask' class, comment this out and it will work.</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/756290#756290">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="https://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>