[rules-users] issue in using packages
H i our ruleflow is coupled with a struts2 application. we use guvnor generated pkg files and create knowledgebase out of it and use a caching mechanism to store kbases for reuse. when i create a ksession out of the kbase and start a process , it works for the first time . whenever i try to start the same process second time using the cached kbase, i get the following exception : ERROR - ExceptionInterceptor.publishException(107) | ExceptionInterceptor received exception java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) etc ... at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) at weblogic.work.ExecuteThread.run(ExecuteThread.java:172) Caused by: java.lang.NoSuchMethodError: com.qwest.rx.ruleflow.Process_com_qwest_rx_ruleflow_0.action104(Lorg/drools/spi/ KnowledgeHelper;Lcom/qwest/rx/brain/drools/action/RceHolderUtil;Lorg/drools/spi/ProcessContext;)V at com.qwest.rx.ruleflow.Process_com_qwest_rx_ruleflow_0Action104Invoker.execute(Process_com_qwest_rx_ruleflow_0Action104Invoker.java:21) at org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl.executeAction(ExtendedNodeInstanceImpl.java:66) at org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerEvent(ExtendedNodeInstanceImpl.java:45) at org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl.internalTrigger(ExtendedNodeInstanceImpl.java:28) at org.drools.workflow.instance.node.StateBasedNodeInstance.internalTrigger(StateBasedNodeInstance.java:31) at org.drools.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:80) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135) at org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49) at org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:16) at org.drools.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:185) at org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:284) at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1763) at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1741) at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:284) at com.qwest.rx.brain.drools.action.GetNextPageletAction.execute(GetNextPageletAction.java:557) ... 98 more when i try to create the kbase by parsing rf files directly , they are all working fine. the same caching mechanism works well with rf files parsed kbases. any thoughts / suggestions? Regards, Dipasoke Chattopadhyay | * Office: +91 80 6618 4813 | Email: dipasoke.chattopadh...@qwest.commailto:dipasoke.chattopadh...@qwest.com This communication is the property of Qwest and may contain confidential or privileged information. Unauthorized use of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy all copies of the communication and any attachments. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] rules-users Digest, Vol 40, Issue 55
Hi All, Can someone tell me how to use create enums with Dynamic values in Guvnor. For example I need enum which does not contain static value like A,B,C rather these A,B,C values come from database. Nilima From: rules-users-requ...@lists.jboss.org To: rules-users@lists.jboss.org Date: 03/12/2010 10:36 PM Subject: rules-users Digest, Vol 40, Issue 55 Sent by: rules-users-boun...@lists.jboss.org Send rules-users mailing list submissions to rules-users@lists.jboss.org To subscribe or unsubscribe via the World Wide Web, visit https://lists.jboss.org/mailman/listinfo/rules-users or, via email, send a message with subject or body 'help' to rules-users-requ...@lists.jboss.org You can reach the person managing the list at rules-users-ow...@lists.jboss.org When replying, please edit your Subject line so it is more specific than Re: Contents of rules-users digest... Today's Topics: 1. Re: OutOfMemoryError on Marshalling with non-existence check in flow XOR split (heldeen) 2. Re: high sailence event/utility rules and ruleflows (H.C.) -- Message: 1 Date: Fri, 12 Mar 2010 07:49:03 -0800 (PST) From: heldeen held...@overstock.com Subject: Re: [rules-users] OutOfMemoryError on Marshalling with non-existence check in flow XOR split To: rules-users@lists.jboss.org Message-ID: 1268408943169-444246.p...@n3.nabble.com Content-Type: text/plain; charset=us-ascii I think I need to clarify a few things. First the OOME is not in running the rules but on marshalling the state for the flow, which I do after each command using a custom CommandService that marshals the session after each command is executed. Second, the ValidationRuleFlowGroup is only going to insert a ValidationResult() if there is something that is invalid. So a valid set of facts would have no ValidationResult() in memory, hence wanting to split to a valid branch on not ValidationResult(). -- View this message in context: http://n3.nabble.com/OutOfMemoryError-with-non-existence-check-in-flow-XOR-split-tp443126p444246.html Sent from the Drools - User mailing list archive at Nabble.com. -- Message: 2 Date: Fri, 12 Mar 2010 08:36:16 -0800 (PST) From: H.C. canterbu...@gmail.com Subject: Re: [rules-users] high sailence event/utility rules and ruleflows To: rules-users@lists.jboss.org Message-ID: 1268411776720-444339.p...@n3.nabble.com Content-Type: text/plain; charset=us-ascii Thanks, I tried this but I don't see my ruleflow group rules coming back and re-processing once the high priority auto focus rules in my new maintenance agenda group have executed. Do my rules in my ruleflow group now also need an agenda group and auto-focus set to be re-evaluated? -- View this message in context: http://n3.nabble.com/high-sailence-event-utility-rules-and-ruleflows-tp443327p444339.html Sent from the Drools - User mailing list archive at Nabble.com. -- ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users End of rules-users Digest, Vol 40, Issue 55 *** =-=-= Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] About fusion and collections
Hello All, Was doing some rule writing and am seeing some issues which I want to overcome. In Fusion when we send the facts into working memory.. there seems to be no way that rules are automatically getting triggered. We have to call fireAllRules after each fact insertion. Is this the way it was designed. Its like this in the stocktick example also This one should be simple for somebody with little more experience than me In the following rule rule raise alarm when Event($type : eventType) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then raise alarm In the above rule the raise alarm is getting called 10 times. .. How can I make it to be called only once. Thanks Amit ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools With Spring
Hi All, I am starting to work with Drools 5.1 and Spring framework. Please can u help with giving some examples or configuration files. Regards, Ram -- View this message in context: http://n3.nabble.com/Drools-With-Spring-tp449155p449155.html Sent from the Drools - User mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] GWT Console issue
Hi nanic, The gwt-server-console.jar contains 2 javaassit jar files. I have deleted both these jars and used only 1 javassist.jar file in the JBOSS lib folder. Try it Regards, Ram -- View this message in context: http://n3.nabble.com/GWT-Console-issue-tp448038p449169.html Sent from the Drools - User mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] About fusion and collections
I think something like this should work: rule raise alarm when Event($type : eventType) exists (ArrayList (size 10) from collect (Event(eventType == $type))) then raise alarm Of course that you can't use the $events anymore. You can use a flag too: rule raise alarm when not TheAlarmWasAlreadyTriggered() Event($type : eventType) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then raise alarm insert(new TheAlarmWasAlreadyTriggered()); best, 2010/3/15 Amit Kumar amitku...@gmail.com Hello All, Was doing some rule writing and am seeing some issues which I want to overcome. In Fusion when we send the facts into working memory.. there seems to be no way that rules are automatically getting triggered. We have to call fireAllRules after each fact insertion. Is this the way it was designed. Its like this in the stocktick example also This one should be simple for somebody with little more experience than me In the following rule rule raise alarm when Event($type : eventType) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then raise alarm In the above rule the raise alarm is getting called 10 times. .. How can I make it to be called only once. Thanks Amit ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Esteban Aliverti ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] About fusion and collections
Amit, Check fireUntilHalt() docs in order to set the engine to reactive mode... although, for most cases I've seen, you still have more control by defining the fireAllRules() cycle explicitly. Regarding your rule, the problem is that the first type is matched for multiple events. The simplest way to fix that is by pre-populating the working memory with all possible event types. In this case you would use a rule like: when EventType( $type : type ) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then // do something end You can also find the distinct event types using accumulate, but that is heavier and more complex than the previous example. Lets say event type is a String: when $types : Set() from accumulate( Event($type : eventType), collectSet( $type ) ) $type : String() from $types $events: ArrayList (size 10) from collect (Event(eventType == $type)) then // do something end I don't really recommend the second approach though. An intermediate approach is to have a separate rule logically insert all event types, and then use the same approach of the first example above: declare EventType type : String @key end when Event( $type : eventType ) then EventType et = new EventType(); et.setType( $type ); logicalInsert( et ); end []s Edson 2010/3/15 Amit Kumar amitku...@gmail.com Hello All, Was doing some rule writing and am seeing some issues which I want to overcome. In Fusion when we send the facts into working memory.. there seems to be no way that rules are automatically getting triggered. We have to call fireAllRules after each fact insertion. Is this the way it was designed. Its like this in the stocktick example also This one should be simple for somebody with little more experience than me In the following rule rule raise alarm when Event($type : eventType) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then raise alarm In the above rule the raise alarm is getting called 10 times. .. How can I make it to be called only once. Thanks Amit ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] About fusion and collections
Kewl !.. sounds good. Thanks for your help folks. I will try the options out. 2010/3/15 Edson Tirelli ed.tire...@gmail.com Amit, Check fireUntilHalt() docs in order to set the engine to reactive mode... although, for most cases I've seen, you still have more control by defining the fireAllRules() cycle explicitly. Regarding your rule, the problem is that the first type is matched for multiple events. The simplest way to fix that is by pre-populating the working memory with all possible event types. In this case you would use a rule like: when EventType( $type : type ) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then // do something end You can also find the distinct event types using accumulate, but that is heavier and more complex than the previous example. Lets say event type is a String: when $types : Set() from accumulate( Event($type : eventType), collectSet( $type ) ) $type : String() from $types $events: ArrayList (size 10) from collect (Event(eventType == $type)) then // do something end I don't really recommend the second approach though. An intermediate approach is to have a separate rule logically insert all event types, and then use the same approach of the first example above: declare EventType type : String @key end when Event( $type : eventType ) then EventType et = new EventType(); et.setType( $type ); logicalInsert( et ); end []s Edson 2010/3/15 Amit Kumar amitku...@gmail.com Hello All, Was doing some rule writing and am seeing some issues which I want to overcome. In Fusion when we send the facts into working memory.. there seems to be no way that rules are automatically getting triggered. We have to call fireAllRules after each fact insertion. Is this the way it was designed. Its like this in the stocktick example also This one should be simple for somebody with little more experience than me In the following rule rule raise alarm when Event($type : eventType) $events: ArrayList (size 10) from collect (Event(eventType == $type)) then raise alarm In the above rule the raise alarm is getting called 10 times. .. How can I make it to be called only once. Thanks Amit ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.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
Re: [rules-users] April 19th Boot Camp to be open to all
Need to come to the east coast some time! 2010/3/15 Mark Proctor mproc...@codehaus.org http://blog.athico.com/2010/03/april-19th-boot-camp-to-be-open-to-all.html We will now be opening the boot camp up to all, for the last 3 days. The boot camp was previously announced herehttp://blog.athico.com/2010/03/drools-open-source-healthcare.html. The over all schedule is below. I'll be putting up a registration wiki page up on line in the next day or two, like last years which you can fine herehttp://community.jboss.org/wiki/DroolsBootCampSanFranciscoJune2009. Keep an eye on the blog for more info soon. We are looking for people that would like to present, take a focus group or workshop. The topics can be on drools, or how drools is applied, or on projects that use drools, or just general interesting topics for rules, workflow, event processing and ontologies - anything you think the people there would be interested in. Email me if you would like to present *Where *- San Diego, CA (meeting place tbc)* Date *- Monday the 19th of April to Friday the 23rd of April Schedule - *Mon-Tue* (medical only) The the first two days are exclusive to the medical community and only people from medical organisations or with a medical background will be allowed to attend. - *Wed* (medical focus - open to all) The third day will still maintain a medical theme, wrapping up the last two days, but we will open it up for those that want to observe or participate. We will try and cover topics that will be interesting to all there, even if not from medical background, just be aware that medical discussions take priority. - *Thu-Fri* (general topics - open to all) The last two days is open to all and will have no specific topic ___ 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
Re: [rules-users] OutOfMemoryError with non-existence check in flow XOR split
Heath, This seems to be caused by an issue in persisting the current rule state when using a Not rule in a specific combination (and not specifically to your use of ruleflows). I have opened a JIRA for you and we will fix this asap. https://jira.jboss.org/jira/browse/JBRULES-2453 Kris Quoting heldeen held...@overstock.com: I am using drools marshalling for persistence and am getting an OOME with my simple rule flow. I have a custom CommandService that persists at the end of each execution. (I am not using JPA :-( ). In the rule flow I have a split that checks for the non-existence of a simple pojo using not ValidationResult() as one of the constraints. The other constraint is ValidationResult(valid == false). I get an OutOfMemoryError using the not in one of the constraints. Changing not ValidationResult() to ValidationResult(valid == true) results in normal operation. The flow is essentially Start-ValidationRuleFlowGroup-XOR Split-Valid Action XOR Invalid Action - End. The ValidationRuleFlowGroup has a simple set of rules that will insert a ValidationResult() fact if something is not valid. Anyone have any idea why checking for the non-existence of a fact causes this error. I'll post the pojo and the stack trace below. public class ValidationResult { private boolean isValid; private String message; public boolean isValid() { return isValid; } public void setValid(boolean isValid) { this.isValid = isValid; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2786) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94) at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1838) at java.io.ObjectOutputStream$BlockDataOutputStream.write(ObjectOutputStream.java:1769) at java.io.DataOutputStream.writeInt(DataOutputStream.java:182) at java.io.ObjectOutputStream$BlockDataOutputStream.writeInt(ObjectOutputStream.java:1904) at java.io.ObjectOutputStream.writeInt(ObjectOutputStream.java:769) at org.drools.marshalling.impl.OutputMarshaller.writeLeftTuple(OutputMarshaller.java:459) at org.drools.marshalling.impl.OutputMarshaller.writeInitialFactHandleLeftTuples(OutputMarshaller.java:356) at org.drools.marshalling.impl.OutputMarshaller.writeFactHandles(OutputMarshaller.java:251) at org.drools.marshalling.impl.OutputMarshaller.writeSession(OutputMarshaller.java:85) at org.drools.marshalling.impl.DefaultMarshaller.marshall(DefaultMarshaller.java:117) Thanks, Heath -- View this message in context: http://n3.nabble.com/OutOfMemoryError-with-non-existence-check-in-flow-XOR-split-tp443126p443126.html Sent from the Drools - User mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] rules-users Digest, Vol 40, Issue 55
On 15.03.2010 13:46, Nilima R wrote: Can someone tell me how to use create enums with Dynamic values in Guvnor. For example I need enum which does not contain static value like A,B,C rather these A,B,C values come from database. Hi, if the set of allowable enum literals/values is altogether dynamic, this probably cannot be achieved without dynamic bytecode generation (i. e. generate the enum class at runtime). I'm not aware that Drools supports this, you'd probably have to code this on your own. If your database contains a known set of enum values (like A, B, C), you could create an enum with these values and perform string to enum mapping using YourEnumClass.valueOf(nameOfLiteral). If both approaches don't fit your need, you can still stick with ordinary strings. Most of the times I worked with enums in a database, there actually was a finite set of allowable values - sometimes it's hard to find out all the values in this set, but should be doable. Otherwise an enum seems kind of a mis-fit for the problem at hand, because an enum (short for enumeration) actually means the set of values can be enumerated. Ansgar ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Rules categorization/packages
The latest builds seem to be no good for guvnor They do seem rich in features .. especially support for collect/accumulate in guvnor along with inbox and global packages. But But But.. on adding a fact in the when/then clause then all the attributes of the facts are not coming .. some attributes come.. not all of them. I am picking it from here https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/ Any other place I can look :) Thanks Amit On Mon, Feb 22, 2010 at 8:54 AM, Amit Kumar amitku...@gmail.com wrote: Thanks Jervis!! On Sun, Feb 21, 2010 at 7:05 PM, Jervisliu j...@redhat.com wrote: A new feature called Sharable artifacts/Global artifacts will be available in Drools 5.1. This feature allows you share an asset among different packages. It also creates a global area (you can consider it as a global package). Potentially you can promote an asset that you think is more appropriate to be defined in a global scope from your current package to the global area, so that this global asset can be reused by every package. This feature is already on trunk, maybe you want to give it a try. Any comments or feedbacks will be highly appreciated. Cheers, Jervis Amit Kumar wrote: Hello All, I am looking to organize the rules in different categories. But for distribution purposes We are creating packages for different roles/processing phases So a rule will reside in one pckage but for navigation it can belong to multiple categories So packages are like Shirts, Pants, Shoes, Sweaters Categories are Color, Material, Size, Gender and those have sub categories witin them We have rules which will device the category of the item Like red rule, blue rule, cloth rule, leather rule Now the problem we are facing is for category rules is if I define the rule in Shirt package .. then I will not be able ot use it in Pant package.. Will have to redefine it. The other problem in this scenario is If I have a price rule in Shirt package and the category is Blue Color and XL Size then I will have to put it in both categories When I put the Blue Rule on Blue Category and XL Rule on XL Category and I put the rule in both categories.. will it be an and relationship or will be an OR Regards, Amit ___ 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