Re: [rules-users] Fuse ESB Drools 6 - Fire-until-halt configuration using persistence

2014-06-17 Thread Sergio Besada
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

Re: [rules-users] Fuse ESB Drools 6 problem

2014-06-04 Thread Sergio Besada
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