Re: [rules-users] Drools Timers
Hi Demian, As far as I remember you can use a CRON like expression in the timer definition which will allow you to do that exactly. On Wed, Sep 24, 2014 at 4:59 AM, Demian Calcaprina calcacue...@gmail.com wrote: Hey Guys, I am trying to use to use the timer in the rule, but I don't fully understand it. I have a simple rule which says rule Test timer(int: 1s) when Something() then System.out.println(Something Happens); end And I insert 100 Someting() object, after 1 second I see 100 activations. - Can I do with the timer something like run this rule once per minute for example? - When does the timer start to run? Thanks in advance, Demian ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Anyone? Re: Drools bpmn gateway constraints questions
Hi Matt so: 1. How do I refer to the current fact? - Can I do something like this? *$cancerRecord : CancerRecord ()* *The current record where??? If you have multiple CancerRecord(s) each of them will match with that conditional element. If you have a business process with a process variable you should point to that variable instead of using the rules language to filter it. If the CancerRecord is a fact that's the right way to go. * 2. How do I invoke external functions? Can I do something like *inlist* ($cancerRecord.PRIMARY_SITE, C500, C501, C502, C503, C504, C505, C506, C508, C509) *containsAny* (kcontext, $cancerRecord, 505101,505102,505103,505104,505105,505106,505107,505108) Did you try this: eval(inlist(.)) in the RHS? I not able to locate any documentation in this. Can some one point me to the right documentation. I have been stuck on this for couple of days. All of this is explained in the drools.org documentation site, I'm pretty sure that the eval is there. On Wed, Aug 13, 2014 at 4:33 PM, mattmadhavan mmadha...@facs.org wrote: Anyone out there please? Thanks Matt -- View this message in context: http://drools.46999.n3.nabble.com/Drools-bpmn-gateway-constraints-questions-tp4030640p4030646.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Including repository in a WAR file
Hi, I don't think that it will be possible the repository is a JCR repository in 5.3, so there is no point in storing all the meta information from the repository if the only thing you need are the rules. You can always ship the rules inside the web application, provide a way to upload new rules when needed and regenerate the sessions using the new rules. Why do you want to have all the repo? On Wed, Jul 23, 2014 at 1:55 AM, ilguapo ilgu...@gmail.com wrote: I'm using Drools 5.3.0 I'd like to find out if the following scenario is possible: - Include the repository_export.zip file inside my application WAR file. This way, Guvnor won't be necessary. - Provide a special upload page just like Guvnor's Import/Export to upload a completely new repository_export.zip file when rules have changed. I haven't been able to find a way to read a repository_export.zip file with the current API. They only talk about drl, pkg, etc..etc but no zip files. I could potentially take the zip file, unzip it to an XML and maybe read this file?? Any ideas would be really helpful. Regards, Ilguapo -- View this message in context: http://drools.46999.n3.nabble.com/Including-repository-in-a-WAR-file-tp4030450.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Including repository in a WAR file
You can build the PKGs in guvnor and then just move the PKGs to a accesible server by the app that will load the rules in those packages. That will do the work IMO. Regards On Wed, Jul 23, 2014 at 2:39 PM, ilguapo ilgu...@gmail.com wrote: Thank you for replying Toni and Salaboy. This is the reason why we want to do that: -We already have an application that uses Guvnor in production. The problem is Guvnor is hosted on a different machine which we are losing therefore we thought about an idea of completely eliminating Guvnor by including the repository in the WAR so that we could read it the first time the application starts. As you know, this is being done by pointing to the Guvnor URL at this time. -We actually wanted to leave Guvnor in the dev environment so that developers could add more rules to the application whenever necessary by providing an Import feature to read the repository_export.zip file into the application to replace the old repository. -If we do this, we will only need Guvnor in the dev environment which is controlled by us and will be eliminated from all other environments. (Will reduce a lot of paper work at a government site) I like Toni's idea of building the repository using Guvnor in the dev environment but how do you read the repository the first time the app starts? This is done now by getting the package from Guvnor thru a URL. That was the only reason to store the repository inside the WAR file so that the rules could be read at initialization time. Any pointers would be really appreciated especially how to update the package which according to Toni is easy :-) Regards, Ilguapo -- View this message in context: http://drools.46999.n3.nabble.com/Including-repository-in-a-WAR-file-tp4030450p4030458.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How do I access objects in a top level or condition?
Hi, you can't because you don't know which is true. You can create two rules one for each condition and then you can access by binding the Conditaional Element to a variable: Like for example: when $c: Customer( age == 50 ) then $c.setAge( 40 ); On Wed, May 28, 2014 at 3:39 PM, Chidambaran Subramanian chi...@gmail.comwrote: rule Test dialect mvel when ( Customer( age == 50 ) or Deal( amount == 30 ) ) then Customer.setAge( 40 ); update( Customer ); Customer.setPlace( Test ); update( Customer ); end Appreciate any help in this regard. Regards Chiddu ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Distributed Drools
Daniel, that sounds as a really good project, as Esteban and Davide mention we should work together to at least share experiences and cons and pros over the two different implementations (drools only vs jade + drools). Keep us posted about your progress! On Thu, Apr 24, 2014 at 8:07 AM, Esteban Aliverti esteban.alive...@gmail.com wrote: Matthew, regarding drools-mas, I would use this other repo: https://github.com/SocraticGrid/drools-mashttps://github.com/SocraticGrid/drools-mas. I did some changes there that are not present in droolsjbpm's one (I have to merge them back). I do think, though, that drools-mas is (currently) more suitable for a multi-agent scenario where each of the agents has a private and local working memory that is not shared among the others. drools-mas uses FIPA messages to handle the communication between the agents, but no real shared working memory is never used. Previous implementation of drools-mas used drools-grid to try to do something like this (distributed working memories), but this implementation was discarded after drools-grid was discontinued (it actually never passed the incubation period). Regards, Esteban Aliverti - Blog @ http://ilesteban.wordpress.com On Thu, Apr 24, 2014 at 4:39 AM, Daniel Souza danieldsouz...@gmail.comwrote: Hi Matt, This is the paper url available free from google: Rule-based Distributed and Agent Systems http://vsis-www.informatik.uni-hamburg.de/getDoc.php/publications/431/intro.pdf It's around 27 pages. Daniel -- View this message in context: http://drools.46999.n3.nabble.com/Distributed-Drools-tp4029338p4029342.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools UI inside JSF
Hi, as far as I know there is nothing, but it shouldn't be that difficult to create. You will need to build a bridge between JSF and GWT and try to embed some bits of guvnor into your JSF app. I strongly recommend you to take a look at the new version of the tooling which will allow you to be more granular selecting the panels that you want to include. On Fri, Mar 21, 2014 at 9:22 AM, gigu979 giacomo.guer...@sparkling18.comwrote: Hi All, I've a web application developed in JSF. I need that my customers (the users) can define rules through this web interface. Is there any tag library or some way to translate the input data in the drl script??? There is a way to use guvnor modules within a facelet?? Thanks -- View this message in context: http://drools.46999.n3.nabble.com/Drools-UI-inside-JSF-tp4028870.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Want to post to this list
Hmm.. you are already posting to this list.. just send the questions :) On Fri, Mar 21, 2014 at 10:01 AM, Ankit Jain anki...@gmail.com wrote: Hi, I am Ankit Jain, a newbie to Drools. In order to get my queries answered I would like to post to this mailing list. Regards Ankit ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] (no subject)
Can you please elaborate about why do you want to do that? what's the point of having a list inside of the Event class that will contain the same event? The Then side of the rule is pure java.. so you just do event.getEvents().add(event); but I don't see the point of doing that. Regards On Mon, Mar 10, 2014 at 10:31 AM, Sandhya Sree sandhyachinna...@gmail.comwrote: hi , i have a class called Event which is as follows: public class Event { private String name; private File source; private Date timeStamp; public static ListEvent listOfEvents; public Event(String name, File source, Date timeStamp) { this.name = name; this.source = source; this.timeStamp = timeStamp; } public String getName() { return name; } public void setName(String name) { this.name = name; } public File getSource() { return source; } public void setSource(File source) { this.source = source; } public Date getTimeStamp() { return timeStamp; } public void setTimeStamp(Date timeStamp) { this.timeStamp = timeStamp; } public void display() { System.out.println(name + + in folder: + source + on + timeStamp ); } there are also some other classes associated with my project.. i have a rules file which computes the size of a folder and creates an object of Event class. every time this object of Event class is created i wwant to put it in a ListEvent.. how can i do this.. my rules is as follows: rule size when $p: RuleContext($size: getOldContext().getParent().getUsableSpace() (30*1024*1024)) then Event event = new Event(folder almost full, $p.getOldContext().getParent(), new Date()); event.display(); ..here i want to put this event into the ListEvent declared in Event Class. end thanks, Sandhya ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] (no subject)
Please copy the entire stack trace.. what you have copied doesn't mean anything besides that there is something wrong. On Mon, Mar 10, 2014 at 1:29 PM, Sandhya Sree sandhyachinna...@gmail.comwrote: im getting the following error on doing that Exception in thread pool-2-thread-1 Exception executing consequence for rule size in com.net: java.lang.NullPointerException what might be the problem? On Mon, Mar 10, 2014 at 4:16 PM, Wolfgang Laun wolfgang.l...@gmail.comwrote: Seeing that the list is static you can use the usual way for accessing a static class member: Event.listOfEvent.add( ... ); @Mauricio: It's not unusual to maintain a static collection (even though there may be better ways, esp. with Drools). On 10/03/2014, Mauricio Salatino sala...@gmail.com wrote: Can you please elaborate about why do you want to do that? what's the point of having a list inside of the Event class that will contain the same event? The Then side of the rule is pure java.. so you just do event.getEvents().add(event); but I don't see the point of doing that. Regards On Mon, Mar 10, 2014 at 10:31 AM, Sandhya Sree sandhyachinna...@gmail.comwrote: hi , i have a class called Event which is as follows: public class Event { private String name; private File source; private Date timeStamp; public static ListEvent listOfEvents; public Event(String name, File source, Date timeStamp) { this.name = name; this.source = source; this.timeStamp = timeStamp; } public String getName() { return name; } public void setName(String name) { this.name = name; } public File getSource() { return source; } public void setSource(File source) { this.source = source; } public Date getTimeStamp() { return timeStamp; } public void setTimeStamp(Date timeStamp) { this.timeStamp = timeStamp; } public void display() { System.out.println(name + + in folder: + source + on + timeStamp ); } there are also some other classes associated with my project.. i have a rules file which computes the size of a folder and creates an object of Event class. every time this object of Event class is created i wwant to put it in a ListEvent.. how can i do this.. my rules is as follows: rule size when $p: RuleContext($size: getOldContext().getParent().getUsableSpace() (30*1024*1024)) then Event event = new Event(folder almost full, $p.getOldContext().getParent(), new Date()); event.display(); ..here i want to put this event into the ListEvent declared in Event Class. end thanks, Sandhya ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ 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 -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] (no subject)
If the list inside Event has never being initialised it will throw a null point exception.. so you need to make sure that the list is initialised properly. Regards On Mon, Mar 10, 2014 at 1:43 PM, Sandhya Sree sandhyachinna...@gmail.comwrote: Exception in thread pool-2-thread-1 Exception executing consequence for rule size in com.net: java.lang.NullPointerException at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230) at com.net.RuleExecutor.execute(RuleExecutor.java:18) at com.net.DirectoryMonitor.run(DirectoryMonitor.java:39) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.NullPointerException at com.net.Rule_size_dc2a47e2812648e69eb9581eda931496.defaultConsequence(Rule_size_dc2a47e2812648e69eb9581eda931496.java:9) at com.net.Rule_size_dc2a47e2812648e69eb9581eda931496DefaultConsequenceInvokerGenerated.evaluate(Unknown Source) at com.net.Rule_size_dc2a47e2812648e69eb9581eda931496DefaultConsequenceInvoker.evaluate(Unknown Source) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287) On Mon, Mar 10, 2014 at 7:08 PM, Mauricio Salatino sala...@gmail.comwrote: Please copy the entire stack trace.. what you have copied doesn't mean anything besides that there is something wrong. On Mon, Mar 10, 2014 at 1:29 PM, Sandhya Sree sandhyachinna...@gmail.com wrote: im getting the following error on doing that Exception in thread pool-2-thread-1 Exception executing consequence for rule size in com.net: java.lang.NullPointerException what might be the problem? On Mon, Mar 10, 2014 at 4:16 PM, Wolfgang Laun wolfgang.l...@gmail.comwrote: Seeing that the list is static you can use the usual way for accessing a static class member: Event.listOfEvent.add( ... ); @Mauricio: It's not unusual to maintain a static collection (even though there may be better ways, esp. with Drools). On 10/03/2014, Mauricio Salatino sala...@gmail.com wrote: Can you please elaborate about why do you want to do that? what's the point of having a list inside of the Event class that will contain the same event? The Then side of the rule is pure java.. so you just do event.getEvents().add(event); but I don't see the point of doing that. Regards On Mon, Mar 10, 2014 at 10:31 AM, Sandhya Sree sandhyachinna...@gmail.comwrote: hi , i have a class called Event which is as follows: public class Event { private String name; private File source; private Date timeStamp; public static ListEvent listOfEvents; public Event(String name, File source, Date timeStamp) { this.name = name; this.source = source; this.timeStamp = timeStamp; } public String getName() { return name; } public void setName(String name) { this.name = name; } public File getSource() { return source; } public void setSource(File source) { this.source = source; } public Date getTimeStamp() { return timeStamp; } public void setTimeStamp(Date timeStamp) { this.timeStamp = timeStamp; } public void display() { System.out.println(name + + in folder: + source + on + timeStamp ); } there are also some other classes associated with my project.. i have a rules file which computes the size of a folder and creates an object of Event class. every time this object of Event class is created i wwant to put it in a ListEvent.. how can i do this.. my rules is as follows: rule size when $p: RuleContext($size: getOldContext().getParent().getUsableSpace() (30*1024*1024)) then Event event = new Event(folder almost full, $p.getOldContext().getParent(), new Date()); event.display(); ..here i want to put this event into the ListEvent declared in Event Class. end thanks, Sandhya ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio
Re: [rules-users] [Drools Activation-group] / how to set many activation groups
It seems that you can define a rule to codify what you are explaining. You can change the agenda groups using rules, so you can write a rule that know how and when change the agenda groups for each of your codes. On Mon, Feb 10, 2014 at 12:16 PM, jcarpene jerome.carp...@sopragroup.comwrote: Hello, I am trying to implement some rules that need more that a unique Activation-group. My case is related to some Voucher codes for online shopping. A simple case works great, by defining an Activation-group to make sure 2 Voucher codes cannot be used at the same time. But now I need 2 Voucher codes (say Code 1, Code 2) to be compatible (no activation-group) and a 3rd code (Code 3) to be disabled if Code 1 or Code 2 is used. If I use a XOR group name as an Activation-group, then Code 1 and Code 2 will have a same Activation-group and will be exclusive (which I do not want). Do you know a way of setting multiple Activation-Groups for example, or any workaround for that case ? Regards, Jerome -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Activation-group-how-to-set-many-activation-groups-tp4028033.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Driving License application
Can you share with us the Applicant class? because if you have something like: boolean valid; it will be automatically initialized to false, so the rule will not do anything just leave the Applicant as it is On Tue, Dec 24, 2013 at 10:05 AM, seyfullah seyfullahti...@outlook.comwrote: Hello, I am trying to implement Driving License example application in Drools Documentation Versio 6.0.0.0 Final. My main method is as below. KieServices kieServices = KieServices.Factory.get(); KieContainer kContainer = kieServices.getKieClasspathContainer(); StatelessKieSession kSession = kContainer.newStatelessKieSession(); Applicant applicant = new Applicant(Mr John Smith, 16); assertTrue( applicant.isValid() ); kSession.execute( applicant ) ; assertFalse ( applicant.isValid() ); My licenseApplication.drl file is as below: package MyPackage import MyPackage.Applicant; rule Is of valid age when $a : Applicant( age 18 ) then $a.setValid ( false ); end Thanks to assertTrue and asserFalse methods, its output is It is false as not expected It is false as expected Bu when I change age parameter from 16 to 22 its output is same again. I expected that it is true. I think there is something wrong. Do you have any idea about this problem? Regards -- View this message in context: http://drools.46999.n3.nabble.com/Driving-License-application-tp4027403.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Driving License application
So, if you don't touch in some way the boolean valid, value in your rules or in your java code it will be false not true. On Tue, Dec 24, 2013 at 10:15 AM, seyfullah seyfullahti...@outlook.comwrote: package MyPackage; public class Applicant { public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isValid() { return valid; } public void setValid(boolean valid) { this.valid = valid; } private String name; private int age; private boolean valid; public Applicant(String nameP, int ageP) { // TODO Auto-generated constructor stub this.name = nameP; this.age = ageP; } } -- View this message in context: http://drools.46999.n3.nabble.com/Driving-License-application-tp4027403p4027405.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Driving License application
Yeah, that will do the work. On Tue, Dec 24, 2013 at 10:34 AM, seyfullah seyfullahti...@outlook.comwrote: Ok, I changed my drl file and main method as follows, and it works. Thank you. package MyPackage import MyPackage.Applicant; rule Is of not valid age when $a : Applicant( age 18 ) then $a.setValid ( false ); end rule Is of valid age when $a : Applicant( age 17 ) then $a.setValid ( true ); end KieServices kieServices = KieServices.Factory.get(); KieContainer kContainer = kieServices.getKieClasspathContainer(); StatelessKieSession kSession = kContainer.newStatelessKieSession(); Applicant applicant = new Applicant(Mr John Smith, 16); assertFalse( applicant.isValid() ); kSession.execute( applicant ) ; assertFalse ( applicant.isValid() ); Applicant applicant2 = new Applicant(Mr Bill Wayne, 22); assertFalse( applicant2.isValid() ); kSession.execute( applicant2 ) ; assertTrue ( applicant2.isValid() ); -- View this message in context: http://drools.46999.n3.nabble.com/Driving-License-application-tp4027403p4027407.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Roadmap - Planned Release 6.0.0.Final release date
We are working hard on get it out soon, but there is no definitive date as far as I know.. Maybe early next week (??) On Mon, Oct 28, 2013 at 6:53 PM, Juan Ignacio Barisich juan.baris...@gmail.com wrote: Hi everybody. I need to know if is there a planned release date for Drools platform 6.0.0.Final. Thanks Regards ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Free Drools jBPM Workshops in London
Hi everyone, tomorrow we (Michael Anstis) are doing a couple of workshops about the new Drools and jBPM 6 platform. Here you can find more details about the event: http://salaboy.com/2013/10/04/drools-and-jbpm-6-workshops-2324-october-london/ There are very few seats available, so get in touch if you want to secure your place. -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Free Drools jBPM Workshops in London
A community member will be trying to broadcast the workshop, so tomorrow we will be sharing the stream URL, but it's not guaranteed to work. Cheers On Tue, Oct 22, 2013 at 3:58 PM, Genene Geda gg...@ghx.com wrote: Hi, is there any chance to attend this workshop online ? Thanks, ** ** *From:* rules-users-boun...@lists.jboss.org [mailto: rules-users-boun...@lists.jboss.org] *On Behalf Of *Mauricio Salatino *Sent:* Tuesday, October 22, 2013 8:49 AM *To:* Rules Users List; Rules Dev List *Subject:* [rules-users] Free Drools jBPM Workshops in London ** ** Hi everyone, tomorrow we (Michael Anstis) are doing a couple of workshops about the new Drools and jBPM 6 platform. Here you can find more details about the event: ** ** http://salaboy.com/2013/10/04/drools-and-jbpm-6-workshops-2324-october-london/ ** ** There are very few seats available, so get in touch if you want to secure your place. ** ** ** ** -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Help on writing a rule
Just curious here, why do you have this - signal : Signal( id == 1234 ) over window:length(1)? On Tue, Oct 22, 2013 at 9:40 PM, Davide Sottara dso...@gmail.com wrote: Am I wrong or do you have two PriceChange events - 392 and 394 ? If so, you can expect two activations.. when you fire al rules, one of the two will insert the OrderCreated, which in turn will cancel the other On 10/22/2013 01:34 PM, calcacuervo wrote: Hi Guys. I have one quesiton on how could I implement my rule. I have this rule: when t : PriceChange() over window:length(1) signal : Signal( id == 1234 ) over window:length(1) not OrderCreated( id == 1234 ) over window:time (1m) then insert(new OrderCreated(1234)); Basically, when there is some signal and some price change, create a new order if there has no been any other order in the last minute. But this sometimes is being fired twice: 12:31:01,121 INFO [org.drools.audit.WorkingMemoryConsoleLogger] (Camel (camel-1) thread #4 - JmsConsumer[marketDataTopic]) ACTIVATION CREATED rule:ertetr activationId:ertetr [393, 392, 0] declarations: t=PriceChange [](392); signal=Signal@1413ddef(393) 12:31:01,160 INFO [org.drools.audit.WorkingMemoryConsoleLogger] (Camel (camel-1) thread #4 - JmsConsumer[marketDataTopic]) ACTIVATION CREATED rule:ertetr activationId:ertetr [393, 394, 0] declarations: t=PriceChange [](394); signal=Signal@1413ddef(393) I think that, when the 1m window have passed, it creates twice the activations, as I have not called fire all rules yet. Does is make sense? Do you have some idea on how could I implement this rule? when there has been some price change and some signal, and I did not create a new order in the last minute, just create a new order. Thanks in advance! Demian -- View this message in context: http://drools.46999.n3.nabble.com/Help-on-writing-a-rule-tp4026461.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Flow
Yeah, Drools Flow was renamed to jBPM 5 and 6 On Mon, Oct 14, 2013 at 5:44 PM, vojedav voje...@hotmail.com wrote: What happened with that project? Is embedded in Rules Expert o where? If I want to develop an app with workflow, have I to get jBPM instead? Thanks in advance -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Flow-tp4026363.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Indicating used rules
yeah you can do that, you can write rules about rules activations with the declarative agenda feature. Check this out: http://planet.jboss.org/post/declarative_agenda_and_control_rules On Mon, Sep 23, 2013 at 4:06 PM, Andrzej Grzelak andrzej.grze...@g.plwrote: Hello again, Im making some kind of expert system. And now i got new problem: User is asked sequentially for propetieries of object, than I modify object propetieries, then i call update() and fireAllRules() to check for any answers. It is repeated for every object property till we fire rule with answer. Now problem comes : When user decline answer we need to find another one. But first answer will fire every time now. That's not what i need Making somewhere in app list of false answers and then striping out them on return wont work. My app flow is determined by drools rule fire - if one of answer rules fires i return that answer, normally i would ask another question. I would need to indicate drools somehow to delete/deactivate that rule. Thanks for any help. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] JBPM 6 Loop back.
Can you please elaborate a little bit more? I coudn't understand what the problem is. Cheers On Sun, Sep 8, 2013 at 6:59 AM, Naman Shah nshah.w...@gmail.com wrote: I got a work flow, which has a loop back. ?node : yes-- do x /?node:no --repeat previous yes works and n o dont and also i cant find entires into process instance data ,using which i can see the process status. I am using jbpm beta 6.05 Please find the attached BPMN for the same. Node name where loop back dont work : inclusiveGateway id=_49 and others too. - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Is drools the solution for my requirement.
It all depends on how often those rules will change and how often you will add new ones. It is also important to understand if the business users wants to see the rules and understand what is going on, or everything will be hidden? From the maintainance point of view, the rules can help you out if the logic chances periodically. On Tue, Aug 27, 2013 at 1:40 PM, nitind nitindh...@yahoo.com.sg wrote: Hi, We have 200 odd rules to be configured and wanted to know if drools can be the optimum solutions. The rules are broadly classified into 2 categories example 1 : We need to compare invoice no value in 10 documents and if it matches perform A if it does not match perform B The catch is the 10 different document may not have the same Keyword i.e. Invoice no, instead it can Bill no, Invoice number, Bill #, Inv etc. example 2 : Search for Key word like Ferrari, BMW , if found need to check if the individual is Authorized agent. Question : Can the above be implement using Drools, second is it worth the effort or just code if else in Java and get it done. Thanks in advance. Regards Nitin -- View this message in context: http://drools.46999.n3.nabble.com/Is-drools-the-solution-for-my-requirement-tp4025693.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] What are Recursion Rules. Any example
Hi, why do you want to understand that? What are you trying to solve? Help us to help you. Usually when the terms Rules Recursion is used, is when you have a rule or a set of rules that are executed in a loop because the consequence of a rule trigger the same rule again. This can be caused because your rule consequence, is modifying the objects that are matched in the Condition side of the rule, which causes the re evaluation of the condition. Is that what are you looking for? Cheers On Tue, Aug 20, 2013 at 9:56 AM, ashwindrool ashwin.khandelwa...@gmail.comwrote: Hi All, Can anyone help me in understanding Recursion Rules. If any example , will be of great help to me. Thanks -- View this message in context: http://drools.46999.n3.nabble.com/What-are-Recursion-Rules-Any-example-tp4025617.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Process Compilation Error: Drools can not be resolved
Yeah, that's because drools doesn't exist. I think that you can use the kcontext, in order to do that.. Try something like: kcontext.getKnowledgeRuntime().getFactHandles() instead of drools.getWorkingMemory().getFactHandles() On Tue, Aug 20, 2013 at 11:42 AM, V Vignesh vignes...@solartis.net wrote: Hi guys, I am new new to Rule Flow. I am using eclipse for rule flow. In a new Drools-Project in ProcessTest.java I tried to insert a HashMap in a knowledge base session --- HashMap hMap = new HashMap(); hMap.put(Id, 10); hMap.put(RollNumber, 456); FactHandle qMapHandle = ksession.insert(hMap); ksession.startProcess(sample.ruleflow); ksession.fireAllRules(); -- but in my ruleflow.rf I added a script Task when in its Action, i tried accessing this fact Handle i get an error Drools cannot be resolved - if(drools.getWorkingMemory().getFactHandles()){ System.out.println(Inside the Script Task); } - Can you please help me to figure out the Reasons for Compilation Error -- View this message in context: http://drools.46999.n3.nabble.com/Process-Compilation-Error-Drools-can-not-be-resolved-tp4025623.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Process Compilation Error: Drools can not be resolved
The kcontext is a special variable of the type RuleContext. If you take a look at that interface and all the inheritance you will find out which methods you can use. You can do something like: kcontext.getKnowledgeRuntime().getObjects() and then look for the HashMap. I'm not sure what do you want to achieve.. but as you may notice this is not a clean solution.. you probably can change the shape of your solution to something better, if you share with us what are you trying to achieve, maybe we can help. Cheers On Tue, Aug 20, 2013 at 12:33 PM, V Vignesh vignes...@solartis.net wrote: Hi Mauricio Thanks a lot buddy. I would like to know how this syntax functions. If i need the HashMap from process Test.java (as i have mentioned first) how should i alter this line? -- View this message in context: http://drools.46999.n3.nabble.com/Process-Compilation-Error-Drools-can-not-be-resolved-tp4025623p4025625.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Process Compilation Error: Drools can not be resolved
Yeah I noticed that you are trying to do that.. but my question is why are you doing that. Are you using the hashmap in some rules? Why are you using a script task? You can use a workItemHandler to have more control on the objects that you are using and also to have auto completion, compilation time validations and most importantly you can debug it. On Tue, Aug 20, 2013 at 12:52 PM, V Vignesh vignes...@solartis.net wrote: Hi Mauricio Thanks for your explanation buddy. sure i will check on it. Target to achieve: == I have a HashMap in my ProcessTest.java as - -- HashMap hMap = new HashMap(); hMap.put(Id, 10); hMap.put(RollNumber, 456); FactHandle qMapHandle = ksession.insert(hMap); ksession.startProcess(sample.ruleflow); ksession.fireAllRules(); - Now i am trying to access this HashMap from ProcessTest.java for further calculations to proceed using its values, in my Script Task Action of ruleflow.rf. Viki -- View this message in context: http://drools.46999.n3.nabble.com/Process-Compilation-Error-Drools-can-not-be-resolved-tp4025623p4025627.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Snapshot of drools engine's state
IMO that's a very difficult problem to solve.. because if you want to do it every X seconds you can be caught in the middle of an execution. If you delay the snapshot creation for when the execution ends, you will probably caught in the next snapshot creation. Depending on what are you doing within your rules, you can always recreate the session from the scratch. You can also use rules to summarize state and persist that summaries in your external database, that can save you some time. HTH On Mon, Aug 12, 2013 at 8:52 AM, IK81 m...@kofler.me wrote: Hi, I am looking for a solution to make the engine's state persistent in regular intervals. I do not want to persist the engine's state at every event insertion for performance reasons. Instead I am thinking of making a snapshot of the engine's state let's say every X seconds. The events I have are always stored to a database. In case of a crash or reboot I'd like to recover the engine's state from the snapshot + reinserting the events that happened after the timestamp of my snapshot. Are there any hints or caveats regarding this approach? Best regards, Ingo -- View this message in context: http://drools.46999.n3.nabble.com/Snapshot-of-drools-engine-s-state-tp4025457.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] JbpmJunitTestCase - where does it live?
That class is in jbpm-tests https://github.com/droolsjbpm/jbpm/blob/master/jbpm-test/src/main/java/org/jbpm/test/JbpmJUnitTestCase.java On Mon, Aug 12, 2013 at 10:18 AM, droolster quant.co...@gmail.com wrote: Hello, I have imported the jbpm dependency into my project: dependency groupIdorg.jbpm/groupId artifactIdjbpm-bpmn2/artifactId version5.4.0.Final/version /dependency However, Eclipse cannot find org.jbpm.JbpmJUnitTestCase i.e. import org.jbpm.JbpmJUnitTestCase; Please can anyone tell me where I can find this class. Thanks in advance for your help. Regards -- View this message in context: http://drools.46999.n3.nabble.com/JbpmJunitTestCase-where-does-it-live-tp4025466.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Integrating custom UI with drools rule engine
Ok, so you will need to elaborate a little bit more, so we can help you. The Drools Engine is not Guvnor. The Drools Engine is Drools Expert and Guvnor is a Rules/Knowledge Assets Repository. I'm guessing that you have your own rules authoring environment and you want to deploy the rule to the Knowledge Repository (Guvnor) is that right? I guess that you can use the REST APIs for doing that. Guvnor Team, please correct me if I'm wrong. Best regards On Mon, Aug 5, 2013 at 9:49 AM, ashish6276 ashishkumarec...@gmail.comwrote: I need to integrate the Custom Ui with Drools engine(Guvnor).we need to create rules input from UI (jsp) and integrate into Guvnor so that click of event rules defined in UI will add to guvnor? -- View this message in context: http://drools.46999.n3.nabble.com/Integrating-custom-UI-with-drools-rule-engine-tp4025316.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Integrating custom UI with drools rule engine
if you are using Guvnor 5.5 the rules are being stored in both: DRL and BRL format. I would recommend you to go with a simple DRL format, which is plain text with valid rules in it. HTH On Mon, Aug 5, 2013 at 10:20 AM, ashish6276 ashishkumarec...@gmail.comwrote: Hi, I am creating UI which will take input for condition and Action. That input shoule be indesatndable by guvnor so that we can add one rule in it. My question is which format the inputof Ui should be converted so that Guvnor can understand and rules can be added -- View this message in context: http://drools.46999.n3.nabble.com/Integrating-custom-UI-with-drools-rule-engine-tp4025316p4025321.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] ruleflow-group and jBPMN
Are you calling fireAllRules after the process returns the execution to the application? Are you 100% sure that at least a rule is being activated? On Mon, Aug 5, 2013 at 4:54 PM, droolster quant.co...@gmail.com wrote: Hello, Please can the community help me. I have setup a Drools JBPMN process and am using it to determine which set of rules to fire under different scenarios. However, when I add the ruleflow-group attribute to the rules in the DRL file, the rules fail to execute. Here is my setup: foo.bpmn2 RuleFlowGroup=abc rules.drl rule number one ruleflow-group abc When I initiate the process, the rule do not fire. If I take out the ruleflow-group attribute in the DRL file, the rules fire. Any idea what I am not doing or doing wrong? Regards. -- View this message in context: http://drools.46999.n3.nabble.com/ruleflow-group-and-jBPMN-tp4025347.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Dzone Refcard
Great Mario! Can I publish that in my blog? On Thu, Jul 25, 2013 at 9:01 AM, Mario Fusco mario.fu...@gmail.com wrote: Hi all, Marcin Grzejszczak and myself wrote a Dzone Refcard covering Drools 5.5 that is now available for download here: http://refcardz.dzone.com/refcardz/drools We hope this could be useful both as a starting guide for beginners and as cheat sheet for more experienced users. Cheers, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Dzone-Refcard-tp4025135.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Pattern matching rules
yeah you can use the matches operator and write your own regular expression there. Cheers On Wed, Jul 24, 2013 at 10:47 AM, rganesh84 ganesh_...@infosys.com wrote: I was just wondering if there is a pattern matcher available in drools. Below is a sample rule Action Movies dialect java when ui : UserInfo(likes contains Action) then List sw = new ArrayList(); sw.add(Die Hard); sw.add(The Avengers); ui.setRecs(sw); end the rule strictly checks for word Action but if the likes list contains Action Movies the rule won't get processed. Is there a pattern matching ability or a like search for a String/list containing strings? -- View this message in context: http://drools.46999.n3.nabble.com/Pattern-matching-rules-tp4025112.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Getting deadlock-like thread state
If you run each of these sessions alone does you get the same problem? or this only happens when you try to run multiple sessions in parallel?? On Tue, Jul 23, 2013 at 1:33 PM, Bojan Janisch bojan.jani...@scai.fraunhofer.de wrote: Hey drools users, I'm running drools multiple times in parallel with ECJ (genetic algorithm framework). Also I'm running ECJ multiple times in parallel (evaluation purpose). But each time I want to run ECJ, after an unspecific time, one thread is running infinite long while ECJ waits for it to finish. Additionally to this my working memory is steadily growing while hanging in this deadlock-like state, though this might not be due to drools. This goes on until I get an gc out of memory exception. I've created a threaddump which always looks so: java.lang.Thread.State: RUNNABLE at java.lang.Object.notifyAll(Native Method) at org.drools.common.DefaultAgenda.notifyHalt(DefaultAgenda.java:1478) - locked 0x2af5f3b0fe88 (a java.util.concurrent.atomic.AtomicBoolean) at org.drools.common.DefaultAgenda.addActivation(DefaultAgenda.java:466) at org.drools.common.DefaultAgenda.addActivation(DefaultAgenda.java:326) at org.drools.reteoo.RuleTerminalNode.assertLeftTuple(RuleTerminalNode.java:259) at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196) at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71) at org.drools.reteoo.JoinNode.propagateFromLeft(JoinNode.java:107) at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:95) at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196) at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71) at org.drools.reteoo.JoinNode.propagateFromLeft(JoinNode.java:107) at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:95) at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196) at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71) at org.drools.reteoo.JoinNode.propagateFromRight(JoinNode.java:159) at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:148) at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235) at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847) at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269) at rulevolution.RulEvolution.runDrools(RulEvolution.java:343) at rulevolution.RulEvolution.evaluate(RulEvolution.java:185) at ec.simple.SimpleEvaluator.evalPopChunk(SimpleEvaluator.java:259) at ec.simple.SimpleEvaluator$SimpleEvaluatorThreadCG.run(SimpleEvaluator.java:341) at ec.util.ThreadPool$PoolThread.run(ThreadPool.java:57) Locked ownable synchronizers: - 0x2af5f3ae95d0 (a java.util.concurrent.locks.ReentrantLock$NonfairSync) To my Programm: Rules are generated in parallel and for each rule, a new KnowledgeBase, KnowledgeBuilder and StatefulKnowledgeSession is created. Objects are inserted into the session and the rule is fired. The session will be disposed after no facts matches my rule or 1000 conclusions are fired. I've searched the net for a similar problem, but with no success. Does someone know why Drools get into such a thread state and how to get out of it? I appreciate any help. Bojan ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] clustering
Hi Sara, I'm not sure if this is the right mailing list for JBoss Application Server Clustering configurations. You should try at the JBoss AS User forums. On Wed, May 15, 2013 at 12:01 PM, sara ibrahim saraibrahimhas...@hotmail.com wrote: hi, i need to configure Jboss clustering , i tried to apply it in the same server but i couldn't perform Failover so now i'm trying two different ips at different machines , what should i do exactly?! REGARDS, SARA ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Strange error using Drools + Spring + DecisionTable
It could be related with the location of the file: classpath:data/ IntegrationExampleTest.xls Are you sure that the file is being picked up? On Wed, Apr 17, 2013 at 6:05 PM, Charles Moulliard ch0...@gmail.com wrote: Hi, When I try to instantiate an Excel Decision Table using Drools + Spring (kresource), I get this error : REMARK: the file is the same as we have in Drools Unit Test (decision-table) Error : Caused by: java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:75) at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:75) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:93) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:72) at org.drools.decisiontable.DecisionTableProviderImpl.compileStream(DecisionTableProviderImpl.java:37) at org.drools.decisiontable.DecisionTableProviderImpl.loadFromInputStream(DecisionTableProviderImpl.java:20) at org.drools.compiler.compiler.DecisionTableFactory.loadFromInputStream(DecisionTableFactory.java:15) at org.drools.compiler.compiler.PackageBuilder.decisionTableToPackageDescr(PackageBuilder.java:460) at org.drools.compiler.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:454) at org.drools.compiler.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:684) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40) at org.drools.container.spring.beans.KnowledgeBaseBeanFactory.afterPropertiesSet(KnowledgeBaseBeanFactory.java:110) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) Config : ?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:drools=http://drools.org/schema/drools-spring; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd; drools:grid-node id=node1/ drools:kbase id=kbase1 node=node1 drools:configuration drools:mbeans enabled=true/ /drools:configuration drools:resources drools:resource type=DTABLE source=classpath:data/IntegrationExampleTest.xls/ /drools:resources /drools:kbase drools:ksession id=ksession1 type=stateless name=ksession1 kbase=kbase1 node=node1/ /beans Regards, -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Strange error using Drools + Spring + DecisionTable
Can you try pointing to a non existing location? to see if you get the same error? On Wed, Apr 17, 2013 at 6:30 PM, Charles Moulliard ch0...@gmail.com wrote: As the file exists under target/classes directory, that should be the case /target/classes/data/IntegrationExampleTest.xls On Wed, Apr 17, 2013 at 11:11 PM, Mauricio Salatino sala...@gmail.comwrote: It could be related with the location of the file: classpath:data/ IntegrationExampleTest.xls Are you sure that the file is being picked up? On Wed, Apr 17, 2013 at 6:05 PM, Charles Moulliard ch0...@gmail.comwrote: Hi, When I try to instantiate an Excel Decision Table using Drools + Spring (kresource), I get this error : REMARK: the file is the same as we have in Drools Unit Test (decision-table) Error : Caused by: java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:75) at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:75) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:93) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:72) at org.drools.decisiontable.DecisionTableProviderImpl.compileStream(DecisionTableProviderImpl.java:37) at org.drools.decisiontable.DecisionTableProviderImpl.loadFromInputStream(DecisionTableProviderImpl.java:20) at org.drools.compiler.compiler.DecisionTableFactory.loadFromInputStream(DecisionTableFactory.java:15) at org.drools.compiler.compiler.PackageBuilder.decisionTableToPackageDescr(PackageBuilder.java:460) at org.drools.compiler.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:454) at org.drools.compiler.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:684) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40) at org.drools.container.spring.beans.KnowledgeBaseBeanFactory.afterPropertiesSet(KnowledgeBaseBeanFactory.java:110) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) Config : ?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:drools=http://drools.org/schema/drools-spring; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd; drools:grid-node id=node1/ drools:kbase id=kbase1 node=node1 drools:configuration drools:mbeans enabled=true/ /drools:configuration drools:resources drools:resource type=DTABLE source=classpath:data/IntegrationExampleTest.xls/ /drools:resources /drools:kbase drools:ksession id=ksession1 type=stateless name=ksession1 kbase=kbase1 node=node1/ /beans Regards, -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Strange error using Drools + Spring + DecisionTable
Great! Good luck! On Wed, Apr 17, 2013 at 6:53 PM, Charles Moulliard ch0...@gmail.com wrote: Know the reason. Maven when it copy it to the target directory modifies it. Will investigate why. On Wed, Apr 17, 2013 at 11:46 PM, Charles Moulliard ch0...@gmail.comwrote: if i change the name (file tobe loaded) then it fails Caused by: java.io.FileNotFoundException: 'data/IntegrationExampleTesti.xls' cannot be opened because it does not exist at org.drools.core.io.impl.ClassPathResource.getURL(ClassPathResource.java:168) at org.drools.core.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:180) On Wed, Apr 17, 2013 at 11:44 PM, Mauricio Salatino sala...@gmail.comwrote: Can you try pointing to a non existing location? to see if you get the same error? On Wed, Apr 17, 2013 at 6:30 PM, Charles Moulliard ch0...@gmail.comwrote: As the file exists under target/classes directory, that should be the case /target/classes/data/IntegrationExampleTest.xls On Wed, Apr 17, 2013 at 11:11 PM, Mauricio Salatino sala...@gmail.comwrote: It could be related with the location of the file: classpath:data/ IntegrationExampleTest.xls Are you sure that the file is being picked up? On Wed, Apr 17, 2013 at 6:05 PM, Charles Moulliard ch0...@gmail.comwrote: Hi, When I try to instantiate an Excel Decision Table using Drools + Spring (kresource), I get this error : REMARK: the file is the same as we have in Drools Unit Test (decision-table) Error : Caused by: java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:75) at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:75) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:93) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:72) at org.drools.decisiontable.DecisionTableProviderImpl.compileStream(DecisionTableProviderImpl.java:37) at org.drools.decisiontable.DecisionTableProviderImpl.loadFromInputStream(DecisionTableProviderImpl.java:20) at org.drools.compiler.compiler.DecisionTableFactory.loadFromInputStream(DecisionTableFactory.java:15) at org.drools.compiler.compiler.PackageBuilder.decisionTableToPackageDescr(PackageBuilder.java:460) at org.drools.compiler.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:454) at org.drools.compiler.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:684) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40) at org.drools.container.spring.beans.KnowledgeBaseBeanFactory.afterPropertiesSet(KnowledgeBaseBeanFactory.java:110) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) Config : ?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:drools=http://drools.org/schema/drools-spring; xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd; drools:grid-node id=node1/ drools:kbase id=kbase1 node=node1 drools:configuration drools:mbeans enabled=true/ /drools:configuration drools:resources drools:resource type=DTABLE source=classpath:data/IntegrationExampleTest.xls/ /drools:resources /drools:kbase drools:ksession id=ksession1 type=stateless name=ksession1 kbase=kbase1 node=node1/ /beans Regards, -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
Re: [rules-users] Strange error using Drools + Spring + DecisionTable
If you place the xls file inside src/main/resources it should be picked up for both, the test and the spring configuration On Wed, Apr 17, 2013 at 7:13 PM, Mauricio Salatino sala...@gmail.comwrote: Great! Good luck! On Wed, Apr 17, 2013 at 6:53 PM, Charles Moulliard ch0...@gmail.comwrote: Know the reason. Maven when it copy it to the target directory modifies it. Will investigate why. On Wed, Apr 17, 2013 at 11:46 PM, Charles Moulliard ch0...@gmail.comwrote: if i change the name (file tobe loaded) then it fails Caused by: java.io.FileNotFoundException: 'data/IntegrationExampleTesti.xls' cannot be opened because it does not exist at org.drools.core.io.impl.ClassPathResource.getURL(ClassPathResource.java:168) at org.drools.core.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:180) On Wed, Apr 17, 2013 at 11:44 PM, Mauricio Salatino sala...@gmail.comwrote: Can you try pointing to a non existing location? to see if you get the same error? On Wed, Apr 17, 2013 at 6:30 PM, Charles Moulliard ch0...@gmail.comwrote: As the file exists under target/classes directory, that should be the case /target/classes/data/IntegrationExampleTest.xls On Wed, Apr 17, 2013 at 11:11 PM, Mauricio Salatino sala...@gmail.com wrote: It could be related with the location of the file: classpath:data/ IntegrationExampleTest.xls Are you sure that the file is being picked up? On Wed, Apr 17, 2013 at 6:05 PM, Charles Moulliard ch0...@gmail.comwrote: Hi, When I try to instantiate an Excel Decision Table using Drools + Spring (kresource), I get this error : REMARK: the file is the same as we have in Drools Unit Test (decision-table) Error : Caused by: java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:75) at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:75) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:93) at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:72) at org.drools.decisiontable.DecisionTableProviderImpl.compileStream(DecisionTableProviderImpl.java:37) at org.drools.decisiontable.DecisionTableProviderImpl.loadFromInputStream(DecisionTableProviderImpl.java:20) at org.drools.compiler.compiler.DecisionTableFactory.loadFromInputStream(DecisionTableFactory.java:15) at org.drools.compiler.compiler.PackageBuilder.decisionTableToPackageDescr(PackageBuilder.java:460) at org.drools.compiler.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:454) at org.drools.compiler.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:684) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51) at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40) at org.drools.container.spring.beans.KnowledgeBaseBeanFactory.afterPropertiesSet(KnowledgeBaseBeanFactory.java:110) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) Config : ?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:drools=http://drools.org/schema/drools-spring; xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd; drools:grid-node id=node1/ drools:kbase id=kbase1 node=node1 drools:configuration drools:mbeans enabled=true/ /drools:configuration drools:resources drools:resource type=DTABLE source=classpath:data/IntegrationExampleTest.xls/ /drools:resources /drools:kbase drools:ksession id=ksession1 type=stateless name=ksession1 kbase=kbase1 node=node1/ /beans Regards, -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https
Re: [rules-users] How to count the number of events that happened in the last X minutes and fire if is greater than Y
Hi Adrian, nice to see you here, you can do something like: Number(intValue Y ) from accumulate ( $e: MyEvent() over window:time(x m), sum($e)) On Mon, Apr 15, 2013 at 1:26 PM, Adrián Paredes adri...@epidataconsulting.com wrote: People, I'm new at Drools Fusion and I found a problem when I'm tryin to implement a Rule. I need to count the number of events that happened in the last X minutes, and fire the rule if the count is greater than Y. When I use window:time(Xm), each event slide the window, and does not help. ¿What should I do to solve my problem? Thx in advance. Regards. -- *Epidata Consulting | Deploying Ideas Ing. Adrián M. Paredes | Arquitecto Desarrollador adri...@epidataconsulting.com | Cel: (54911) 3297 1713 Argentina: Maipú 521 Piso 7 | Buenos Aires | Of: (5411) 5031 0060 Chile: Apoquindo 3600 Piso 7 y 9 | Las Condes - Santiago | Of: (+56) 2 495 8450 --- www.epidataconsulting.com Linkedin http://bit.ly/epidatalinkedin | Facebookhttp://www.facebook.com/epidata.consulting | Twitter http://twitter.com/epidata * ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Shared Facts across nodes
Hi Mauro, At this moment you can't share the session state between multiple nodes. You can replicate your sessions in different nodes. Which means that two or more nodes will contain the same set of facts. Drools Grid was an experiment, so I don't recommend you going on that direction. On Thu, Apr 4, 2013 at 5:02 PM, mauro mdurant...@gmail.com wrote: Hello all, After searching the web and Drools forums for a couple of days, I couldn't find a solution to the problem I've got to solve. Anyway, if there's a thread pointing at the same problem, I apologize and please, let me know where it is. My current scenario involves a Drools cluster and demands high availability and scalability of nodes. I have to provide a pool of rules (Guvnor should easily handle that) and a set of servers to process facts against those rules. This is where I'm stuck at. I need to make sure all generated facts are shared across drools servers at the time they get into the cluster. In other words, what I need is a kind of shared (and persistent) session, and this session should contain unique facts, so the nodes don't waste time processing what has already been processed by another node. Also, session response time is critical. Since I'm new to the Drools world, maybe I'm missing some important aspects here, however, as far as I understood, Drools should be able to supply my requirements. Already read about Drools-Grid (Is it still alive? Being developed? Reliable?) and JBoss Infinispan. Both seem to help on solving this requirement, but I'm not sure whether they're the correct tools to attach to the arch and get to the solution. Moreover, I have to make sure an instance of Guvnor can share rules with other instances being queried by the Drools servers. How can I solve the problems? Thank you in advance, Mauro -- View this message in context: http://drools.46999.n3.nabble.com/Shared-Facts-across-nodes-tp4023210.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.com http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Expert Systems and Functional programming?
I usually try to attend RuleML meet ups and Intellifest (ex October Rules Fest) there you meet all the Expert System community. Cheers On Fri, Mar 15, 2013 at 5:43 PM, Grant Rettke gret...@acm.org wrote: Who are the primary researchers of expert-systems today? On Tue, Mar 12, 2013 at 8:21 PM, Mark Proctor mproc...@codehaus.org wrote: Actually Pamela is one of the papers I've been trying to track down, can't get it on the internet any more. As I first saw it referenced in Production matching for large learning systems. You don't by chance have the paper still? Barachini, F. (1991) The evolution of PAMELA. Expert Systems, 8(2):87-98 I'm building up a collection of relevant research papers, over at mendelay. That is one of my missing papers, that I've been unable to track: http://www.mendeley.com/groups/2918061/rule-systems/papers/ Mark On 12 Mar 2013, at 18:28, Wolfgang Laun wolfgang.l...@gmail.com wrote: Mark, no, the system I'm talking about is PAMELA, developed here in Vienna. You may find references to papers citing PAMELA, authored by F.Barachini and N.Theuretzbacher (one is referenced in the thesis you quoted, see [13]), but I doubt that you'l find one of the papers on the web. It was pre-internet days way back then :-) If you could produce an RBS ranking based on rules fired in production, I think that PAMELA would be in an excellent position. There's a three-digit number of installations by now, but they're running 24/7. -W On 12/03/2013, Mark Proctor mproc...@codehaus.org wrote: OPS83? http://repository.cmu.edu/cgi/viewcontent.cgi?article=2478context=compsci or YES/L1? (seems information on this is out of print and not online either) http://www.amazon.com/dp/B00070YQSU/ref=r_soa_w_d YES/L1: Integrating expert systems technology with traditional programming languages (Research Report RC. International Business Machines Inc. Research Division) I definitely find linq interesting, as it's straight out of the research pages from these projects - I wonder if the linq/database propel know about these... The first time I saw it was in this paper procedural match augments data-driven match http://www.aaai.org/Papers/AAAI/1986/AAAI86-037.pdf They move the lhs logic into the consequence block, using the actual when part as a simple goal trigger - allowing the 'lhs' to be used procedurally, like linq. This allows them to control when a rule is evaluated and that it's evaluation is atomic, and can have cleanup work done. Mark On 12 Mar 2013, at 06:04, Wolfgang Laun wolfgang.l...@gmail.com wrote: Indeed, this thesis mentions a few features of the system I was talking about :-) ([13]) -W On 11/03/2013, Mark Proctor mproc...@codehaus.org wrote: There were a number of research efforts that looked at combining procedural and rule base programming. This one is quite interesting: Combining Rule-Based and Procedural Programming in the XC and XE Programming Lanaugages http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.9.1106rep=rep1type=pdf Mark On 11 Mar 2013, at 18:03, Wolfgang Laun wolfgang.l...@gmail.com wrote: On 11 March 2013 16:19, Mark Proctor mproc...@codehaus.org wrote: So thinking really long term here. Can we build a java layer that provide all the rule functionality we need - but fit ontop of the java language neatly. We'd probably need to allow rule keyword and have it in Classes, at the method level. All class members and methods would be available to the rules in that class. There is this production rule system where you can write your rules embedded in compiling units, and alongside the legacy program units, of a procedural, modular, strongly type HLL, and where you use expressions in the language's own syntax in constraints... We've been using it ever since 1986. Rabbi Akiva was right, wasn't he ;-) -W ___ 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 ___ 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 ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Grant Rettke | ACM, AMA, COG, IEEE gret...@acm.org | http://www.wisdomandwonder.com/ Wisdom begins in wonder. ((λ (x) (x x)) (λ (x) (x x)))
Re: [rules-users] Web services and Drools
You can also take advantage of the Drools and Camel integration. Apache Camel is an integration framework that does exactly that, expose the services via different transports. Cheers On Mon, Jan 14, 2013 at 3:00 PM, Stephen Masters stephen.mast...@me.comwrote: Personally, I use the Spring framework to provide SOAP (and REST) web services to other applications. It's relatively simple to set it up and I'm fond of the contract-first approach which it encourages. With regards integration with Drools, it's easy enough in Spring. You just need to create a Spring bean to act as the interface to your knowledge base. That way, Spring ensures that you have only one knowledge base instance in play, so it is configured and compiled when the application starts. I'd be happy to answer any Spring/Drools integration questions (I don;t tend to use other web frameworks), and I can provide some code examples if Spring is the way you wish to go. Steve On 14 Jan 2013, at 13:50, riri irina.a...@gmail.com wrote: Hello everyone, I need to develop a web application that includes Drools as its rule engine and would like to expose its functionality as web services. I would appreciate some expert opinion on which framework would be easiest to learn and to work with. Some of the posts I have seen regarding Drools and OSGi refer to it as a nightmare. Is that still true with the current version? If anyone has had any experience with Spring, EJB or other and would like to share I would be very interested since I am new to this domain. If there is a case to be made about not using a framework at all then I would also like to hear you out. Best regards, -- View this message in context: http://drools.46999.n3.nabble.com/Web-services-and-Drools-tp4021509.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools + Semantic Web : EulerGUI
If you do that it will be great.. so we can both attend to each others meetup. I'm really interested in the EulerGUI tool, I've being looking at it since it started Cheers On Fri, Dec 7, 2012 at 1:40 PM, Jean-Marc Vanel jeanmarc.va...@gmail.comwrote: It's too bad indeed ! I've looked for a rules, BPMS, inference, IA, Meetup in London, but found none . I can be here longer. I may move my meeup to attend yours. JMV 2012/12/7 Mauricio Salatino sala...@gmail.com Hi Jean-Marc, Ouch! I will be doing a jBPM5 and Drools talk at the same time the same day in the same city! I would love to go and see your talk, I guess that I will miss that this time. Are you going to be around later this week? we can probably arrange to meet. Is the content of the talk gonna be published online somewhere? On Fri, Dec 7, 2012 at 12:53 PM, Jean-Marc Vanel jeanmarc.va...@gmail.com wrote: Hi London Drools users ! I come to London. I'm available for a talk about what I do with Drools + Semantic Web + Controlled English with EulerGUI [1]. I've set a Meetup in London on dec. 12, in need of a location : http://www.meetup.com/LondonSWGroup/events/94447932/ First I'll be in Oxford from today to tuesday at AGI (Artificial General Intelligence) conference [2] . The thread for me there will be how can an agent learn from its experience? . [1] http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L5890 [2] http://agi-conference.org/2012/ [3] http://www.meetup.com/LondonSWGroup/events/94447932/ -- Jean-Marc Vanel DĂ©ductions SARL - Consulting, services, training, Rule-based programming, Semantic Web http://deductions-software.com/ +33 (0)6 89 16 29 52 chat : irc://irc.freenode.net#eulergui ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Jean-Marc Vanel DĂ©ductions SARL - Consulting, services, training, Rule-based programming, Semantic Web http://deductions-software.com/ +33 (0)6 89 16 29 52 chat : irc://irc.freenode.net#eulergui ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] A basic doubt about Drools Fusion
There should be a listener for afterActivationCreated, right? On Fri, Dec 7, 2012 at 3:16 PM, Esteban Aliverti esteban.alive...@gmail.com wrote: I think you have 2 main options here: - Invoke fireUnitlHalt() in an independent thread. - Invoke fireAllRules() after each insert() you have. Best Regards, Esteban Aliverti - Blog @ http://ilesteban.wordpress.com On Fri, Dec 7, 2012 at 3:57 PM, Adrián Paredes adri...@epidataconsulting.com wrote: Thank you, Esteban. You are right! If I insert two events A: rulesTest.addEventA(123); rulesTest.addEventA(456); The second call of fireAllRules() activates the rule for the first object: Event inserted com.epidataconsulting.drools.model.EventA Event A 123 at Fri Dec 07 11:54:21 ART 2012 Event inserted com.epidataconsulting.drools.model.EventA But not for the second. How I can do to correct this behavior? Thanks! Adrian 2012/12/7 Esteban Aliverti esteban.alive...@gmail.com It could be the case, and I'm guessing here, that the AgendaEventListener is called just before the activation is placed into the agenda. So, the call to fireAllRules() finds an empty agenda. What you could do to check if this is what is happening, is to insert 2 EvenA objects. The second call of fireAllRules() should fire the activation of the first object (and you will miss the activation of the second). Best Regards, Esteban Aliverti - Blog @ http://ilesteban.wordpress.com On Fri, Dec 7, 2012 at 1:55 PM, Adrián Paredes adri...@epidataconsulting.com wrote: Hi all: I have a very basic doubt about Drools Fusion. I have two simple Java classes: EventA { String id; Date timestamp; Long duration; } EventB { String id; Date timestamp; Long duration; } I have a DRL file, where I declare this two classes as Events: declare EventA @role(event) @timestamp(timestamp) @duration(duration) end declare EventB @role(event) @timestamp(timestamp) @duration(duration) end I have a simple rule: rule Basic Rule dialect 'mvel' when $eventA: EventA($aId: id) from entry-point time stream then System.out.println(Event A + $aId + at + $eventA.timestamp); end Finally, I have a test that starts a StatefulKnowledgeSession in STREAM mode, register an eventLister in the session in order to fire the rules when an event arrives: ksession.addEventListener(new DefaultAgendaEventListener() { @Override public void activationCreated(ActivationCreatedEvent event) { ((StatefulKnowledgeSession) event.getKnowledgeRuntime()).fireAllRules(); } }); And then the test insert in the time stream entry-point an instance of EventA with duration of 10 miliseconds, as follows: EventA eventA = new EventA(); eventA.setId(123); eventA.setTimestamp(new Date()); eventA.setDuration(10L); ksession.getWorkingMemoryEntryPoint(time stream).insert(event); At the end of the test, I have an sleep of 2 seconds just in case. I don't understand why the Basic Rule never fires. But if I add another condition to the same rule, something like this: rule Basic Rule dialect 'mvel' when $eventA: EventA($aId: id) from entry-point time stream not EventB($aId == id, this after [0s,5s] $eventA) from entry-point time stream then System.out.println(Event A + $aId + at + $eventA.timestamp); end The rules fires and I see this message in console: Event A 123 at Fri Dec 07 09:48:59 ART 2012 I don't understand why the first rule, that is more open, don't fire, and the second rule, that is more restrictive, fires without problems. Thank you very much! Greetings, Adrian. -- *Epidata Consulting | Deploying Ideas Ing. Adrián M. Paredes | Arquitecto Desarrollador adri...@epidataconsulting.com | Cel: (54911) 3297 1713 Argentina: Maipú 521 Piso 1 Of. A | Buenos Aires | Of: (5411) 5031 0060 Chile: Apoquindo 3600 Piso 7 y 9 | Las Condes - Santiago | Of: (+56) 2 495 8450 --- www.epidataconsulting.com Linkedin http://bit.ly/epidatalinkedin | Facebookhttp://www.facebook.com/epidata.consulting | Twitter http://twitter.com/epidata * ___ 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 -- *Epidata Consulting | Deploying Ideas Ing. Adrián M. Paredes | Arquitecto Desarrollador adri...@epidataconsulting.com | Cel: (54911) 3297 1713
Re: [rules-users] Setting value in LHS for access in RHS
Hi Steve, Can you please gives us an example about what are you trying to achieve? Setting a variable in the LHS doesn't make sense for the common use cases. What we usually do is to bind a variable to a field from our facts, but that's it. Cheers On Fri, Nov 30, 2012 at 2:10 PM, Stephen Masters stephen.mast...@me.comwrote: Stephen Masters stephen.mast...@me.com wrote: Hi folks, I'm trying to set up rules where the RHS is able to refer to a value set in the LHS so that it can perform its logics slightly differently. I'm able to use $var to pick out fields from facts in working memory. However as far as I can tell I'm not able to set a new value. I'm setting up a DSL to drive guided rules in guvnor and in the RHS I need to know which value was picked from a drop down list in the LHS. Cheers Steve ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Setting value in LHS for access in RHS
So, what's the problem with that approach? You are binding a variable in the LHS and using it in the RHS, that should work as expected. If you make that variable change, let's say use different strings or enums for the exposure type you should be fine. Cheers On Fri, Nov 30, 2012 at 3:08 PM, Stephen Masters stephen.mast...@me.comwrote: Apologies for the overly brief explanation ... am at a bank where only internet access is on my phone. Additional apologies if I suffer from auto-correct errors. :) [condition][] validate {exposureType:ENUM:exposure types} = AccountExposure($exp : {exposure type}); [consequence][] Create limit check = insert(new LimitCheck($exp); Now, dependent on what exposure type I select, I need to use a different value to perform conversions between amounts and percentages. So it would keep things clean if I could pass the property name selected in the LHS to the object inserted on the RHS. I could do it by having different DSL phrases for consequences, but my audience is very non technical so I'm trying to keep the language as minimal as possible. Hope that explains it! Steve Mauricio Salatino sala...@gmail.com wrote: Hi Steve, Can you please gives us an example about what are you trying to achieve? Setting a variable in the LHS doesn't make sense for the common use cases. What we usually do is to bind a variable to a field from our facts, but that's it. Cheers On Fri, Nov 30, 2012 at 2:10 PM, Stephen Masters stephen.mast...@me.comwrote: Stephen Masters stephen.mast...@me.com wrote: Hi folks, I'm trying to set up rules where the RHS is able to refer to a value set in the LHS so that it can perform its logics slightly differently. I'm able to use $var to pick out fields from facts in working memory. However as far as I can tell I'm not able to set a new value. I'm setting up a DSL to drive guided rules in guvnor and in the RHS I need to know which value was picked from a drop down list in the LHS. Cheers Steve ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] persistence packages in jbpm and drools
Hi Ricardo, Yes you can store the Drools working memory / knowledge session into a persistence storage to restore the previous state later. The same mechanisms are used for Processes. You will see that jbpm-persistence-jpa contains a dependency to the drools-persistence-jpa which contains the generic mechanisms. Inside jbpm-persistnece-jpa you will find the entities related with the processes that will be persisted inside the persistence storage. Cheers On Thu, Nov 29, 2012 at 2:19 AM, Ricardo sprabak...@gmail.com wrote: is any one interested to explain the jbpm-persistence Vs drools persistence? are we persist any thing in drools if so why?please let me knowthanks lot I am just started to browse those package source code:)...If I find the right answer I will post it... - with kind regards, -- View this message in context: http://drools.46999.n3.nabble.com/persistence-packages-in-jbpm-and-drools-tp4020999.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] jBPM5 Developer Guide Official Presentation in London
Hi Cedric, you were always a good community supporter. I appreciate the support, thank you for that! Are you around London during December? that will be a good opportunity to meet. Cheers On Thu, Nov 29, 2012 at 10:43 PM, Cedric Hurst ced...@spantree.net wrote: Spectacular! this book has been very highly anticipated by my team, clients and myself for a bit now and on behalf of all of us we appreciate all of your hard work (and that of packt and editors) in putting this out in the world. It's moved straight to the top of my weekend reading list. Sent from my iPhone On Nov 29, 2012, at 3:33 PM, Mauricio Salatino sala...@gmail.com wrote: Hi everyone, First of all sorry for cross posting, but as you may know jBPM5 and Drools are two very related projects. I just want to invite you all to a talk that Esteban Aliverti and myself will be giving about the jBPM5 Developer Guide ( http://www.amazon.co.uk/jBPM-Developer-Guide-Salatino-Mauricio/dp/1849516448/ref=sr_1_1?ie=UTF8qid=1354224720sr=8-1), a book about jBPM and it's relationship with Drools. The presentation will take place in London, so if you are around make sure to register in the meetup page: http://www.meetup.com/JBoss-User-Group/events/85267232/ Feel free to invite your friends and drop us a line to hang around before or after the presentation. Cheers -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools response time
Hi Jesus, Well do you want us to include the response time for your Database? The Drools Rule engine will keep all your facts inside the main memory (RAM) so it will be fast, but if you need to retrieve data from your database, you will need to take that into account. Depending on how you are doing that and how much data do you want to bring will be the response times. Cheers On Tue, Nov 27, 2012 at 3:06 PM, elMateo soyelma...@gmail.com wrote: Dear all, I need to develop an Expert System for a new project and I want to use Drools, butI have some restrictions. The most important restriction: response time of the application must be less than one second. Also, the application access to one data base to retrieve some information and send it to the expert systetm. With this information, can anyone tell me, approximately, the response time of Drools? It is very important to can use Drools in this project. And we like very much to use it. (We use in other projects without these restrictions). Thank in advance. Best regards, JesĂşs. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] drools grid or other high availability solution?
Hi Justin, We are working on it, drools-grid was an experimental project to start the design. We also have the Drools Server using camel, and we will continue the development of the remoting APIs, probably after the next release. Cheers On Fri, Nov 9, 2012 at 5:21 PM, Justin Case send_lotsa_spam_h...@yahoo.comwrote: Not even a single idea? :( JC - Original Message - From: Justin Case send_lotsa_spam_h...@yahoo.com To: rules-users@lists.jboss.org rules-users@lists.jboss.org Cc: Sent: Wednesday, November 7, 2012 3:33 PM Subject: [rules-users] drools grid or other high availability solution? Hello all, I noticed there's not much fuss about drools-grid (anymore?). Is there something still going on there? Is it recommendable for something reliable? Or if not, do you have any hints/links/experience on how to achieve a certain high availability level with DRools servers? Many thanks, JC ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] drools grid or other high availability solution?
No Problem Justin, Let us know if you have any trouble! On Fri, Nov 9, 2012 at 10:54 PM, Justin Case send_lotsa_spam_h...@yahoo.com wrote: D'uh how could I have missed that. You're so right, I will check with Camel. Thank you Mauricio! JC -- *From:* Mauricio Salatino sala...@gmail.com *To:* Justin Case send_lotsa_spam_h...@yahoo.com; Rules Users List rules-users@lists.jboss.org *Sent:* Friday, November 9, 2012 6:35 PM *Subject:* Re: [rules-users] drools grid or other high availability solution? Hi Justin, We are working on it, drools-grid was an experimental project to start the design. We also have the Drools Server using camel, and we will continue the development of the remoting APIs, probably after the next release. Cheers ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Is Flow / jBPM dying on the vine?
Yes, your scenario is a good scenario for Drools and JBPM. What you can do is to describe a set of rules to handle the events and those rules can trigger processes. In that way your process definitions will be smaller and you will be able to handle with rules the correlation of the events. Cheers On Thu, Nov 8, 2012 at 7:19 PM, dunnlow dunn...@yahoo.com wrote: Thank you for the information / update. I notice that almost all of the examples that I find are user task based (or more specifically, NOT event-based, which is my use case). I am planning to inform a process largely (but not entirely) with events. Short of having a signal and gateway for every node, I don't see a way of make a jBPM process event based (ie pausing at nodes until certain events/rules are satisfied). Is this not a good use case for jBPM? -- salaboy, I'll be waiting anxiously for that book ;-) Thanks again. -J -- View this message in context: http://drools.46999.n3.nabble.com/Is-Flow-jBPM-dying-on-the-vine-tp4020738p4020764.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Is Flow / jBPM dying on the vine?
Hi J, Yes kind the opposite, we are full speed working and the team is getting bigger and bigger. My book is going out in one month and as you can imagine it takes time to write and a lot of effort. Write now it's getting reviewed by the editorial and it will be released early December. Feel free to ask more specific questions, but you will definitely see a release in the next following days. Cheers On Wed, Nov 7, 2012 at 7:33 PM, dunnlow dunn...@yahoo.com wrote: Hi, I am considering using drools with Flow/jBPM as an integral part of a corporate solution. However, it seems to me like the project is dying on the vine. I understand the code is still being worked but overall interest seems to be waning; evidenced by things like, a (...the) jBPM 5 book due two months ago is still MIA. No blog posts on the project for six weeks. I don't mean to bash jBPM, but am just worried about it's future. I suppose the Flow/jBPM merge is irreversible? Any thoughts? Is anyone using another BPM system with drools? Thanks, -J -- View this message in context: http://drools.46999.n3.nabble.com/Is-Flow-jBPM-dying-on-the-vine-tp4020738.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Leveraging Drools project in JBPM workflow
I've wrote a set of articles about the subject: http://salaboy.com/2012/07/29/processes-rules-or-rules-processes-3x/ Follow the links to the previous ones. I suggest you to read them in order. The README file inside this repository: https://github.com/Salaboy/jBPM5-Developer-Guide/tree/master/chapter_09 Explains the test provided. Cheers On Mon, Nov 5, 2012 at 10:38 AM, amit amit.aggar...@pb.com wrote: Hi, Can you please provide some high level guidelines how I can use a Drools Rules Project created in Eclipse in jbpm workflow. Any pointers or high level guideline will be useful. -- View this message in context: http://drools.46999.n3.nabble.com/Leveraging-Drools-project-in-JBPM-workflow-tp4020691.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Task Handler blocking
Hi Alberto, yes you can, the only thing that you need to do is deal with those I/O blocking operations as external and Async Tasks. Instead of making your Task sync (which will block by definition until your operations are done) just make them async by removing the completeWorkItem() method call from inside the workItemHandler. Then when you I/O's are done, you will need to call the completeWorkItem using ksession.getWorkItemManager().completeWorkItem() method. Cheers On Wed, Oct 17, 2012 at 1:35 PM, Alberto R. Galdo arga...@gmail.com wrote: Hi All, We have an application where we are using JBPM for our processes. In our application there's a strong requirement to maintain the same KnowledgeSession between restarts even though that we are not using rules at all, just BPMN 2.0 processes ( we are aware that JBPM needs it to maintain process state, workitem state and so on ... but don't need neither rules nor ReteOO loops in our app ). Now we got to the tricky task handling part, were we have several handlers that depend on I/O which blocks the entire execution of the processes. And just because all our application depends on the *same* shared stored knowledge session, all our other parallel processes that need to execute processes are waiting ( like in a queue ) for the I/O to finish and execute themselves whenever the execution of JBPM gets blocked by I/O. We've tried to execute our handlers in different threads, but as we are running inside a persisted environment JBPM looses the JTA transaction as it is not bound to the current thread. Seems not a solution. We tried then to implement thread communication mechanisms, yield() and notify() and just made the problem worse. Any insights on the subject? How can we execute parallel non-blocking processes inside a shared and persisted KnowlegdeSession with JBPM? Greets, Alberto R. Galdo arga...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] UderFire
Hi Anton, As soon as the framework gets officially announced I will publish a couple tutorials about how to make simple hello worlds applications. In the mean time you can take a look at the uberfire-showcase project, which is a sample application demonstrating how to create an application that uses the framework. Cheers On Mon, Sep 24, 2012 at 7:10 PM, Anton Nikulin antonni...@gmail.com wrote: Hello I'm interested in your new UderFire project. Please, could you give me a brief description of its features, opportunities. I've downloaded sources from https://github.com/droolsjbpm/uberfire, could you help me how can i test it and make something like a simple example using it? Thanks, Anton. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] UderFire
I don't know right now the exact date, but I'm expecting to be any time soon. Cheers On Mon, Sep 24, 2012 at 7:27 PM, Anton Nikulin antonni...@gmail.com wrote: Thanks, Mauricio Can you tell me when UbetFire will be officially announced? Regards, Anton. 2012/9/25 Mauricio Salatino sala...@gmail.com: Hi Anton, As soon as the framework gets officially announced I will publish a couple tutorials about how to make simple hello worlds applications. In the mean time you can take a look at the uberfire-showcase project, which is a sample application demonstrating how to create an application that uses the framework. Cheers On Mon, Sep 24, 2012 at 7:10 PM, Anton Nikulin antonni...@gmail.com wrote: Hello I'm interested in your new UderFire project. Please, could you give me a brief description of its features, opportunities. I've downloaded sources from https://github.com/droolsjbpm/uberfire, could you help me how can i test it and make something like a simple example using it? Thanks, Anton. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Call a Process from a Rule
Hi, A lot of questions in the same email about different subjects! :) Yes you can start a process inside the Right Hand Side of a Rule using: kcontext.getKnowledgeRuntime().startProcess(here goes the process id, here the parameters) For running a rule every two days you will need to use timers, please refer to the official documentation. Cheers On Mon, Sep 3, 2012 at 4:48 PM, Sadiroveski sadiro...@hotmail.com wrote: Hello, Is there a way to initiate a process based on a rule? So if the rule is fired, a process will be initiated. If this could be happened, how about pass arguments/variables to the process from this rule? is it possible too? Also, how can we set a rule to run every 2 days? thanks in advance, -- View this message in context: http://drools.46999.n3.nabble.com/Call-a-Process-from-a-Rule-tp4019556.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Call a Process from a Rule
Hi there, thanks for the interest in the book, it is now in technical revision phase, there is nothing more that I can do to speed it up. Cheers On Mon, Sep 3, 2012 at 5:09 PM, Sadiroveski sadiro...@hotmail.com wrote: Thanks Salaboy, You are right, but the problem is that Still Have Thousands of Questions and I am trying to prevent asking before reading reading reading. BTW, where is your book. It was supposed to be in August and now PacketHub mentioned that will be published in December. Anyway, good luck for that and thanks for your answers. More questions will be asked from now till December -- View this message in context: http://drools.46999.n3.nabble.com/Call-a-Process-from-a-Rule-tp4019556p4019560.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] fireUntilHalt() is halt forever
Hi, yes if you use : drools.halt(); that will stop the session. What exactly do you want to achieve with that? Cheers On Wed, Aug 15, 2012 at 5:49 PM, Rana ven12...@yahoo.com wrote: Hi my rule file is halt for ever. Can anybody tell me why. I debugged and saw that it is going into this method in DefaultAgenda.class public void fireUntilHalt(final AgendaFilter agendaFilter) { synchronized ( this.halt ) { if( !this.halt.get() ) this.halt.wait(); //it is halt here and waiting. } this is my rule file. http://drools.46999.n3.nabble.com/file/n4019146/rule_file.txtrule_file.txt Please help me out. Thanks. -- View this message in context: http://drools.46999.n3.nabble.com/fireUntilHalt-is-halt-forever-tp4019146.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Workitems doesn't get persisted when completing a task after rehydrating a knowledge session is some circumstances.
Hi Alberto, I'm not upset, kind the opposite. I'm sorry if my comments sounds harsh. I was making some assumptions based on my previous experience. My main point was, let's try to be concrete and let's work on code and failing tests. I know that is not trivial, but if we want to make the project better for everyone I think that's the only way to go. I'm keeping my mind open and I think that we all here are open to discussions, but lets discuss based on concrete proposals. If we don't go that way, this conversation will become cyclic and we will all loose time instead of being fixing bugs and adding new features :) On Tue, Jun 26, 2012 at 5:43 AM, Alberto R. Galdo arga...@gmail.com wrote: Mauricio, seems to me that you're upset. I'm really sorry, I didn't mean it. I didn't mean this thread to become a fud or some kind of rant. Comments inline: On Mon, Jun 25, 2012 at 1:36 PM, Mauricio Salatino sala...@gmail.comwrote: What I've noticed in the past, doing consulting is that people wants to migrate from jBPM3 that is almost stateless to jBPM5 and have everything inside a Stateful session with a richer context and expect that everything will work in the same way. If you run each of your process instances in different stateful sessions (with local ht) you will have something similar to what jBPM3 does, extremely reduced and isolated context. Now if you want to add Rules and Events into the mix you will need to learn how Rules and Events works and how they are mixed with processes inside the stateful session. You cannot expect that all those features and the mix works in the same way as jBPM3 (just a stateless process engine) works, right? That's offensive :(. You're making uninformed assumptions about our experiences with JBPM Drools, both isolated and mixed, and our expectatives for the migration of our system from JBPM v3 to v5. We obviously were expecting some changes and some bugs. We were definetly not expecting such, IMHO, hard issues with the execution of long-running processes when persistence configured just because how the approach for mixing Drools JBPM solution for persistence was done. This makes the system not fault tolerant, at least not without some pain and I agree in certain ( but not rare ) configurations. I've also notice that this is a step-by-step learning process, once you master BPMN2 and how process works inside the process engine you can move to Rules and then to Events, learning in the middle the technical and logical requirements of each of them. Most of the time the solution is understanding how the components interact and can be mixed. I know that this is difficult sometime, because of the diversity of the technologies that are being mixed here. If you can create a test that shows the problems that you are mentioning here, we can discuss why or why not this is a good or a wrong approach and find bugs in case that you find one. If you are in a hurry and you think that what you are trying to solve are problems, good luck with finding the tricks. OK, let's call this a bug. We believe in open source, that's why we chose Drools JBPM in favor of other privative solutions. Hey!, At least here we have the chance to hack the code for dirty tricks! ;-). We also believe in an open and honest discussion of issues like this in this kind of projects. As you may know making a test case that reflects the situation mentioned in this thread takes time, is far from trivial, we really are in a hurry and deadlines are aproaching. I personally assigned resources in my team for making such tests and will create issues in Jira when available. Cheers Let me finish quoting with one of your previous messages: Keep your mind open, because there is no single solution for all the problems, which I agree. On Mon, Jun 25, 2012 at 4:42 AM, Alberto R. Galdo arga...@gmail.comwrote: We're in a hurry now to make our system work, unfortunately seems that we will be doing dirty tricks as this one for some time ... we'll open an issue whenever a test can be produced ... We were running our system using JBPM 3 and both the integration and the persistence there were seamsly done. Our system has high availability constraints that forces us to be fault tolerant ( that includes running the human task server and process manager in different machines ) and when migrating to JBPM 5 we began to face ugly race conditions and rare transactional problems ... we honestly thought that must be our fault, that's why we opened this thread, just to check if someone had this problems and make ourselves wrong or found another solution. On Fri, Jun 22, 2012 at 3:03 PM, Mauricio Salatino sala...@gmail.comwrote: So, can you create an isolated test where you reproduce: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get
Re: [rules-users] Drools JBPM Persistence
Comments inline On Mon, Jun 25, 2012 at 4:31 AM, Alberto R. Galdo arga...@gmail.com wrote: What I'm pointing out is that at certain circumstances, such as when a human task is completed in a HT Server that connects to the execution context in JBPM ( we've tested this with Mina ), the execution of the JBPM process lives in the same thread as the one that receives the message ( a NIO Channel ) and this makes the persistence go wrong. Can you share an isolated test case for this one? But in our experience, this is not the only case where persistence can be wrong, there are others, such as when using Fusion events are involved with process instances in an persistent environment ... What kind of problems? If your stream of events is aggressive, your database will be the bottleneck, usually if you can use multiple sessions, one without persistence for Fusion and one with persistence for long running processes. If you have an isolated test that demonstrate which kind of problems you are having we can take a look and fix if there is a bug. That's why we thought that maybe another approach to persistence, now that Drools JBPM are tied, is needed. Cheers Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 3:05 PM, Mauricio Salatino sala...@gmail.comwrote: Drools and jBPM are being executed in the same thread, in your set up mina is not. Is that what are you pointing out? Did you really need to have mina in a separate JVM or you can use the Local Implementation? Cheers On Fri, Jun 22, 2012 at 10:00 AM, Alberto R. Galdo arga...@gmail.comwrote: I see your point, but IMHO that doesn't mean that in certain circumstances, when the process is being executed in a thread that it is no the same thread as the one in which drools is executing leads to a situation in which the persistence mechanisms are not enough to allow a fault tolerant JBPM for long-time running processes. As mentioned, there is at least one scenario, at least when mina is involved, where things are broken. Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:50 PM, Mauricio Salatino sala...@gmail.comwrote: I think that you are mixing things up. Did you take a look at the CommandBasedStatefulKnowledgeSession? Every command that represent an operation against the knowledge session is being executed inside a transaction, for both rules and processes. As soon as a safe point is found (for both processes and rules) the persistence mechanism commits the transaction. In fact, this will never dissapear unless some communication mechanism between Drools JBPM is developed to allow the processes to be executed inside Drools Reteoo thread. Take a look at the class that I mention and then try to explain me what you mean with the previous sentence. Cheers On Fri, Jun 22, 2012 at 9:45 AM, Alberto R. Galdo arga...@gmail.comwrote: No, I didn't. I need to be able to deploy the human task server and my knowledge session in separate JVM's. And Mina is on my way. The fact that I am able to do things in some other way doesn't make this very problem dissapear ... :(. In fact, this will never dissapear unless some communication mechanism between Drools JBPM is developed to allow the processes to be executed inside Drools Reteoo thread. Isn't that so? Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:17 PM, Mauricio Salatino sala...@gmail.comwrote: Both persistence mechanisms are already unified. the jBPM-persistence module extends the Drools one adding the relevant entities by the processes. You can be having problems with the Mina Server, did you try the local configuration? The Mina Server was designed to run in a different JVM than the session, as a standalone component, if you are running it in the same JVM that can be causing some transactional problems as you mention. If you need to run it in the same JVM you can use the local configuration, did you try that? Cheers On Fri, Jun 22, 2012 at 8:31 AM, Alberto R. Galdo arga...@gmail.comwrote: Hi, I'm opening this thread in the aim of generating a debate about the approach to session persistence in Drools and JBPM for BPMN processes which by definition are able to generate asynchronous human tasks. IMHO the current approach needs to be refactored in favor of joining the management of the different Drools and JBPM entities in an unique manager. The current implementation offers two managers one in Drools, one in JBPM. Each of this managers are wrappers of a shared JPA EntityManager context and manage their own entities. When the integration of JBPM into Drools was done ( leaving behind drools flow ), the approach seemed to be to make the entities in JBPM ( workitems, processinstance and so on ) look like the entities in Drools. As a result, the implementation of those entities in JBPM now implement the interfaces of the same entities in Drools
Re: [rules-users] Workitems doesn't get persisted when completing a task after rehydrating a knowledge session is some circumstances.
What I've noticed in the past, doing consulting is that people wants to migrate from jBPM3 that is almost stateless to jBPM5 and have everything inside a Stateful session with a richer context and expect that everything will work in the same way. If you run each of your process instances in different stateful sessions (with local ht) you will have something similar to what jBPM3 does, extremely reduced and isolated context. Now if you want to add Rules and Events into the mix you will need to learn how Rules and Events works and how they are mixed with processes inside the stateful session. You cannot expect that all those features and the mix works in the same way as jBPM3 (just a stateless process engine) works, right? I've also notice that this is a step-by-step learning process, once you master BPMN2 and how process works inside the process engine you can move to Rules and then to Events, learning in the middle the technical and logical requirements of each of them. Most of the time the solution is understanding how the components interact and can be mixed. I know that this is difficult sometime, because of the diversity of the technologies that are being mixed here. If you can create a test that shows the problems that you are mentioning here, we can discuss why or why not this is a good or a wrong approach and find bugs in case that you find one. If you are in a hurry and you think that what you are trying to solve are problems, good luck with finding the tricks. Cheers On Mon, Jun 25, 2012 at 4:42 AM, Alberto R. Galdo arga...@gmail.com wrote: We're in a hurry now to make our system work, unfortunately seems that we will be doing dirty tricks as this one for some time ... we'll open an issue whenever a test can be produced ... We were running our system using JBPM 3 and both the integration and the persistence there were seamsly done. Our system has high availability constraints that forces us to be fault tolerant ( that includes running the human task server and process manager in different machines ) and when migrating to JBPM 5 we began to face ugly race conditions and rare transactional problems ... we honestly thought that must be our fault, that's why we opened this thread, just to check if someone had this problems and make ourselves wrong or found another solution. On Fri, Jun 22, 2012 at 3:03 PM, Mauricio Salatino sala...@gmail.comwrote: So, can you create an isolated test where you reproduce: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task And I can take a look on that.. Please create Jira issue for that. Without a concrete situation it's very difficult to analyze.. Did you check your transactions not being rolledback.. That's the only situation where I think that the workItem information will not be persisted. Cheers On Fri, Jun 22, 2012 at 9:55 AM, Alberto R. Galdo arga...@gmail.comwrote: Sure, WorkItemHandlers are never persisted. I re-register those handlers before staring the session, just because I want my tasks to be properly executed. :( Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:46 PM, Mauricio Salatino sala...@gmail.comwrote: There are two concepts here: 1) WorkItem - Persist the state of the activity 2) WorkItemHandlers - Never Persisted Are you re-registering the WorkItemHandlers at rehydratation? WorkItemHandlers are part of the runtime status and don't get persisted. Cheers On Fri, Jun 22, 2012 at 9:39 AM, Alberto R. Galdo arga...@gmail.comwrote: No, I'm not registering pending workitems at rehydration. That's why I'm using Drools JBPM persistence ;-). I don't want to write my own state persistence, as I am a mere user of JBPM Drools services. They are never persisted This several methods in org.drools.persitence.jpa.JPAPersistenceContext seem to say just the opposite: public void persist(WorkItemInfo workItemInfo) public void remove(WorkItemInfo workItemInfo) public WorkItemInfo merge(WorkItemInfo workItemInfo) The fact that lots of workitems get created, persisted, merged and finally removed during the life of the process doesn't hide the fact that they're in fact, well, persisted. If you take a look at the changes in the database whenever a human task is involved in a BPMN process that is executed inside a Drools JBPM JPA persisted environment you will realize that indeed the human task are *persisted* and like so, rehydrated when loading the session in Drools. In fact, those human task related workitems are never removed from the database, but that's another bug ... :( Any insight? Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:15 PM, Mauricio Salatino sala...@gmail.comwrote: We are unable to complete a human task after rehydrating a Drools
Re: [rules-users] Workitems doesn't get persisted when completing a task after rehydrating a knowledge session is some circumstances.
We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task They are never persisted, they are runtime information that you must re-register after rehydrating the session. Are you doing that? Cheers On Fri, Jun 22, 2012 at 7:34 AM, Alberto R. Galdo arga...@gmail.com wrote: Hi, We have a fairly large BPMN process running inside a JPA persisted StatefulKnowledgeSession using Drools 5.4 JBPM 5.3. Our process involves timers, automated tasks, human tasks most of them are long-running processes, so a fault-tolerant scenario is a must. We've found what seems to be a weird, weird bug in JBPM-Drools regarding the execution of BPMN processes. This is by best to summarize the problem: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task So, as the workitem is not in the database, when a human task client completes a task that is related to that non-existent workitem, the process doesn't get restarted. And the process fails. ÂżWhy does this happens? Lets see: When the processs is executed, different workitems get created, updated and eventually deleted during the execution of a process up until a human task is created ( in our process ). When living in a persistet knowledge session, the transaction that is associated to Drools' thread is commited right after the human task is created in the human task server ... as it is a safe point. Nothing here. Everithing is consistent, if you look at the database you will see your session instance, your process instance, and the final human task workitem as it is the only workitem survivor after the execution ( whatever hadler-managed automated task that were executed before the human task are deleted and the human task workitem needs to survive as it's completion depends on asyncronous client interaction ). Now, if you connect to the human task server and complete that human task, a message is sent to the Drools session to update the state of the work item. The workitem gets updated, the process get restarted and the flow continues ... maybe generating a new human task ( which is our case ). At this very moment, if you take a look at the database, there are no automated-handled-task workitems ( as expected ) but there isn't any human task related work item, even worse, the task at the human task server is created, persisted and has a reference to the non-existant workitem. Days of debugging led us to what we think is the source of the problem: We found that the execution of the process after completing a task is being executed in the same thread as the one that receives the mina message that the human task server sends whenever a task is completed. This thread is not the same thread that executes the knowledgesession ( where the reteoo lives ) and so it doesn't have a transaction. By the way, we found that for workitem persistence the JPAWorkitemManager never joins an active transaction. :( That's why invoking the persistence of a workitem as a consequence of restarting the execution of a process inside the thread that receives the mina messages makes the database inconsistent, and so invalidating all means to make JBPM fault tolerant by making Drools session persistent. We found a way to circunvent this problem, making all our human task nodes be followed by a event timer. That way, when the timer gets completed we force the execution of the process to live in the same thread that the reteoo session lives where a transaction is available and things get back to normal. But this is really dirty and wrong. Any thoughts? We are really eager to be wrong whith this. :'( Greets, Alberto R. Galdo arga...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools JBPM Persistence
Both persistence mechanisms are already unified. the jBPM-persistence module extends the Drools one adding the relevant entities by the processes. You can be having problems with the Mina Server, did you try the local configuration? The Mina Server was designed to run in a different JVM than the session, as a standalone component, if you are running it in the same JVM that can be causing some transactional problems as you mention. If you need to run it in the same JVM you can use the local configuration, did you try that? Cheers On Fri, Jun 22, 2012 at 8:31 AM, Alberto R. Galdo arga...@gmail.com wrote: Hi, I'm opening this thread in the aim of generating a debate about the approach to session persistence in Drools and JBPM for BPMN processes which by definition are able to generate asynchronous human tasks. IMHO the current approach needs to be refactored in favor of joining the management of the different Drools and JBPM entities in an unique manager. The current implementation offers two managers one in Drools, one in JBPM. Each of this managers are wrappers of a shared JPA EntityManager context and manage their own entities. When the integration of JBPM into Drools was done ( leaving behind drools flow ), the approach seemed to be to make the entities in JBPM ( workitems, processinstance and so on ) look like the entities in Drools. As a result, the implementation of those entities in JBPM now implement the interfaces of the same entities in Drools. That looked like a good approach, but the experience, at least mine, seems to reveal it as not that good. In my opinion, the first problem with that approach is that Drools, the reteoo algorithm, runs in a single-threaded environment. Drools persistence was designed having this in mind, so for the code in Drools, there's no doubt that when in a persistent enviroment, the transaction, if any, will be bound to the same thread as the one in which the reteoo algorithm is executed. That leads to situations where whenever a class in JBPM calls drools in a JBPM's thread ( the mina handler thread, a NIO one for instance ), Drools thinks that is being executed in it's own thread ( where things are expected, as the JTA transaction bound for example ) and clearly, in some situations it is not the case. Then Drools expects to find certain resources and certain environment which are not always there. Leading to failure. As Drools now is a dependency for JBPM through the Knowledge-API, I think that the management of the persistence for Drools and JBPM should be merged in one that makes no assumptions and manages the needs for persistence in a coherent way for both products. What do you think? There can be only one - http://en.wikipedia.org/wiki/Highlander_%28film%29 Alberto R. Galdo arga...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Workitems doesn't get persisted when completing a task after rehydrating a knowledge session is some circumstances.
There are two concepts here: 1) WorkItem - Persist the state of the activity 2) WorkItemHandlers - Never Persisted Are you re-registering the WorkItemHandlers at rehydratation? WorkItemHandlers are part of the runtime status and don't get persisted. Cheers On Fri, Jun 22, 2012 at 9:39 AM, Alberto R. Galdo arga...@gmail.com wrote: No, I'm not registering pending workitems at rehydration. That's why I'm using Drools JBPM persistence ;-). I don't want to write my own state persistence, as I am a mere user of JBPM Drools services. They are never persisted This several methods in org.drools.persitence.jpa.JPAPersistenceContext seem to say just the opposite: public void persist(WorkItemInfo workItemInfo) public void remove(WorkItemInfo workItemInfo) public WorkItemInfo merge(WorkItemInfo workItemInfo) The fact that lots of workitems get created, persisted, merged and finally removed during the life of the process doesn't hide the fact that they're in fact, well, persisted. If you take a look at the changes in the database whenever a human task is involved in a BPMN process that is executed inside a Drools JBPM JPA persisted environment you will realize that indeed the human task are *persisted* and like so, rehydrated when loading the session in Drools. In fact, those human task related workitems are never removed from the database, but that's another bug ... :( Any insight? Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:15 PM, Mauricio Salatino sala...@gmail.comwrote: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task They are never persisted, they are runtime information that you must re-register after rehydrating the session. Are you doing that? Cheers On Fri, Jun 22, 2012 at 7:34 AM, Alberto R. Galdo arga...@gmail.comwrote: Hi, We have a fairly large BPMN process running inside a JPA persisted StatefulKnowledgeSession using Drools 5.4 JBPM 5.3. Our process involves timers, automated tasks, human tasks most of them are long-running processes, so a fault-tolerant scenario is a must. We've found what seems to be a weird, weird bug in JBPM-Drools regarding the execution of BPMN processes. This is by best to summarize the problem: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task So, as the workitem is not in the database, when a human task client completes a task that is related to that non-existent workitem, the process doesn't get restarted. And the process fails. ÂżWhy does this happens? Lets see: When the processs is executed, different workitems get created, updated and eventually deleted during the execution of a process up until a human task is created ( in our process ). When living in a persistet knowledge session, the transaction that is associated to Drools' thread is commited right after the human task is created in the human task server ... as it is a safe point. Nothing here. Everithing is consistent, if you look at the database you will see your session instance, your process instance, and the final human task workitem as it is the only workitem survivor after the execution ( whatever hadler-managed automated task that were executed before the human task are deleted and the human task workitem needs to survive as it's completion depends on asyncronous client interaction ). Now, if you connect to the human task server and complete that human task, a message is sent to the Drools session to update the state of the work item. The workitem gets updated, the process get restarted and the flow continues ... maybe generating a new human task ( which is our case ). At this very moment, if you take a look at the database, there are no automated-handled-task workitems ( as expected ) but there isn't any human task related work item, even worse, the task at the human task server is created, persisted and has a reference to the non-existant workitem. Days of debugging led us to what we think is the source of the problem: We found that the execution of the process after completing a task is being executed in the same thread as the one that receives the mina message that the human task server sends whenever a task is completed. This thread is not the same thread that executes the knowledgesession ( where the reteoo lives ) and so it doesn't have a transaction. By the way, we found that for workitem persistence the JPAWorkitemManager never joins an active transaction. :( That's why invoking the persistence of a workitem as a consequence of restarting the execution of a process inside the thread
Re: [rules-users] Drools JBPM Persistence
I think that you are mixing things up. Did you take a look at the CommandBasedStatefulKnowledgeSession? Every command that represent an operation against the knowledge session is being executed inside a transaction, for both rules and processes. As soon as a safe point is found (for both processes and rules) the persistence mechanism commits the transaction. In fact, this will never dissapear unless some communication mechanism between Drools JBPM is developed to allow the processes to be executed inside Drools Reteoo thread. Take a look at the class that I mention and then try to explain me what you mean with the previous sentence. Cheers On Fri, Jun 22, 2012 at 9:45 AM, Alberto R. Galdo arga...@gmail.com wrote: No, I didn't. I need to be able to deploy the human task server and my knowledge session in separate JVM's. And Mina is on my way. The fact that I am able to do things in some other way doesn't make this very problem dissapear ... :(. In fact, this will never dissapear unless some communication mechanism between Drools JBPM is developed to allow the processes to be executed inside Drools Reteoo thread. Isn't that so? Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:17 PM, Mauricio Salatino sala...@gmail.comwrote: Both persistence mechanisms are already unified. the jBPM-persistence module extends the Drools one adding the relevant entities by the processes. You can be having problems with the Mina Server, did you try the local configuration? The Mina Server was designed to run in a different JVM than the session, as a standalone component, if you are running it in the same JVM that can be causing some transactional problems as you mention. If you need to run it in the same JVM you can use the local configuration, did you try that? Cheers On Fri, Jun 22, 2012 at 8:31 AM, Alberto R. Galdo arga...@gmail.comwrote: Hi, I'm opening this thread in the aim of generating a debate about the approach to session persistence in Drools and JBPM for BPMN processes which by definition are able to generate asynchronous human tasks. IMHO the current approach needs to be refactored in favor of joining the management of the different Drools and JBPM entities in an unique manager. The current implementation offers two managers one in Drools, one in JBPM. Each of this managers are wrappers of a shared JPA EntityManager context and manage their own entities. When the integration of JBPM into Drools was done ( leaving behind drools flow ), the approach seemed to be to make the entities in JBPM ( workitems, processinstance and so on ) look like the entities in Drools. As a result, the implementation of those entities in JBPM now implement the interfaces of the same entities in Drools. That looked like a good approach, but the experience, at least mine, seems to reveal it as not that good. In my opinion, the first problem with that approach is that Drools, the reteoo algorithm, runs in a single-threaded environment. Drools persistence was designed having this in mind, so for the code in Drools, there's no doubt that when in a persistent enviroment, the transaction, if any, will be bound to the same thread as the one in which the reteoo algorithm is executed. That leads to situations where whenever a class in JBPM calls drools in a JBPM's thread ( the mina handler thread, a NIO one for instance ), Drools thinks that is being executed in it's own thread ( where things are expected, as the JTA transaction bound for example ) and clearly, in some situations it is not the case. Then Drools expects to find certain resources and certain environment which are not always there. Leading to failure. As Drools now is a dependency for JBPM through the Knowledge-API, I think that the management of the persistence for Drools and JBPM should be merged in one that makes no assumptions and manages the needs for persistence in a coherent way for both products. What do you think? There can be only one - http://en.wikipedia.org/wiki/Highlander_%28film%29 Alberto R. Galdo arga...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio
Re: [rules-users] Workitems doesn't get persisted when completing a task after rehydrating a knowledge session is some circumstances.
So, can you create an isolated test where you reproduce: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task And I can take a look on that.. Please create Jira issue for that. Without a concrete situation it's very difficult to analyze.. Did you check your transactions not being rolledback.. That's the only situation where I think that the workItem information will not be persisted. Cheers On Fri, Jun 22, 2012 at 9:55 AM, Alberto R. Galdo arga...@gmail.com wrote: Sure, WorkItemHandlers are never persisted. I re-register those handlers before staring the session, just because I want my tasks to be properly executed. :( Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:46 PM, Mauricio Salatino sala...@gmail.comwrote: There are two concepts here: 1) WorkItem - Persist the state of the activity 2) WorkItemHandlers - Never Persisted Are you re-registering the WorkItemHandlers at rehydratation? WorkItemHandlers are part of the runtime status and don't get persisted. Cheers On Fri, Jun 22, 2012 at 9:39 AM, Alberto R. Galdo arga...@gmail.comwrote: No, I'm not registering pending workitems at rehydration. That's why I'm using Drools JBPM persistence ;-). I don't want to write my own state persistence, as I am a mere user of JBPM Drools services. They are never persisted This several methods in org.drools.persitence.jpa.JPAPersistenceContext seem to say just the opposite: public void persist(WorkItemInfo workItemInfo) public void remove(WorkItemInfo workItemInfo) public WorkItemInfo merge(WorkItemInfo workItemInfo) The fact that lots of workitems get created, persisted, merged and finally removed during the life of the process doesn't hide the fact that they're in fact, well, persisted. If you take a look at the changes in the database whenever a human task is involved in a BPMN process that is executed inside a Drools JBPM JPA persisted environment you will realize that indeed the human task are *persisted* and like so, rehydrated when loading the session in Drools. In fact, those human task related workitems are never removed from the database, but that's another bug ... :( Any insight? Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:15 PM, Mauricio Salatino sala...@gmail.comwrote: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task They are never persisted, they are runtime information that you must re-register after rehydrating the session. Are you doing that? Cheers On Fri, Jun 22, 2012 at 7:34 AM, Alberto R. Galdo arga...@gmail.comwrote: Hi, We have a fairly large BPMN process running inside a JPA persisted StatefulKnowledgeSession using Drools 5.4 JBPM 5.3. Our process involves timers, automated tasks, human tasks most of them are long-running processes, so a fault-tolerant scenario is a must. We've found what seems to be a weird, weird bug in JBPM-Drools regarding the execution of BPMN processes. This is by best to summarize the problem: We are unable to complete a human task after rehydrating a Drools knowledge session because in some circunstances the generated Drools' workitems don't get persisted in the database after the completion of a previous task So, as the workitem is not in the database, when a human task client completes a task that is related to that non-existent workitem, the process doesn't get restarted. And the process fails. ÂżWhy does this happens? Lets see: When the processs is executed, different workitems get created, updated and eventually deleted during the execution of a process up until a human task is created ( in our process ). When living in a persistet knowledge session, the transaction that is associated to Drools' thread is commited right after the human task is created in the human task server ... as it is a safe point. Nothing here. Everithing is consistent, if you look at the database you will see your session instance, your process instance, and the final human task workitem as it is the only workitem survivor after the execution ( whatever hadler-managed automated task that were executed before the human task are deleted and the human task workitem needs to survive as it's completion depends on asyncronous client interaction ). Now, if you connect to the human task server and complete that human task, a message is sent to the Drools session to update the state of the work item. The workitem gets updated, the process get restarted and the flow continues ... maybe generating a new human task ( which is our case ). At this very moment, if you
Re: [rules-users] Drools JBPM Persistence
Drools and jBPM are being executed in the same thread, in your set up mina is not. Is that what are you pointing out? Did you really need to have mina in a separate JVM or you can use the Local Implementation? Cheers On Fri, Jun 22, 2012 at 10:00 AM, Alberto R. Galdo arga...@gmail.comwrote: I see your point, but IMHO that doesn't mean that in certain circumstances, when the process is being executed in a thread that it is no the same thread as the one in which drools is executing leads to a situation in which the persistence mechanisms are not enough to allow a fault tolerant JBPM for long-time running processes. As mentioned, there is at least one scenario, at least when mina is involved, where things are broken. Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:50 PM, Mauricio Salatino sala...@gmail.comwrote: I think that you are mixing things up. Did you take a look at the CommandBasedStatefulKnowledgeSession? Every command that represent an operation against the knowledge session is being executed inside a transaction, for both rules and processes. As soon as a safe point is found (for both processes and rules) the persistence mechanism commits the transaction. In fact, this will never dissapear unless some communication mechanism between Drools JBPM is developed to allow the processes to be executed inside Drools Reteoo thread. Take a look at the class that I mention and then try to explain me what you mean with the previous sentence. Cheers On Fri, Jun 22, 2012 at 9:45 AM, Alberto R. Galdo arga...@gmail.comwrote: No, I didn't. I need to be able to deploy the human task server and my knowledge session in separate JVM's. And Mina is on my way. The fact that I am able to do things in some other way doesn't make this very problem dissapear ... :(. In fact, this will never dissapear unless some communication mechanism between Drools JBPM is developed to allow the processes to be executed inside Drools Reteoo thread. Isn't that so? Alberto R. Galdo arga...@gmail.com On Fri, Jun 22, 2012 at 2:17 PM, Mauricio Salatino sala...@gmail.comwrote: Both persistence mechanisms are already unified. the jBPM-persistence module extends the Drools one adding the relevant entities by the processes. You can be having problems with the Mina Server, did you try the local configuration? The Mina Server was designed to run in a different JVM than the session, as a standalone component, if you are running it in the same JVM that can be causing some transactional problems as you mention. If you need to run it in the same JVM you can use the local configuration, did you try that? Cheers On Fri, Jun 22, 2012 at 8:31 AM, Alberto R. Galdo arga...@gmail.comwrote: Hi, I'm opening this thread in the aim of generating a debate about the approach to session persistence in Drools and JBPM for BPMN processes which by definition are able to generate asynchronous human tasks. IMHO the current approach needs to be refactored in favor of joining the management of the different Drools and JBPM entities in an unique manager. The current implementation offers two managers one in Drools, one in JBPM. Each of this managers are wrappers of a shared JPA EntityManager context and manage their own entities. When the integration of JBPM into Drools was done ( leaving behind drools flow ), the approach seemed to be to make the entities in JBPM ( workitems, processinstance and so on ) look like the entities in Drools. As a result, the implementation of those entities in JBPM now implement the interfaces of the same entities in Drools. That looked like a good approach, but the experience, at least mine, seems to reveal it as not that good. In my opinion, the first problem with that approach is that Drools, the reteoo algorithm, runs in a single-threaded environment. Drools persistence was designed having this in mind, so for the code in Drools, there's no doubt that when in a persistent enviroment, the transaction, if any, will be bound to the same thread as the one in which the reteoo algorithm is executed. That leads to situations where whenever a class in JBPM calls drools in a JBPM's thread ( the mina handler thread, a NIO one for instance ), Drools thinks that is being executed in it's own thread ( where things are expected, as the JTA transaction bound for example ) and clearly, in some situations it is not the case. Then Drools expects to find certain resources and certain environment which are not always there. Leading to failure. As Drools now is a dependency for JBPM through the Knowledge-API, I think that the management of the persistence for Drools and JBPM should be merged in one that makes no assumptions and manages the needs for persistence in a coherent way for both products. What do you think? There can be only one - http://en.wikipedia.org/wiki/Highlander_%28film%29 Alberto R
Re: [rules-users] Is a single StatefulKnowledgeSession with Distributed Memory cache possible?
Yes, that's another option too.. it really depends on how you can accumulate data or split your data to be analyzed. Cheers On Thu, Jun 14, 2012 at 1:22 PM, Vincent LEGENDRE vincent.legen...@eurodecision.com wrote: May be you can think differently : Instead of keeping all objects for 90 days, keep only the accumulate results for each previous day. - Mail original - De: chrisLi shengtao0...@163.com À: rules-users@lists.jboss.org Envoyé: Jeudi 14 Juin 2012 18:06:50 Objet: [rules-users] Is a single StatefulKnowledgeSession with Distributed Memory cache possible? Hi All, I am working on a banking fraud detection project with Drools Fusion, which will match a transaction against hunreds of rules to check whether the transaction is suspicious. In some rules, I use time-based sliding window to calculate the average transaction amount of an account in the past 3 or 6 months. One possible rule will be as below: rule Single Large Amount Transaction dialect mvel when $account : Account($number : number) $averageAmount : BigDecimal() from accumulate( TransactionCompletedEvent(fromAccountNumber == $account.number, $amount : amount) over window:time(90d) from entry-point TransactionStream, bigDecimalAverage($amount)) $t1 : TransactionCreatedEvent(fromAccountNumber == $account.number, amount $account.creditAmount * 0.5, amount $averageAmount * 3.0) from entry-point TransactionStream then end In such cases, the Fusion Engine will hold TransactionCompletedEvent in its memory for 90 days. And we have about 1 billion Accounts in total, so the TransactionCompletedEvent will be huge, we will very soon run out of memory. I have been blocked here for a long time! Is it possible to distribute a single StatefulKnowledgeSession in multiple JVMs or machines using Distributed Memory cache such as Hazelcast? If yes, could you give me some opinion on the solution? Or is this the problem the Drools Grid project try to handle? Or there are other techonology to handle large numbers of facts or events problem? As far as I know, Drools Grid distribute multilple ksessions on multiple machines in the Grid, each or several kseesions on one node? Is my understandings right? Any response or opinion from you will be appriciated! Thank you very much! -- View this message in context: http://drools.46999.n3.nabble.com/Is-a-single-StatefulKnowledgeSession-with-Distributed-Memory-cache-possible-tp4017968.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Looking for Drools audit tool
What kind of things do you want to audit? Most of the information generated by the engine can be exposed to be consumed by external tools. Edson write a great post about how to monitor the engine using JMX and Visual VM: http://blog.athico.com/2009/10/drools-monitoring-with-jmx.html On Wed, May 30, 2012 at 12:29 PM, paco fifi_nji...@yahoo.fr wrote: Hi everybody, I am looking for an audit tool for Drools technology. Can someone tell me if there is one? If so where can I find it? thank you Paco -- View this message in context: http://drools.46999.n3.nabble.com/Looking-for-Drools-audit-tool-tp4017686.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Possibly race condition in a persisted Drools + JBPM during a StatefulKnowledgeSession
Ok, so what is happening is that two or more threads are fighting for the resources, causing that two or more transactions wants to be completed, but just one can win. All the other must be retried. Are you seeing rolled back exceptions in your stack trace? My question to you is if you really need to handle everything in just one big persistent session. I've solved similar issues in the past using more than one session, for example one session to run business processes(persistent) and one or more for receiving and reacting to events. If you have an async way to communicate both sessions there should be no problem. Hope it helps! Cheers On Tue, May 29, 2012 at 7:30 AM, Alberto R. Galdo arga...@gmail.com wrote: Hi all, We've been for long time now developing a complex event processing system that ( simplified version ahead !! ) involves a set of rules that in turn activates a set processes that fulfill human tasks and other kind of tasks.. This all is running in a StatefulKnowledgeSession with JPA persistence configured both for Drools and JBPM. We are running an stack of Drools, JBPM, Drools Integration, Drools fussion, etc.. We've been able to persist Drools sessions JBPM processes in the same Persistence Context ( not without pain :( ) using different JTA implementations including ( but not limited to ) Bitronix Atomikos. What we are observing here is what seems to be some kind of race condition between Drools and JBPM when running the knowledge session when JPAJTA persistence is configured. Very often, as soon as after 2-3 processes get created as rule's consequences are fired in response of events inside the session we see how JBPM finds its instance nullified by Drools when it tries to end a process and persist it. We've been able to find where Drools decides to delete an instance of the process ... at a given time Drools executes JPAProcessInstanceManager.clearProcessInstances() [1] when it finalizes a SingleSessionCommand wich in turn calls disconnect() for *all* the local-stored processinstances ( wich gets populated with instances of processes every time a process is started in the knowledge session ): public void clearProcessInstances() { for (ProcessInstance processInstance: new ArrayListProcessInstance(processInstances.values())) { ((ProcessInstanceImpl) processInstance).disconnect(); } } So, Drools decides to disconnect all process instances in it's JPA context without taking in account the state the process is in, and when an processinstance that is not stopped gets removed then JBPM finds it's NullPointerException... We've modified the code to make Drools aware of the state of the process before wiping it from the context ( no problem here, there will be no leak as a running processinstance will be removed in future calls of clearProcessInstances given the process is closed ). But unfortunatelly this seems to resolve this problem, but lots of other problems ( wich seems also race conditions arise : for instance: Drools closes connections to the database and JBPM finds the connection closed, So, we are really worried about using Drools JBPM in a persisted environment. Maybe our asumptions are wrong... Is it possible to have an scenario like ours given the current Drools JBPM integration status for a persistent statefulKnowledge Session? Did anyone build a complex event processing system like ours in a unaltered persistence environment such as provided in Drools and JBPM by default? Greets, [1] https://github.com/droolsjbpm/jbpm/blob/master/jbpm-persistence-jpa/src/main/java/org/jbpm/persistence/processinstance/JPAProcessInstanceManager.java Alberto R. Galdo arga...@gmail.co arga...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Possibly race condition in a persisted Drools + JBPM during a StatefulKnowledgeSession
I'm in no way saying this: Let me see if I'm getting this right, What you mean is that there is no way for the JPA persistence of Drools JBPM to coexist in the same knowledge session because of race conditions between them competing for their shared resources? I'm afraid so.. :( They can coexist. As you can see they are working together. If you take a look at the underlying layers you will see that each operation that you run against the session is wrapped in a transaction. That leads to your architecture, If you have a single entry point for your session everything will work correctly. You can achieve this by receiving all the operations in a queue and then execute one after the other. If you have multiple threads interacting with the session, you can implement a retrying mechanism if the transaction gets rolled back and as soon as the transaction win the right to commit it will work. It really depends on the problem that you are trying to solve. Cheers On Tue, May 29, 2012 at 10:42 AM, Alberto R. Galdo arga...@gmail.comwrote: Thanks Mauricio for your kind response, and kick, as usual ;-) Sure, we see lots of rolled back transactions ... Everywhere! Let me see if I'm getting this right, What you mean is that there is no way for the JPA persistence of Drools JBPM to coexist in the same knowledge session because of race conditions between them competing for their shared resources? I'm afraid so.. :( If it is so, Are there any plans for the integration of a shared JPA persistence management of both Drools JBPM, wich may be the solution for this problem? ... Will we be better thinking to change our architecture ASAP? Greets, Alberto R. Galdo arga...@gmail.com On Tue, May 29, 2012 at 1:54 PM, Mauricio Salatino sala...@gmail.comwrote: Ok, so what is happening is that two or more threads are fighting for the resources, causing that two or more transactions wants to be completed, but just one can win. All the other must be retried. Are you seeing rolled back exceptions in your stack trace? My question to you is if you really need to handle everything in just one big persistent session. I've solved similar issues in the past using more than one session, for example one session to run business processes(persistent) and one or more for receiving and reacting to events. If you have an async way to communicate both sessions there should be no problem. Hope it helps! Cheers On Tue, May 29, 2012 at 7:30 AM, Alberto R. Galdo arga...@gmail.comwrote: Hi all, We've been for long time now developing a complex event processing system that ( simplified version ahead !! ) involves a set of rules that in turn activates a set processes that fulfill human tasks and other kind of tasks.. This all is running in a StatefulKnowledgeSession with JPA persistence configured both for Drools and JBPM. We are running an stack of Drools, JBPM, Drools Integration, Drools fussion, etc.. We've been able to persist Drools sessions JBPM processes in the same Persistence Context ( not without pain :( ) using different JTA implementations including ( but not limited to ) Bitronix Atomikos. What we are observing here is what seems to be some kind of race condition between Drools and JBPM when running the knowledge session when JPAJTA persistence is configured. Very often, as soon as after 2-3 processes get created as rule's consequences are fired in response of events inside the session we see how JBPM finds its instance nullified by Drools when it tries to end a process and persist it. We've been able to find where Drools decides to delete an instance of the process ... at a given time Drools executes JPAProcessInstanceManager.clearProcessInstances() [1] when it finalizes a SingleSessionCommand wich in turn calls disconnect() for *all* the local-stored processinstances ( wich gets populated with instances of processes every time a process is started in the knowledge session ): public void clearProcessInstances() { for (ProcessInstance processInstance: new ArrayListProcessInstance(processInstances.values())) { ((ProcessInstanceImpl) processInstance).disconnect(); } } So, Drools decides to disconnect all process instances in it's JPA context without taking in account the state the process is in, and when an processinstance that is not stopped gets removed then JBPM finds it's NullPointerException... We've modified the code to make Drools aware of the state of the process before wiping it from the context ( no problem here, there will be no leak as a running processinstance will be removed in future calls of clearProcessInstances given the process is closed ). But unfortunatelly this seems to resolve this problem, but lots of other problems ( wich seems also race conditions arise : for instance: Drools closes connections to the database and JBPM finds the connection closed
Re: [rules-users] Possibly race condition in a persisted Drools + JBPM during a StatefulKnowledgeSession
Ok, so probably I'm not understanding your scenario, but are you using the JPAKnowledgeService to create persistent sessions? If you use that everything is aware of everything :) Drools and jBPM5 will run using the same persistence resources. For each interaction: startProcess, insert, update, fireAllRules a transaction will be created. If you are starting a process and at the same time inserting a Fusion event you will be generating two transaction that will fight for the resources (the same resources because you have only one session). Obviously if you take the persistence mechanisms outside of the discussion everything will work perfectly fine, because you don't have any transactional resource to fight for :) Hope it helps. Cheers On Tue, May 29, 2012 at 11:36 AM, Alberto R. Galdo arga...@gmail.comwrote: Your answer is confusing me, I think I'm not getting it right. It seems that we you're saying that will have to modify JBPM or Drools behaviour to get our architecture done ... but I don't think we are doing nothing special than what Drools JBPM are able to do in a non-persisting enviroment ( at least without JBPM persisted ). Maybe deeping a bit more the architecture will lead to a better understanding of the problem: We have a Drools StatefulKnowledgeSession wich is populated with packages of rules and different BPMN 2.0 process definitions. That session in Drools is persisted using JPA and our JTA provider. Our solution is a CEP that uses events that get into the session using Drools Fusion. There, several rules fire and then several consequences start processes wich contain both Tasks and HumanTasks. Those rule activations are already in a queue, the Agenda. Given that JBPM acts as the processmanager provider for Drools, our processes get started in JBPM, and it is persisted using it's own JPA manager. Just rules, that start processes in response to events in a fireUntilHalt loop in a persistent enviroment, both for Drools JBPM. Then some processes interact with the knowledge session using BussinessTask nodes( which make other rules fire and maybe launch a different set of processes ) and other simply get to the Stop node. I see nothing wrong here, in fact, taking the persistence appart from the equation, everything runs as beautifuly as expected. We've tested that. I'm just trying to undersand the problem, I'm pretty 90% sure I'm wrong, but what I think is happening here is that Drools isn't aware that JBPM may be using the same resources and vice-versa, Isn't it? Shouldn't the solution be to make Drools JBPM aware of each other in what is related to the syncronization of the transaction management to avoid race conditions? Alberto R. Galdo arga...@gmail.com On Tue, May 29, 2012 at 3:58 PM, Mauricio Salatino sala...@gmail.comwrote: I'm in no way saying this: Let me see if I'm getting this right, What you mean is that there is no way for the JPA persistence of Drools JBPM to coexist in the same knowledge session because of race conditions between them competing for their shared resources? I'm afraid so.. :( They can coexist. As you can see they are working together. If you take a look at the underlying layers you will see that each operation that you run against the session is wrapped in a transaction. That leads to your architecture, If you have a single entry point for your session everything will work correctly. You can achieve this by receiving all the operations in a queue and then execute one after the other. If you have multiple threads interacting with the session, you can implement a retrying mechanism if the transaction gets rolled back and as soon as the transaction win the right to commit it will work. It really depends on the problem that you are trying to solve. Cheers On Tue, May 29, 2012 at 10:42 AM, Alberto R. Galdo arga...@gmail.comwrote: Thanks Mauricio for your kind response, and kick, as usual ;-) Sure, we see lots of rolled back transactions ... Everywhere! Let me see if I'm getting this right, What you mean is that there is no way for the JPA persistence of Drools JBPM to coexist in the same knowledge session because of race conditions between them competing for their shared resources? I'm afraid so.. :( If it is so, Are there any plans for the integration of a shared JPA persistence management of both Drools JBPM, wich may be the solution for this problem? ... Will we be better thinking to change our architecture ASAP? Greets, Alberto R. Galdo arga...@gmail.com On Tue, May 29, 2012 at 1:54 PM, Mauricio Salatino sala...@gmail.comwrote: Ok, so what is happening is that two or more threads are fighting for the resources, causing that two or more transactions wants to be completed, but just one can win. All the other must be retried. Are you seeing rolled back exceptions in your stack trace? My question to you is if you really need to handle
Re: [rules-users] Possibly race condition in a persisted Drools + JBPM during a StatefulKnowledgeSession
Comments inline, On Tue, May 29, 2012 at 12:24 PM, Alberto R. Galdo arga...@gmail.comwrote: Sure!. I didn't mention that we're running in a OSGi environment and we're getting the session from JPAKnowledgeService like that: EntityManagerFactory emf = Persistence.createEntityManagerFactory(com.package); Environment env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER,(TransactionManager) bundleContext.getService(this.tmServiceRef)); env.set(EnvironmentName.TRANSACTION, (UserTransaction) bundleContext.getService(this.userTransactionServiceRef)); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); env.set(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, new ObjectMarshallingStrategy[] { MarshallerFactory.newSerializeMarshallingStrategy() }); final StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, sessionConfig, env); We are just following the manual ( and some acquired knowledge through the days ... ) I understand that inserting an event and starting a process at the same time would lead to the current situation, but Isn't this the reason why we are using drools with drools fusion + jbpm to build a CEP? I'm not sure about your reasons :) We chose Drools and a statefulsession in a fireUntilHalt loop just because we would be able to have our rules and processes reacting to events that enter the system at their own pace ... and found ourselves in this nightmare when trying to make the system fault-tolerant through persistence... :( FireUntilHalt and Persistence will cause conflicts, because fireUntilHalts by default creates a different thread == race conditions. Do you think we should change our fault-tolerance strategy by reconstructing the knowledge session, process and tasks state by our own means leaving Drools and JBPM JPA persistence appart? A common problem is to think that a session will do everything for you. I'm not saying that you need to separate your processes from your rules, I'm just saying that probably decoupling responsibilities will help you to tackle down some of the problems that you are having. If you have in memory processes and fusion entry points, you can keep those together and in a separate persistence session handle all the human task interactions and long running processes. If you are getting events in real time and you want to process them, you cannot expect to persist all the session state and have no performance impacts. Alberto R. Galdo arga...@gmail.com Cheers On Tue, May 29, 2012 at 4:43 PM, Mauricio Salatino sala...@gmail.comwrote: Ok, so probably I'm not understanding your scenario, but are you using the JPAKnowledgeService to create persistent sessions? If you use that everything is aware of everything :) Drools and jBPM5 will run using the same persistence resources. For each interaction: startProcess, insert, update, fireAllRules a transaction will be created. If you are starting a process and at the same time inserting a Fusion event you will be generating two transaction that will fight for the resources (the same resources because you have only one session). Obviously if you take the persistence mechanisms outside of the discussion everything will work perfectly fine, because you don't have any transactional resource to fight for :) Hope it helps. Cheers On Tue, May 29, 2012 at 11:36 AM, Alberto R. Galdo arga...@gmail.comwrote: Your answer is confusing me, I think I'm not getting it right. It seems that we you're saying that will have to modify JBPM or Drools behaviour to get our architecture done ... but I don't think we are doing nothing special than what Drools JBPM are able to do in a non-persisting enviroment ( at least without JBPM persisted ). Maybe deeping a bit more the architecture will lead to a better understanding of the problem: We have a Drools StatefulKnowledgeSession wich is populated with packages of rules and different BPMN 2.0 process definitions. That session in Drools is persisted using JPA and our JTA provider. Our solution is a CEP that uses events that get into the session using Drools Fusion. There, several rules fire and then several consequences start processes wich contain both Tasks and HumanTasks. Those rule activations are already in a queue, the Agenda. Given that JBPM acts as the processmanager provider for Drools, our processes get started in JBPM, and it is persisted using it's own JPA manager. Just rules, that start processes in response to events in a fireUntilHalt loop in a persistent enviroment, both for Drools JBPM. Then some processes interact with the knowledge session using BussinessTask nodes( which make other rules fire and maybe launch a different set of processes ) and other simply get to the Stop node. I see nothing wrong here, in fact, taking
Re: [rules-users] Possibly race condition in a persisted Drools + JBPM during a StatefulKnowledgeSession
:) Keep your mind open, because there is no single solution for all the problems. On Tue, May 29, 2012 at 1:15 PM, Alberto R. Galdo arga...@gmail.com wrote: Thank you very much Mauricio. You've been of great help. Now is time for us to cook all this valuable information and go for a solution. xD Alberto R. Galdo arga...@gmail.com On Tue, May 29, 2012 at 5:59 PM, Mauricio Salatino sala...@gmail.comwrote: Comments inline, On Tue, May 29, 2012 at 12:24 PM, Alberto R. Galdo arga...@gmail.comwrote: Sure!. I didn't mention that we're running in a OSGi environment and we're getting the session from JPAKnowledgeService like that: EntityManagerFactory emf = Persistence.createEntityManagerFactory(com.package); Environment env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER,(TransactionManager) bundleContext.getService(this.tmServiceRef)); env.set(EnvironmentName.TRANSACTION, (UserTransaction) bundleContext.getService(this.userTransactionServiceRef)); env.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); env.set(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, new ObjectMarshallingStrategy[] { MarshallerFactory.newSerializeMarshallingStrategy() }); final StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, sessionConfig, env); We are just following the manual ( and some acquired knowledge through the days ... ) I understand that inserting an event and starting a process at the same time would lead to the current situation, but Isn't this the reason why we are using drools with drools fusion + jbpm to build a CEP? I'm not sure about your reasons :) We chose Drools and a statefulsession in a fireUntilHalt loop just because we would be able to have our rules and processes reacting to events that enter the system at their own pace ... and found ourselves in this nightmare when trying to make the system fault-tolerant through persistence... :( FireUntilHalt and Persistence will cause conflicts, because fireUntilHalts by default creates a different thread == race conditions. Do you think we should change our fault-tolerance strategy by reconstructing the knowledge session, process and tasks state by our own means leaving Drools and JBPM JPA persistence appart? A common problem is to think that a session will do everything for you. I'm not saying that you need to separate your processes from your rules, I'm just saying that probably decoupling responsibilities will help you to tackle down some of the problems that you are having. If you have in memory processes and fusion entry points, you can keep those together and in a separate persistence session handle all the human task interactions and long running processes. If you are getting events in real time and you want to process them, you cannot expect to persist all the session state and have no performance impacts. Alberto R. Galdo arga...@gmail.com Cheers On Tue, May 29, 2012 at 4:43 PM, Mauricio Salatino sala...@gmail.comwrote: Ok, so probably I'm not understanding your scenario, but are you using the JPAKnowledgeService to create persistent sessions? If you use that everything is aware of everything :) Drools and jBPM5 will run using the same persistence resources. For each interaction: startProcess, insert, update, fireAllRules a transaction will be created. If you are starting a process and at the same time inserting a Fusion event you will be generating two transaction that will fight for the resources (the same resources because you have only one session). Obviously if you take the persistence mechanisms outside of the discussion everything will work perfectly fine, because you don't have any transactional resource to fight for :) Hope it helps. Cheers On Tue, May 29, 2012 at 11:36 AM, Alberto R. Galdo arga...@gmail.comwrote: Your answer is confusing me, I think I'm not getting it right. It seems that we you're saying that will have to modify JBPM or Drools behaviour to get our architecture done ... but I don't think we are doing nothing special than what Drools JBPM are able to do in a non-persisting enviroment ( at least without JBPM persisted ). Maybe deeping a bit more the architecture will lead to a better understanding of the problem: We have a Drools StatefulKnowledgeSession wich is populated with packages of rules and different BPMN 2.0 process definitions. That session in Drools is persisted using JPA and our JTA provider. Our solution is a CEP that uses events that get into the session using Drools Fusion. There, several rules fire and then several consequences start processes wich contain both Tasks and HumanTasks. Those rule activations are already in a queue, the Agenda. Given that JBPM acts as the processmanager provider for Drools, our processes get started in JBPM
Re: [rules-users] Persist JPA Entity fact in session
You can use the Variable Persistency Strategies, that will store your facts in the database for you. You need to configure in the environment the strategies for example: https://github.com/droolsjbpm/jbpm/blob/master/jbpm-human-task/jbpm-human-task-core/src/test/java/org/jbpm/task/service/persistence/variable/VariablePersistenceStrategiesSyncHTTest.java Notice that you will need to provide your domain specific entityManager to the JPAPlaceholderResolverStrategy Cheers On Thu, May 24, 2012 at 1:30 PM, Alberto R. Galdo arga...@gmail.com wrote: Hi, We are in a fireUntilHalt during a persistent StatefulKnowledgeSession using JTA JPA with Hibernate ... Our session consists in a series of facts ( well, we are not different of anyone else for that matter ... xD ) but some of our facts are also JPA @Entity . What we want is to persist those entities on their own database tables as well as the SessionInfo each time Drools considers the knowledge session needs to be persisted. We are aware that Drools uses org.drools.persistence.jpa.persist(SessionInfo) What would be the best approach to get certain facts that are JPA Entities persisted along with the Session taking advantage of the Drool's SessionInfo persistence loop? Best regards, Alberto R. Galdo arga...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] ProcessInstance from StartProcessCommand
Did you take a look at the documentation? http://docs.jboss.org/drools/release/5.4.0.Final/droolsjbpm-integration-docs/html_single/index.html#d0e1070 Cheers On Fri, May 18, 2012 at 12:11 AM, Hrumph herman.p...@imail.org wrote: What would one call with the outIdentifier to get a result? -- View this message in context: http://drools.46999.n3.nabble.com/ProcessInstance-from-StartProcessCommand-tp383p4000166.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] ProcessInstance from StartProcessCommand
Hi Herm, You can use the out identifier to get some result.. On Thu, May 17, 2012 at 8:25 PM, Hrumph herman.p...@imail.org wrote: I am using the StartProcessCommand through the BatchExecution interface, and it works fine, but I don't see any return information in the ExecutionResults, such as a ProcessInstanceId or ProcessState? Is there some way to acquire this information. I see a number of other Commands in the process package but it's not clear how to use them or where the ProcessState would come from. Thanks, Herm -- View this message in context: http://drools.46999.n3.nabble.com/ProcessInstance-from-StartProcessCommand-tp383.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Is there a faster way of doing this in Drools ?
You can do that step once and then reload the compiled rules from the disk, or use guvnor which will compile the rules for you. Cheers On Wed, May 9, 2012 at 12:55 PM, soumya_sd soumya...@yahoo.com wrote: I've a use case where I need to create a rule dynamically every time the user sends a request. My current understanding of Drools is that you need to create a KnowledgeBuilder and then add the rules I'm creating the KnowledgeBase as follows. private static KnowledgeBase readKnowledgeBase() throws Exception { long t1 = System.currentTimeMillis(); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); long t11 = System.currentTimeMillis(); kbuilder.add( org.drools.io.ResourceFactory.newByteArrayResource(getRule()), ResourceType.DRL); long t2 = System.currentTimeMillis(); KnowledgeBuilderErrors errors = kbuilder.getErrors(); if (errors.size() 0) { for (KnowledgeBuilderError error: errors) { System.err.println(error); } throw new IllegalArgumentException(Could not parse knowledge.); } long t3 = System.currentTimeMillis(); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); long t4 = System.currentTimeMillis(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); long t5 = System.currentTimeMillis(); CollectionKnowledgePackage kpackages = kbase.getKnowledgePackages(); for (KnowledgePackage knowledgePackage : kpackages) { System.out.println(Package + knowledgePackage.getName()); CollectionRule rules = knowledgePackage.getRules(); for (Rule rule : rules) { System.out.println( + rule.getName()); } } long t6 = System.currentTimeMillis(); System.out.println( (t11-t1) + + (t2-t11) + + ( t3-t2) + + ( t4-t3) + + ( t5-t4) + + ( t6-t5)+ ); return kbase; } Based on the timing logs the code take majority (more than 80%) of time in only these two operations. Is there a way to make it faster ? KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( org.drools.io.ResourceFactory.newByteArrayResource(getRule()), ResourceType.DRL); thanks. -- View this message in context: http://drools.46999.n3.nabble.com/Is-there-a-faster-way-of-doing-this-in-Drools-tp3973888.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Is there a faster way of doing this in Drools ?
Can you explain a little bit more about your context? having completely dynamic rules is not an usual use case, rules tends to be static because they define the business logic that you want to apply. So please elaborate on the context. On Wed, May 9, 2012 at 1:07 PM, soumya_sd soumya...@yahoo.com wrote: salaboy wrote You can do that step once and then reload the compiled rules from the disk, or use guvnor which will compile the rules for you. Cheers Thanks for responding so quickly. I tried using Guvnor. Do you think it will be faster than this ? In the worse case, the rules that I need to apply can change with every iteration i.e., they are completely dynamic and defined at runtime. So, storing the rules is not an options. -- View this message in context: http://drools.46999.n3.nabble.com/Is-there-a-faster-way-of-doing-this-in-Drools-tp3973888p3973915.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] drools 5.0's RuleFlow drools 5.2's jbpm5
Yes, jbpm5 is focused on the BPMN2 modeling language, I suggest you to read about that specification in order to start working with jBPM5. From the technical point of view most of the things that you will read about Drools Flow are still valid for jBPM5 (except the modeling language - RuleFlow). Cheers On Sat, May 5, 2012 at 11:28 AM, Ahmed Feki feki.ahmed@gmail.comwrote: the jbpm5 runs with .bpmn process files not with .rf as in the 5.0, i still dont know if it is the only difference but i think these standards re not compatibles. 2012/5/5 bardelman feki.ahmed@gmail.com Hi, i m planning to learn jbpm5 and i ve 2 books : -Drools-JBoss-Rules-5.0-Developers-Guide :which is about the version 5.0 of drools. in this book, there is a chapter about the Drools flow. -The second book is the Drools Developper Cookbook(2012), here there is a chapter about the jbpm5 in which it s said :jBPM5 is the new brand name of the Drools process engine that was previously known as Drools Flow. As i want to optimize my learning curve for this framework(i mean for jbpm5) i want to know if it is useful to read from the first book ? is it still useful the Drools flow of the version 5.0 ? sorry for my bad english ..!! -- View this message in context: http://drools.46999.n3.nabble.com/drools-5-0-s-RuleFlow-drools-5-2-s-jbpm5-tp3964263.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] ontologies
You usually create ontologies with other tools like Protege, right? 2012/3/30 Olfa h h.olf...@gmail.com hello, how I can create ontologies with Drools ? thx ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] NullPointerException when load file rules
What do you mean with doesn't work well? which problem are you experiencing? 2012/3/26 elMateo soyelma...@gmail.com Hi all, the problem is that Drools doesn't work well with Java 1.7.0 On Mon, Mar 26, 2012 at 2:21 PM, jjmartinez soyelma...@gmail.com wrote: Hello all, I have, again, this exception: org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.build er.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.ja va.JavaDialectConfiguration' but I have a file in META-INFcalled drools.packagebuilder.conf, with the information above. Of course, I have all drools bundles in my Apache Felix running. And I'm using Drools 5.4.0-SNAPSHOT version. Could anybody help me?? Thanks in advance, Jesus. -- View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-when-load-file-rules-tp3645021p3857996.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] NullPointerException when load file rules
So, probably there is something related on how those resources are loaded or how the jar files are scanned when they are loaded. This doesn't means that drools doesn't work.. probably is a bug and you should report it if you can create an isolated test with the error inside Jira. Cheers 2012/3/26 elMateo soyelma...@gmail.com With Java 7, when I run a bundle with Drools (in Apache Felix), I get this exception: *org.drools.RuntimeDroolsException: Unable to load dialect* * 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration' * I had this problem before because I need to add inside my project that is loading the rules the file META-INF/drools.packagebuilder.conf. I did it when you helped me. A few days ago I installed Java 7, but I don't run my project with Drools. Until this morning. I uninstall it and my project work ok again :) On Mon, Mar 26, 2012 at 5:41 PM, Mauricio Salatino sala...@gmail.comwrote: What do you mean with doesn't work well? which problem are you experiencing? 2012/3/26 elMateo soyelma...@gmail.com Hi all, the problem is that Drools doesn't work well with Java 1.7.0 On Mon, Mar 26, 2012 at 2:21 PM, jjmartinez soyelma...@gmail.comwrote: Hello all, I have, again, this exception: org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.build er.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.ja va.JavaDialectConfiguration' but I have a file in META-INFcalled drools.packagebuilder.conf, with the information above. Of course, I have all drools bundles in my Apache Felix running. And I'm using Drools 5.4.0-SNAPSHOT version. Could anybody help me?? Thanks in advance, Jesus. -- View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-when-load-file-rules-tp3645021p3857996.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] The rule language. More about the agenda-group and ruleflow-group attributes
As far as I remember Ruleflow Groups are documented inside the jBPM5 documentation and agenda group inside the Drools docs. What do you want to achieve with them? Cheers 2012/3/24 Maxim Kolchin kolchin...@gmail.com Hi, I've only been working with drools about couple of months. I've read the documentation and some articles about drools. But, I've not found the detail information about the agenda-group and ruleflow-group attributes, or examples showing how to work with them. Have I missed something? Will be grateful for any useful information. Regards, Maxim Kolchin, Laboratory of Intellectual Systems, National Research University ITMO, Saint-Petersburg. http://ailab.ifmo.ru/ Email: kolchin...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] The rule language. More about the agenda-group and ruleflow-group attributes
If you want to use rule flow groups you will need to define a process using jbpm5 and then bind each rule flow group to a businessRuleTask. You can find some examples about this here: https://github.com/Salaboy/jBPM5-Developer-Guide here: https://github.com/Salaboy/Drools_jBPM5-Training-Examples and here: https://github.com/esteban-aliverti/JBPM-Samples Cheers 2012/3/24 Maxim Kolchin kolchin...@gmail.com Hi Mauricio, I'm not sure, are they suitable for me, but I want to do the following: I'm using Guvnor and I have rules packed in a one package. These rules must be partition to several groups which must fire in a certain order: at first rules from group-A, then rules from group-B etc. I don't know, how should I use agenda-group and ruleflow-group. And how to specify the order of the groups firing. Thanks for your help, Max 2012/3/24 Mauricio Salatino sala...@gmail.com As far as I remember Ruleflow Groups are documented inside the jBPM5 documentation and agenda group inside the Drools docs. What do you want to achieve with them? Cheers 2012/3/24 Maxim Kolchin kolchin...@gmail.com Hi, I've only been working with drools about couple of months. I've read the documentation and some articles about drools. But, I've not found the detail information about the agenda-group and ruleflow-group attributes, or examples showing how to work with them. Have I missed something? Will be grateful for any useful information. Regards, Maxim Kolchin, Laboratory of Intellectual Systems, National Research University ITMO, Saint-Petersburg. http://ailab.ifmo.ru/ Email: kolchin...@gmail.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ 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 -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools and Jersey
Hi Mike, I've never tried that before (a rule without the when part..) is good to know that it works :) Humm that's sounds weird.. why the dialect is affecting your Client creation. It could be that there is something wrong with the expression evaluation. It looks like MVEL cannot compile the new Client(); expression - at java.lang.String.init(Unknown Source) Did you try with something like: then \n Client c = new Client(); I'm just guessing here, because it looks strange 2012/3/14 mike mike...@gmail.com Hi Mauricio, Thank you for the speedy reply. Ia m making rest call to web services using jersey. I simplified the rule to the max. The 'when' is not really needed. I get the exception on the call to new Client(). Please keep in mind it works without dialect mvel. Thank you very much Mike Here's the stack trace . java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.init(Unknown Source) at org.mvel2.CompileException.showCodeNearError(CompileException.java:149) at org.mvel2.CompileException.generateErrorMessage(CompileException.java:219) at org.mvel2.CompileException.toString(CompileException.java:62) at java.lang.Throwable.init(Throwable.java:242) at java.lang.Exception.init(Unknown Source) at java.lang.RuntimeException.init(Unknown Source) at org.drools.runtime.rule.ConsequenceException.init(ConsequenceException.java:31) at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1101) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:709) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:673) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218) at com.ultimatesoftware.engine.tests.Wip.drools_new_client(Wip.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:292) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 2012/3/14 Mauricio Salatino sala...@gmail.com what are you trying to do? what's the error? the rule should look like rule create Rest Client when then new Client(); end 2012/3/14 mike mike...@gmail.com Hi there, I am trying to make rest calls from Drools. For that I am using Jersey http://jersey.java.net/. I cannot no get it to work if I use mvel, otherwise it works fine. Here is a sample rule: -- import com.sun.jersey.api.client.Client; dialect mvel rule create Rest Client then new Client(); end -- I would love to be able to use mvel since it curves java syntax :) Thank you Mike ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar
Re: [rules-users] Drools and Jersey
Cool that you find that :) Cheers 2012/3/14 mike mike...@gmail.com Hi Mauricio, I spent like 2 days debugging, before realizing that mvel was the culprit. The error is a Null Exception when resolving some service inside Jersey. I have to check my browser history at home for more details but the exception was happening inside Jersey. Please notice I reduced the code to the minimum. I had 'real' code doing more reasonable things with new Client. Client c = new Client() fails too. Thank you very much Mike 2012/3/14 Mauricio Salatino sala...@gmail.com Hi Mike, I've never tried that before (a rule without the when part..) is good to know that it works :) Humm that's sounds weird.. why the dialect is affecting your Client creation. It could be that there is something wrong with the expression evaluation. It looks like MVEL cannot compile the new Client(); expression - at java.lang.String.init(Unknown Source) Did you try with something like: then \n Client c = new Client(); I'm just guessing here, because it looks strange 2012/3/14 mike mike...@gmail.com Hi Mauricio, Thank you for the speedy reply. Ia m making rest call to web services using jersey. I simplified the rule to the max. The 'when' is not really needed. I get the exception on the call to new Client(). Please keep in mind it works without dialect mvel. Thank you very much Mike Here's the stack trace . java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.init(Unknown Source) at org.mvel2.CompileException.showCodeNearError(CompileException.java:149) at org.mvel2.CompileException.generateErrorMessage(CompileException.java:219) at org.mvel2.CompileException.toString(CompileException.java:62) at java.lang.Throwable.init(Throwable.java:242) at java.lang.Exception.init(Unknown Source) at java.lang.RuntimeException.init(Unknown Source) at org.drools.runtime.rule.ConsequenceException.init(ConsequenceException.java:31) at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1101) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:709) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:673) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218) at com.ultimatesoftware.engine.tests.Wip.drools_new_client(Wip.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:292) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 2012/3/14 Mauricio Salatino sala...@gmail.com what are you trying to do? what's the error? the rule should look like rule create Rest Client when then new Client(); end 2012/3/14 mike mike...@gmail.com Hi there, I am trying to make rest calls from Drools. For that I am using Jersey http://jersey.java.net/. I cannot no get it to work if I use mvel, otherwise it works fine. Here is a sample rule
Re: [rules-users] Drools and Jersey
Sure.. we are interested in finding out what is happening. So, you find that when you are using mvel something inside Jersey fails? Did you find what exactly is happening inside Jersey? Probably it's something related with the class loaders, but I never seen an error like that when you specify the mvel dialect. By the way, what exactly are you trying to do with mvel? did you try using the mvel syntax without explicitly specifying the dialect? Cheers 2012/3/14 mike mike...@gmail.com Wait ... I haven't solved the problem ... I mean, as of now I cannot use mvel if I want to use Jersey ... and I don't think it's Jersey's fault because it works in any condition except when using mvel. I thought that the Drools team follows this list and might be interested in that bug. Thank you very much Mike 2012/3/14 Mauricio Salatino sala...@gmail.com Cool that you find that :) Cheers 2012/3/14 mike mike...@gmail.com Hi Mauricio, I spent like 2 days debugging, before realizing that mvel was the culprit. The error is a Null Exception when resolving some service inside Jersey. I have to check my browser history at home for more details but the exception was happening inside Jersey. Please notice I reduced the code to the minimum. I had 'real' code doing more reasonable things with new Client. Client c = new Client() fails too. Thank you very much Mike 2012/3/14 Mauricio Salatino sala...@gmail.com Hi Mike, I've never tried that before (a rule without the when part..) is good to know that it works :) Humm that's sounds weird.. why the dialect is affecting your Client creation. It could be that there is something wrong with the expression evaluation. It looks like MVEL cannot compile the new Client(); expression - at java.lang.String.init(Unknown Source) Did you try with something like: then \n Client c = new Client(); I'm just guessing here, because it looks strange 2012/3/14 mike mike...@gmail.com Hi Mauricio, Thank you for the speedy reply. Ia m making rest call to web services using jersey. I simplified the rule to the max. The 'when' is not really needed. I get the exception on the call to new Client(). Please keep in mind it works without dialect mvel. Thank you very much Mike Here's the stack trace . java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.init(Unknown Source) at org.mvel2.CompileException.showCodeNearError(CompileException.java:149) at org.mvel2.CompileException.generateErrorMessage(CompileException.java:219) at org.mvel2.CompileException.toString(CompileException.java:62) at java.lang.Throwable.init(Throwable.java:242) at java.lang.Exception.init(Unknown Source) at java.lang.RuntimeException.init(Unknown Source) at org.drools.runtime.rule.ConsequenceException.init(ConsequenceException.java:31) at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1101) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:709) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:673) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218) at com.ultimatesoftware.engine.tests.Wip.drools_new_client(Wip.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:292) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50
Re: [rules-users] Drools and Jersey
If you create an isolated test you can also create a new Jira issue, so it's easier for every one to reproduce, test and fix the problem. Cheers 2012/3/14 mike mike...@gmail.com Wolfgang, I am using dependency groupIdorg.drools/groupId artifactIddrools-core/artifactId version5.3.1.Final/version typejar/type /dependency Mauricio: It is something related to loading classes inside Jersey that brakes if I am using mvel. I use mvel always, because java syntax hurts me. Drools Team: I think the easier way would be to try this scenario yourself. This is a pom for Jersey. dependency groupIdcom.sun.jersey/groupId artifactIdjersey-client/artifactId version1.12/version /dependency Thank you very much Cheers Mike 2012/3/14 Mauricio Salatino sala...@gmail.com Sure.. we are interested in finding out what is happening. So, you find that when you are using mvel something inside Jersey fails? Did you find what exactly is happening inside Jersey? Probably it's something related with the class loaders, but I never seen an error like that when you specify the mvel dialect. By the way, what exactly are you trying to do with mvel? did you try using the mvel syntax without explicitly specifying the dialect? Cheers 2012/3/14 mike mike...@gmail.com Wait ... I haven't solved the problem ... I mean, as of now I cannot use mvel if I want to use Jersey ... and I don't think it's Jersey's fault because it works in any condition except when using mvel. I thought that the Drools team follows this list and might be interested in that bug. Thank you very much Mike 2012/3/14 Mauricio Salatino sala...@gmail.com Cool that you find that :) Cheers 2012/3/14 mike mike...@gmail.com Hi Mauricio, I spent like 2 days debugging, before realizing that mvel was the culprit. The error is a Null Exception when resolving some service inside Jersey. I have to check my browser history at home for more details but the exception was happening inside Jersey. Please notice I reduced the code to the minimum. I had 'real' code doing more reasonable things with new Client. Client c = new Client() fails too. Thank you very much Mike 2012/3/14 Mauricio Salatino sala...@gmail.com Hi Mike, I've never tried that before (a rule without the when part..) is good to know that it works :) Humm that's sounds weird.. why the dialect is affecting your Client creation. It could be that there is something wrong with the expression evaluation. It looks like MVEL cannot compile the new Client(); expression - at java.lang.String.init(Unknown Source) Did you try with something like: then \n Client c = new Client(); I'm just guessing here, because it looks strange 2012/3/14 mike mike...@gmail.com Hi Mauricio, Thank you for the speedy reply. Ia m making rest call to web services using jersey. I simplified the rule to the max. The 'when' is not really needed. I get the exception on the call to new Client(). Please keep in mind it works without dialect mvel. Thank you very much Mike Here's the stack trace . java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.init(Unknown Source) at org.mvel2.CompileException.showCodeNearError(CompileException.java:149) at org.mvel2.CompileException.generateErrorMessage(CompileException.java:219) at org.mvel2.CompileException.toString(CompileException.java:62) at java.lang.Throwable.init(Throwable.java:242) at java.lang.Exception.init(Unknown Source) at java.lang.RuntimeException.init(Unknown Source) at org.drools.runtime.rule.ConsequenceException.init(ConsequenceException.java:31) at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1101) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:709) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:673) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218) at com.ultimatesoftware.engine.tests.Wip.drools_new_client(Wip.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate
Re: [rules-users] Raising event signal from work item handler
Do you mean a ksession.signalEvent()?? Usually the work item is considered an execution outside the process context, so are not supposed to access the process context from there. Can you explains us a little bit about your use case? 2012/3/8 Swindells, Thomas tswinde...@nds.com Within a work item, if you need to signal an event how would you do it?** ** From a rules task you have access to the kcontext but generically this isn’t available. ** ** Thanks, ** ** Thomas -- ** This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmas...@nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary. NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00 ** ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Simple question about String comparison in Drool
you can just use String( this == key) On Wed, Mar 7, 2012 at 11:32 PM, shawn youngxiao...@hotmail.com wrote: I insert several strings into working memory to make a comparison. But how to compare a anonymous string to another string. code like: List String s = ArrayList String String key function void insertValue( s, KnowledgeHelper kh ) { for( String string : s ) { kh.insert( string ); } } ... When not $string : String( toString() == key) Then Obviously, toString() can not do this task. How to get the string's value ? Cheers. -- View this message in context: http://drools.46999.n3.nabble.com/Simple-question-about-String-comparison-in-Drool-tp3808352p3808352.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools 5.3 partitioned rule base
Why are you trying with that partitioning approach? By the why I notice that most of the time when people uses ruleflow-groups they didn't realize that all the evaluations are done at insertion time, not when the process reaches the rule flow group, is that you case? Doing consulting around these topics most of the clients doesn't need to use rule flow groups and they just need some control facts to speed up the processing times. Cheers On Fri, Mar 2, 2012 at 3:33 PM, gboro54 gbor...@gmail.com wrote: After investagation I found the following: 10:29:45,421 ERROR [stderr] (pool-38-thread-2) at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59) 10:29:45,423 ERROR [stderr] (pool-38-thread-2) at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:134) 10:29:45,424 ERROR [stderr] (pool-38-thread-2) at org.drools.reteoo.PartitionTaskManager$FactAssertAction.execute(PartitionTaskManager.java:272) 10:29:45,424 ERROR [stderr] (pool-38-thread-2) at org.drools.reteoo.PartitionTaskManager$PartitionTask.run(PartitionTaskManager.java:116) 10:29:45,425 ERROR [stderr] (pool-38-thread-2) at org.drools.concurrent.ExternalExecutorService$ObservableRunnable.run(ExternalExecutorService.java:443) 10:29:45,425 ERROR [stderr] (pool-38-thread-2) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 10:29:45,423 INFO [stdout] (pool-38-thread-1) SURCHARGES created 10:29:45,425 ERROR [stderr] (pool-38-thread-2) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 10:29:45,426 ERROR [stderr] (pool-38-thread-2) at java.lang.Thread.run(Unknown Source) Any thoughts? -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-3-partitioned-rule-base-tp3793558p3793788.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools 5.3 partitioned rule base
So the question is.. for processing those messages, you can set up multiple sessions and evaluate each message separately? or do you need to have all the messages in the same session? Cheers On Fri, Mar 2, 2012 at 3:58 PM, gboro54 gbor...@gmail.com wrote: I understand that all the evaluations are happening at insertion time. The main reason for the groups is to intermix logic needed to execute outside of rules(i.e I don't want rules invoking DAO's to retrieve data). I am trying to partition because I need to be able to get a high level of messages through these rules(a min of 1000/sec). -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-3-partitioned-rule-base-tp3793558p3793879.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools 5.3 partitioned rule base
But are the facts related with each other? do you need to analyze them all together inside the same session? Can you share a little bit more about your use cases? What do you mean with Execution execution of what? What do you mean with evaluation? Cheers On Fri, Mar 2, 2012 at 4:12 PM, gboro54 gbor...@gmail.com wrote: Executions need to happen in an order based on a data and a message id(at least at one part of the evaluation). Because of this my plan was to use dynamic salience and insert as many of the facts as I can at a time -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-3-partitioned-rule-base-tp3793558p3793941.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] traits - don more than 3 pojos, got IllegalArgumentException
Hi Michal, You need to change this: declare NiceMessage @format(trait) end to this: declare trait NiceMessage .. end Cheers 2012/2/29 Michal Bali michalb...@gmail.com Hi all, I came across this issue when trying out 'traits' with POJOs (not declared types). An IllegalArgumentException is being thrown when I apply the third 'don'. Here is how to reproduce: as the POJO I am using the Message class that comes with the project created by the Eclipse plugin. now the rule file: declare Message @Traitable end declare NiceMessage @format(trait) end rule load when then Message message = new Message(); message.setMessage(Hello World); insert(message); don(message, NiceMessage.class); Message unreadMessage = new Message(); unreadMessage.setMessage(unread); insert(unreadMessage); don(unreadMessage, NiceMessage.class); Message oldMessage = new Message(); oldMessage.setMessage(old); insert(oldMessage); System.out.println(don + oldMessage); don(oldMessage, NiceMessage.class); //*--- exception happens here * System.out.println(wont reach this point); end When I run this and rule 'load' fires the third 'don' will throw the following exception: Exception executing consequence for rule load in com.mycompany.app: java.lang.IllegalArgumentException: argument type mismatch at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1101) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:709) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:673) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:221) at com.mycompany.app.DroolsTest.main(DroolsTest.java:44) Caused by: java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at org.drools.factmodel.traits.TraitFactory.getProxy(TraitFactory.java:92) at org.drools.base.DefaultKnowledgeHelper.don(DefaultKnowledgeHelper.java:502) at org.drools.base.DefaultKnowledgeHelper.don(DefaultKnowledgeHelper.java:522) at com.mycompany.app.Rule_load_86ecf966a4c14d8486844cfae2e1e0d8.defaultConsequence(Rule_load_86ecf966a4c14d8486844cfae2e1e0d8.java:21) at com.mycompany.app.Rule_load_86ecf966a4c14d8486844cfae2e1e0d8DefaultConsequenceInvokerGenerated.evaluate(Unknown Source) at com.mycompany.app.Rule_load_86ecf966a4c14d8486844cfae2e1e0d8DefaultConsequenceInvoker.evaluate(Unknown Source) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091) ... 6 more Am I doing something wrong or is this a bug. I am running with 5.4.0.Beta2. BTW traits are a great piece of functionality. Thank you! Best regards, Michal ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] CLOUD mode Vs Stream Mode.
Hi, What exactly are you doing with events? I think that the temporal operators will work as expected. If you are working in cloud mode you will not have sliding windows, the concept of now and events lifecycle managements as stated in the docs. Cheers On Mon, Feb 27, 2012 at 10:51 AM, Hassan azbak...@gmail.com wrote: Hello, It's clair that to work with thae events we have to put our base configuration into STREAM mode like this: */KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); config.setOption( EventProcessingOption.STREAM );/* But in my code bellow I didn't use this mode and I didn't use Entry-points, Although my events work very well !! Help please !! -- View this message in context: http://drools.46999.n3.nabble.com/CLOUD-mode-Vs-Stream-Mode-tp3780295p3780295.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - CTO @ http://www.plugtree.com - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ http://www.jugargentina.org - Co-Founder @ http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users