Maybe I'm wrong and I cannot use this configuration because in some case fail
2014-06-17 13:57 GMT+02:00 Sergio Besada <scerqu...@gmail.com>: > Hi, > > I have seen that in the drools version 6.1.0.Beta4, the command > fire-until-halt is developed using persistence but drools doesn't let me > test it because this command implement the interface > "UnpersistableCommand" so I have eliminated this interface and I have > tested this configuration. > > Surprisingly, Drools works as I expected and doesn't throw any exception, > ¿Where is the problem in this configuration? > > Here my camel context > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:kie="http://drools.org/schema/kie-spring" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd > http://drools.org/schema/kie-spring > http://drools.org/schema/kie-spring.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > > > > <kie:kmodule id="kModule"> > <kie:kbase name="rules" packages="rules"> > <kie:ksession name="ksession1" type="stateful"> > <kie:batch> > <kie:fire-until-halt/> > </kie:batch> > <kie:configuration> > <kie:jpa-persistence> > <kie:transaction-manager ref="txManager"/> > <kie:entity-manager-factory ref="myEmf"/> > </kie:jpa-persistence> > </kie:configuration> > > > </kie:ksession> > </kie:kbase> > </kie:kmodule> > > <kie:environment id="env"> > <kie:entity-manager-factory ref="myEmf"/> > <kie:transaction-manager ref="txManager"/> > </kie:environment> > > > <bean class="org.postgresql.ds.PGPoolingDataSource" id="jbpm-ds"> > <property name="serverName" value="localhost"></property> > <property name="databaseName" value="drools"></property> > <property name="portNumber" value="5432"></property> > <property name="user" value="DWP"></property> > <property name="password" value="DWP"></property> > </bean> > > > <bean id="myEmf" > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> > <property name="dataSource" ref="jbpm-ds"/> > <property name="persistenceUnitName" > value="org.jbpm.persistence.jpa.local"/> > </bean> > > <bean id="txManager" > class="org.springframework.orm.jpa.JpaTransactionManager"> > <property name="entityManagerFactory" ref="myEmf"/> > </bean> > > <bean id="kiePostProcessor" > class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> > > <bean id="fireALlRulesCommand" > class="com.execute.command.FireAllRules"/> > > <bean id="fireUntilHaltCommand" > class="com.execute.command.FireUntilHalt"/> > > <bean id="factStudent" class="com.test.facts.Student"/> > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <route trace="false" id="testRoute"> > <from uri="timer:testRoute?period=10s"/> > <to uri="log:message"/> > <bean method="initStudent" ref="factStudent"/> > <to uri="kie:ksession1?action=insertBody" id="AgeVerification"/> > <!-- > <bean method="fireUntilHalt" ref="fireUntilHaltCommand"/> > > <to uri="kie:ksession1?action=execute"/> > --> > </route> > </camelContext> > > </beans> > > > PD: I have attached my example , it's a maven project > > > > > 2014-06-04 19:04 GMT+02:00 Sergio Besada <scerqu...@gmail.com>: > >> Thank you in advance. >> >> >> 2014-06-04 18:29 GMT+02:00 Charles Moulliard <ch0...@gmail.com>: >> >>> I will have a look to your use case as it is not yet covered and will >>> perhaps require that we modify the kie-camel component >>> >>> >>> On Wed, Jun 4, 2014 at 6:02 PM, s b <scerqu...@gmail.com> wrote: >>> >>>> I'm testing the drools new version (6.1.0.Beta4) but I have a problem >>>> with the Stateful Drools Session. >>>> >>>> I have deployed in JBoss Fuse ESB the last versión of the drools >>>> (drools camel, jbpm, spring, etc), I have atached my camel context bundle >>>> (It's a maven project). >>>> >>>> This is my camel-context >>>> >>>> <?xml version="1.0" encoding="UTF-8"?> >>>> <beans xmlns="http://www.springframework.org/schema/beans" >>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xmlns:kie="http://drools.org/schema/kie-spring" >>>> xsi:schemaLocation=" >>>> http://www.springframework.org/schema/beans >>>> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd >>>> http://drools.org/schema/kie-spring >>>> http://drools.org/schema/kie-spring.xsd >>>> http://camel.apache.org/schema/spring >>>> http://camel.apache.org/schema/spring/camel-spring.xsd"> >>>> >>>> >>>> >>>> <kie:kmodule id="kModule"> >>>> <kie:kbase name="rules" packages="rules"> >>>> <kie:ksession name="ksession1" type="stateful"> >>>> <!--<kie:batch> >>>> <kie:fire-all-rules/> >>>> </kie:batch> --> >>>> <kie:configuration> >>>> <kie:jpa-persistence> >>>> <kie:transaction-manager ref="txManager"/> >>>> <kie:entity-manager-factory ref="myEmf"/> >>>> </kie:jpa-persistence> >>>> </kie:configuration> >>>> >>>> >>>> </kie:ksession> >>>> </kie:kbase> >>>> </kie:kmodule> >>>> >>>> <kie:environment id="env"> >>>> <kie:entity-manager-factory ref="myEmf"/> >>>> <kie:transaction-manager ref="txManager"/> >>>> </kie:environment> >>>> >>>> >>>> <bean class="org.postgresql.ds.PGPoolingDataSource" id="jbpm-ds"> >>>> <property name="serverName" value="localhost"></property> >>>> <property name="databaseName" value="drools"></property> >>>> <property name="portNumber" value="5432"></property> >>>> <property name="user" value="DWP"></property> >>>> <property name="password" value="DWP"></property> >>>> </bean> >>>> >>>> >>>> <bean id="myEmf" >>>> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> >>>> <property name="dataSource" ref="jbpm-ds"/> >>>> <property name="persistenceUnitName" >>>> value="org.jbpm.persistence.jpa.local"/> >>>> </bean> >>>> >>>> <bean id="txManager" >>>> class="org.springframework.orm.jpa.JpaTransactionManager"> >>>> <property name="entityManagerFactory" ref="myEmf"/> >>>> </bean> >>>> >>>> <bean id="kiePostProcessor" >>>> class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> >>>> >>>> <bean id="fireALlRulesCommand" >>>> class="com.execute.command.FireAllRules"/> >>>> >>>> <camelContext xmlns="http://camel.apache.org/schema/spring"> >>>> <route trace="false" id="testRoute"> >>>> <from uri="timer:testRoute?period=10s"/> >>>> <to uri="log:message"/> >>>> <to uri="kie:ksession1?action=insertBody" >>>> id="AgeVerification"/> >>>> >>>> <bean method="fireAllRules" ref="fireALlRulesCommand"/> >>>> <to uri="kie:ksession1?action=execute"/> >>>> >>>> </route> >>>> </camelContext> >>>> >>>> </beans> >>>> >>>> As you can see it is an scenario where Drools is in an stateful session >>>> with persistence configured. >>>> >>>> The bundle is executed without errors but I want that Drools executes >>>> my rules each time that the route is executed ( fireUntilHalt mode but I >>>> wasn't able as seems that this command is not availble in a persisted >>>> environment ), for this reason I've created a bean with the command: >>>> fireAllRules and I use <to uri="kie:ksession1?action=execute"/> to execute >>>> the rules but the problem is that the rules are only executed the first >>>> time, only the first time and never in subsequents executions of the route. >>>> >>>> The persistece seems to work well ( I can see the datamodel created >>>> and populated as expeted in the DB ). >>>> >>>> However if I change to use stateless mode ( no persistence then ), the >>>> rules are executed each time that route is executed ( as expected ), and >>>> therefore I don´t need the command fireAllRules >>>> <bean method="fireAllRules" ref="fireALlRulesCommand"/> >>>> <to uri="kie:ksession1?action=execute"/> >>>> >>>> >>>> >>>> Questions: >>>> >>>> Is it possible to have a stateful fireUntilHalt drools session that >>>> keeps using the same knowledge session in subsequent camel route >>>> executions? >>>> >>>> If it is not possible, Can I have a stateful ( persisted )drools >>>> session and invoke "fireAllRules" whenever I make changes in the knowledge >>>> session ( new Facts are inserted )? >>>> >>>> I've deep dived into the web looking for examples or documentation of >>>> this scenario both in Spring and Blueprint. Does anyone of you have any >>>> pointers to documentation on the matter? >>>> >>>> Kind Regards, >>>> >>>> _______________________________________________ >>>> rules-users mailing list >>>> rules-users@lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>> >>> >>> >>> -- >>> Charles Moulliard >>> Apache Committer / Architect @RedHat >>> Twitter : @cmoulliard | Blog : http://cmoulliard.github.io >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users