<br><br><div class="gmail_quote">On Mon, Nov 1, 2010 at 7:06 PM, Mark Proctor <span dir="ltr"><<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff"><div><div></div><div class="h5">
On 01/11/2010 19:05, tizo wrote:
<blockquote type="cite"><br>
<br>
<div class="gmail_quote">On Mon, Nov 1, 2010 at 4:21 PM, Mark
Proctor <span dir="ltr"><<a href="mailto:mproctor@codehaus.org" target="_blank">mproctor@codehaus.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff">
<div> On 01/11/2010 15:31, tizo wrote:
<blockquote type="cite">
<div class="gmail_quote">
<div>
<div>
<div class="gmail_quote">On Wed, Oct 27, 2010 at
5:21 PM, tizo <span dir="ltr"><<a href="mailto:tizone@gmail.com" target="_blank">tizone@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> Hi
there,<br>
<br>
I have seen in chapter 6 of the documentation,
that Drools Flow can be configured to use JPA
and transactions to persist the running
states. However, I am in a EJB where I obtain
entity managers with a @PersistenceContext
annotation, and the transactions are managed
by the container, whereas in the example an
EntityManagerFactory and a TransactionManager
are used. <br>
<br>
Could I configure Flow in a direct way to be
used by my EJB?<br>
<br>
Thanks very much,<br>
<font color="#888888"><br>
tizo<br>
<br>
</font></blockquote>
</div>
<br>
</div>
</div>
Ok, looking at the code, I guess that Drools flow is
not ready to work with standards EJBs. The reasons are
the following:<br>
<br>
* The JPA annotations are not standard JPA
annotations, but hibernate ones. For example
"CollectionOfElements" in ProcessInstanceInfo class.<br>
</div>
</blockquote>
</div>
That was the one element we couldn't find a replacement for
in JPA1, JPA2 fixes this, but we haven't updated to JPA2
yet. I don't believe we use any other hibernate specific
annotations.
<div><br>
<blockquote type="cite">
<div class="gmail_quote"> * Transactions are managed by
Drools, as opposed to some EJBs where transactions are
managed by the container.<br>
</div>
</blockquote>
</div>
You can use both JTA transactions and local entity
transactions. So transactions can be drools maintained or
container/external maintained.<br>
<blockquote type="cite">
<div>
<div class="gmail_quote"><br>
As for that, I will probably modify the codes, so Flow
could be used in our EJBs. I would like to know if
someone could guide me on what should I modify. <br>
<br>
I will post the modifications in case they are of
interest to someone.<br>
<br>
Thanks very much,<br>
<font color="#888888"><br>
tizo<br>
<br>
</font></div>
</div>
</blockquote>
</div>
</blockquote>
<div>Mark,<br>
<br>
Thanks for your response. Could you tell me how can I use
Drools with my container managed transactions, or where can I
read how to do that?. I think that the example given in the
documentation (Drools Flow, 6.1.4 - Transactions) does not
apply to this case, and I can't figure out how to do it.<br>
</div>
</div>
</blockquote></div></div>
Shows configuring a JTA transaction here:<br>
<a href="http://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/javadocs/stable/drools-api/org/drools/persistence/jpa/JPAKnowledgeService.html" target="_blank">http://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/javadocs/stable/drools-api/org/drools/persistence/jpa/JPAKnowledgeService.html</a><br>
<br></div></blockquote></div><br>Ok, that works, but BMT (bean managed transactions) is used, instead of CMT (container managed transactions).<br><br>In any way, that is not a big deal at this moment, because I am stuck trying to imagine how a stateless session bean could start a flow process, persist its state when a human task is reached (using WS-HumanTask or not), and be reloaded at another time, when the human task is really done.<br>