<!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;">
Drools / jBPM with EJB3 persistence and transactions
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/marnold">M Arnold</a> in <i>jBPM</i> - <a href="https://community.jboss.org/message/647812#647812">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,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I'm trying to use Drools and jBPM using EJB 3.0 and container managed transactions on JBoss AS 5.1.  My goal is to ensure that all jBPM work is performed in the container managed transaction.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I've read the applicable documentation <a class="jive-link-external-small" href="http://docs.jboss.org/jbpm/v5.2/userguide/ch07.html">here</a>, but I'm still unsure about how to achieve this.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>In my SLSB I have:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><code></code></p><p><code>          @PersistenceUnit(unitName = "org.jbpm.persistence.jpa")</code></p><p><code>          protected EntityManagerFactory emf;</code></p><p><code><br/></code></p><p><code>          @PersistenceContext</code></p><p><code>          protected EntityManager em; </code></p><p><code><br/></code></p><p><code>          @Resource(mappedName = "java:/TransactionManager")</code></p><p><code>          protected TransactionManager tm;</code></p><p><code><br/></code></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Then in a @PostConstruct I have:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><code><p>                     env = KnowledgeBaseFactory.newEnvironment();</p><p>                     env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);</p><p>                     env.set(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, em);</p><p>                     env.set(EnvironmentName.TRANSACTION_MANAGER, tm);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></code></p><p>But when I try:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><code></code></p><p><code>                     ksession = JPAKnowledgeService.newStatefulKnowledgeSession(getKnowledgeBase(), null, env);</code></p><p><code><br/></code></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I get the exception:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><code></code></p><p><code>Caused by: java.lang.ClassCastException: com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate cannot be cast to org.drools.persistence.TransactionManager</code></p><p><code>        at org.drools.persistence.SingleSessionCommandService.initTransactionManager(SingleSessionCommandService.java:265)</code></p><p><code>        at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:115)</code></p><p><code>        ... 54 more</code></p><p><code><br/></code></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I checked the code, and I have to say I agree. ;-)  I don't get it.  I am expected to create my own class which wraps a real javax.transaction.TransactionManager and implements org.drools.persistence.TransactionManager?  What is the correct way to do this?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Thanks in advance for any help, and my apologies if I missed something obvious...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>in a stateless session bena</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/647812#647812">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>