[rules-users] Persistence in Drools 6

Charles Moulliard ch007m at gmail.com
Fri May 23 02:23:41 EDT 2014


Hi Jean Philippe,

I have recently created a project to persist bpmn process using Spring &
JPA / Hibernate. This config is working using kie-spring

https://github.com/cmoulliard/droolsjbpm-osgi-examples/blob/master/spring-jbpm-persistence/src/main/resources/META-INF/spring/context.xml

Regards,

Charles


On Thu, May 22, 2014 at 8:00 PM, Steinmetz, Jean-Philippe <
jpsteinmetz at theworkshop.us.com> wrote:

> Hello All,
>
> I am trying to set up persistence for a standalone Drools (6.0.1.Final)
> application that uses JPA, Hibernate (4.3.5.Final) and Bitronix (2.1.4) via
> Spring (4.0.3.RELEASE).
>
> On the persistence side everything appears to be set up correctly. For my
> Drools session I use a KieContainer to create a new stateful session using
> an environment set up with the EntityManagerFactory and TransactionManager
> set. The problem that I am experiencing however is that nothing is getting
> persisted to the database. I have poured over the docs at least two dozen
> times and searched the net for anything related.
>
> Here is what my Spring context file looks like when creating the Drools
> session...
>
>     <bean id="kReleaseId" factory-bean="kieServices"
> factory-method="newReleaseId">
>         <constructor-arg index="0" value="groupId"/>
>         <constructor-arg index="1" value="artifactId"/>
>         <constructor-arg index="2" value="1.0-SNAPSHOT"/>
>     </bean>
>     <bean id="kContainer" factory-bean="kieServices"
> factory-method="newKieContainer">
>         <constructor-arg index="0" ref="kReleaseId"/>
>     </bean>
>     <bean id="kEnvironment" factory-bean="kieServices"
> factory-method="newEnvironment">
>         <constructor-arg index="0">
>             <map>
>                 <entry>
>                     <key><util:constant
> static-field="org.kie.api.runtime.EnvironmentName.ENTITY_MANAGER_FACTORY"/></key>
>                     <ref bean="entityManagerFactory"/>
>                 </entry>
>                 <entry>
>                     <key><util:constant
> static-field="org.kie.api.runtime.EnvironmentName.TRANSACTION_MANAGER"/></key>
>                     <ref bean="jtaTransactionManager"/>
>                 </entry>
>             </map>
>         </constructor-arg>
>     </bean>
>     <bean id="kSession" factory-bean="kContainer"
> factory-method="newKieSession">
>         <constructor-arg index="0" ref="kEnvironment"/>
>      </bean>
>
> Since the application is standalone I execute fireAllRules on the session
> at a regular interval (I use this instead of fireUntilHalt as it
> dramatically reduces the CPU load on the machine). With each call I wrap it
> in a transaction. Thus, the code looks as follows:
>
>     while (!Thread.currentThread().isInterrupted()) {
>         // Start a new transaction
>         UserTransaction utx = utx = (UserTransaction)new
> InitialContext().lookup("java:comp/UserTransaction");
>        utx.begin();
>
>         // Tick the session
>         kSession.fireAllRules();
>
>         // Close the transaction
>         utx.commit();
>
>             // Sleep so that other applications can use the CPU
>             try {
>                 Thread.sleep(1);
>             } catch (InterruptedException e) {
>                 // When our sleep is interrupted it's because the executor
> wants us to shut down.
>                 Thread.currentThread().interrupt();
>             }
>         }
>
> When I inspect kSession in the debugger I can see the environment is
> properly set. I have tried digging down into the execute a bit but can't
> find any point at which the TransactionManager or EntityManagerFactory are
> used. As I said above I know Hibernate is set up correctly as well as
> Bitronix. I can see them working just fine in the logs and they definitely
> are hitting the database (and create tables for sessioninfo and
> workingmemory as they should). I just get nothing actually in the database
> stored, ever.
>
> Any help here is appreciated. It seems like it should work but it just
> doesn't.
>
> Thanks in advance,
>
> Jean-Philippe Steinmetz
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
Charles Moulliard
Apache Committer / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140523/f32c2ab7/attachment.html 


More information about the rules-users mailing list