Re: [rules-users] Rule Flow Creation
Hi, Apologies if this is the wrong thread. We are also interested in this kind of issues on whether the rule flow feature will be supported in 6.x as it was in 5.x as we are heavily dependent on RuleFlow. Salience is not an easy solution to maintain. I did verify this with the 6.0 feature meeting with Mark P last Wednesday and was assured that rule flow will still be supported. So I am interested to know if this is an issue and users of rule flow will be forced to migrate to bpmn/jbpmn before they consider using the 6.x version?. Thanks and regards, Adarsh CHAINI From: mattmadhavan mmadha...@facs.org To: rules-users@lists.jboss.org Date: 27/02/2014 15:37 Subject: Re: [rules-users] Rule Flow Creation Sent by: rules-users-boun...@lists.jboss.org Hi Ray, Like I am afraid, this is left over document from the old days. You have to look into jbpm, its actually aneat. But I am afraid Eclipse IDE is not gonna cut. If you are looking for simple rule-flow you can achieve it with Salience. What are your requirements. Thakis Matt'M -- View this message in context: http://drools.46999.n3.nabble.com/Drools-6-x-and-Maven-tp4028312p4028378.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 HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and full advice to the corporate finance client about the valuation and pricing of the offering as well as internal systems, controls and procedures to identify and manage conflicts of interest. HSBC Bank plc Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom Registered in England - Number 14259 Authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority - SAVE PAPER - THINK BEFORE YOU PRINT! This transmission has been issued by a member of the HSBC Group HSBC for the information of the addressee only and should not be reproduced and/or distributed to any other person. Each page attached hereto must be read in conjunction with any disclaimer which forms part of it. Unless otherwise stated, this transmission is neither an offer nor the solicitation of an offer to sell or purchase any investment. Its contents are based on information obtained from sources believed to be reliable but HSBC makes no representation and accepts no responsibility or liability as to its completeness or accuracy.___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] permgen leak
Mark, Thanks for your reply. We have been testing against 5.5.0.Final and we faced some problems . One of the problem was that we had a quick fix to mvel component from redhat guys (with their good will )to one of the critical concurrency issues we faced .But it seems that fix is not part of these community releases and there has been changes to mvel after that change. Is there a way that we can make the same permgen fix to the 5.4.0.Final codebase?. Or Is this possible to get the concurrency fix these newer versions?. Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! From: Mark Proctor mproc...@codehaus.org To: Rules Users List rules-users@lists.jboss.org Date: 15/01/2014 21:05 Subject: Re: [rules-users] permgen leak Sent by: rules-users-boun...@lists.jboss.org why not just update to 5.6, it?s fixed there. http://downloads.jboss.org/drools/release/5.6.0.Final/ You can specify dialect at the top of the drl file, to be applied to all rules in that file. But that?s about it. Mark On 15 Jan 2014, at 20:51, adarsh.cha...@hsbcib.com wrote: Is this possible to set everything to MVEL Dialect as we are using JavaDialect in all our rules. We had this few times before and we managed to avoid it with usage of CMSClassUnlaoadingEnabled . But this has again comeback recently because the rate at which the classes are produced with load,CMS is unable to collect the permgen space at same rate so it trips Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! From: Mark Proctor mproc...@codehaus.org To: Rules Users List rules-users@lists.jboss.org Date: 15/01/2014 18:27 Subject: Re: [rules-users] permgen leak Sent by: rules-users-boun...@lists.jboss.org You can try setting everything to the MVEL dialect, and also forcing MVEL to reflection via the system property (turning off jit) http://mvel.codehaus.org/Disabling+the+JIT+Compiler Mark On 15 Jan 2014, at 18:23, adarsh.cha...@hsbcib.com wrote: Hi Mark/Davide Is there a work around to this problem in 5.4?. Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! From: Mark Proctor mproc...@codehaus.org To: Rules Users List rules-users@lists.jboss.org Date: 08/01/2014 04:46 Subject: Re: [rules-users] permgen leak Sent by: rules-users-boun...@lists.jboss.org For anyone interested. The commit involves addressing two needs. 1) Enforcing MVEL reflection mode throughout - MVEL ASM optimiser can NEVER be used for anything (it doesn?t add much value anyway). 2) Avoiding giving the template system the root class loader(which we use for dynamic stuff), as those templates are statically cached. https://github.com/sotty/drools/commit/1b75d4785861e72338cc5ea1280610a7937be017 Mark On 8 Jan 2014, at 00:53, Mark Proctor mproc...@codehaus.org wrote: The root of the perm gen leak has now be solved, thanks to some heroic work by community developer Davide Sottara. This is just in time for the 5.6 release going out this week. You will not need to use the kbase.dispose() work around. Mark On 6 Jan 2014, at 20:50, Mark Proctor mproc...@codehaus.org wrote: The 5.6 approach should be considered a work around, not a fix. Somewhere a ref is being held, that shouldn?t be - we just haven?t found it yet. Mark On 6 Jan 2014, at 19:17, Davide Sottara dso...@gmail.com wrote: I have run pmander's tests, and reported in a previous email. The leak in 5.x is due to the nature of the composite classloader, and dispose() forces the memory to be released. I don't remember if that fix was in 5.6.CR1 (probably not), so you may have to try 5.6.0-SNAPSHOT or wait for the end of the week. 6.x does not suffer from the same problem, but has a different issue - no way to unload kie modules once they are cached - which Mario has been working on. In either case, pmander's test works fine in both 5.6.x and 6.x after these fixes Davide On 01/06/2014 07:56 PM, Mark Proctor wrote: I
Re: [rules-users] permgen leak
Hi Mark/Davide Is there a work around to this problem in 5.4?. Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! From: Mark Proctor mproc...@codehaus.org To: Rules Users List rules-users@lists.jboss.org Date: 08/01/2014 04:46 Subject: Re: [rules-users] permgen leak Sent by: rules-users-boun...@lists.jboss.org For anyone interested. The commit involves addressing two needs. 1) Enforcing MVEL reflection mode throughout - MVEL ASM optimiser can NEVER be used for anything (it doesn?t add much value anyway). 2) Avoiding giving the template system the root class loader(which we use for dynamic stuff), as those templates are statically cached. https://github.com/sotty/drools/commit/1b75d4785861e72338cc5ea1280610a7937be017 Mark On 8 Jan 2014, at 00:53, Mark Proctor mproc...@codehaus.org wrote: The root of the perm gen leak has now be solved, thanks to some heroic work by community developer Davide Sottara. This is just in time for the 5.6 release going out this week. You will not need to use the kbase.dispose() work around. Mark On 6 Jan 2014, at 20:50, Mark Proctor mproc...@codehaus.org wrote: The 5.6 approach should be considered a work around, not a fix. Somewhere a ref is being held, that shouldn?t be - we just haven?t found it yet. Mark On 6 Jan 2014, at 19:17, Davide Sottara dso...@gmail.com wrote: I have run pmander's tests, and reported in a previous email. The leak in 5.x is due to the nature of the composite classloader, and dispose() forces the memory to be released. I don't remember if that fix was in 5.6.CR1 (probably not), so you may have to try 5.6.0-SNAPSHOT or wait for the end of the week. 6.x does not suffer from the same problem, but has a different issue - no way to unload kie modules once they are cached - which Mario has been working on. In either case, pmander's test works fine in both 5.6.x and 6.x after these fixes Davide On 01/06/2014 07:56 PM, Mark Proctor wrote: I?ve been told 5.6 will be released this week. This is because the JCR2GIT migration tool, in 5.6 is needed for our 6.0 product. Davide's current kbase.dispose() method, on the concrete class, should just be considered a work around for the problem. Unless this is fixed by someone in the community, I don?t think any core developers will have time to address this. At least not for 5.x; we?ll continue to look into it for 6.x. Mark On 6 Jan 2014, at 16:14, brachi brach...@sapiens.com wrote: see previous messages, pmander attached a unit test -- View this message in context: http://drools.46999.n3.nabble.com/permgen-leak-tp4027038p4027539.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 ___ 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 HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and full advice to the corporate finance client about the valuation and pricing of the offering as well as internal systems, controls and procedures to identify and manage conflicts of interest. HSBC Bank plc Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom Registered in England - Number 14259 Authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate
Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue
Hi , 1)Also remember that even 5.6, while a bit more robust from that perspective, is not guaranteed to be 100% thread safe. Is there any plan to make this 100% thread safe or are we saying that highly concurrent systems are better off drools?. 2)Ruleflows, however, have been informally deprecated in favor of proper bpmn business processes for a while, so not much was added there, but they should still be supported in 5.6. Is there any plan to completely remove the rule flow features in near future or later versions?.If so projects that are using rule flow features can't use new features of those later versions of the release unless they migrate to bpmn?. Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! From: Davide Sottara dso...@gmail.com To: Rules Users List rules-users@lists.jboss.org Date: 18/12/2013 07:42 Subject: Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue Sent by: rules-users-boun...@lists.jboss.org Adarsh, CR1 is candidate release 1 and is available from the JBoss Maven Repositories. 5.6.0.Final will probably be released this week. There are quite a few internal differences between 5.3 and 5.6, but as far as I know the APIs have remained the same, so it should be possible to switch almost effortlessly. Others may be able to comment on their upgrade experience. Ruleflows, however, have been informally deprecated in favor of proper bpmn business processes for a while, so not much was added there, but they should still be supported in 5.6. Also remember that even 5.6, while a bit more robust from that perspective, is not guaranteed to be 100% thread safe. Davide On 12/17/2013 07:00 AM, adarsh.cha...@hsbcib.com wrote: Davide, Thanks for your reply on this.What does CR1 stands for in 5.6.0.CR1 and can someone point me to the release life cycle timelines?. Also the important aspect is are 5.6.0.CR1 and 5.5.0.Final versions backward compatible to 5.3.0.Final and fully regressed ? Is there any documentation that describes the major changes like this .We are mostly using the rule engine with the rule flow aspects of the product Thanks and regards, Adarsh CHAINI From: Davide Sottara dso...@gmail.com To: rules-users@lists.jboss.org Date: 14/12/2013 19:56 Subject: Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue Sent by: rules-users-boun...@lists.jboss.org As far as I know, older versions of Drools were not guaranteed to be thread-safe, and the whole (de)serialization subsystem has been upgraded since 5.3.0.Final. Could you try a later version such as 5.5.0.Final or 5.6.0.CR1? Bugs and issues are usually reported using JIRA (community) or Bugzilla (product) You can find more information on how to report/contribute here: http://www.jboss.org/contribute or in the drools documentation, chapter 1.2 Davide On 12/13/2013 12:39 PM, adarsh.cha...@hsbcib.com wrote: Hi, We have found that some of the drools classes are not thread safe and hence causing the whole KB serialisation and deserialisation issues in a highly concurrent distributed cluster. The below is an example of one of the instances we have come across where the usage of a non thread safe collection as instance variables has caused the issue. Could someone look into this and advise: 1) If this has been reported /identified and logged somewhere as an issue already 2)If there has been any fix to problems like this in later versions of 5.3.0.Final ?. 3)If not fixed already what is the process to initiate a fix. Caused by: java.io.InvalidObjectException: Illegal mappings count: -1 at java.util.HashMap.readObject(HashMap.java:1130) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeReadObject( ObjectStreamClass.java:1004) at java.io.ObjectInputStream.readSerialData( ObjectInputStream.java:1891) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1796) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at org.jbpm.workflow.core.DroolsAction.readExternal( DroolsAction.java:61) at org.jbpm.workflow.core.impl.DroolsConsequenceAction.readExternal( DroolsConsequenceAction.java:49) at java.io.ObjectInputStream.readExternalData
Re: [rules-users] Drools KB Object hierarchy Serialisation and Deserialisation thread safety issue
Also remember that even 5.6, while a bit more robust from that perspective, is not guaranteed to be 100% thread safe. Is there a document that details this robustness and what has changed ?. Ruleflows, however, have been informally deprecated in favor of proper bpmn business processes for a while, so not much was added there, but they should still be supported in 5.6. On above , what is the time line from deprecation to complete removal in future versions?. How easy it is to migrate from the rule flow to the jbpmn? .Is there a quick migration procedure/tool. Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! From: Davide Sottara dso...@gmail.com To: Rules Users List rules-users@lists.jboss.org Date: 18/12/2013 07:42 Subject: Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue Sent by: rules-users-boun...@lists.jboss.org Adarsh, CR1 is candidate release 1 and is available from the JBoss Maven Repositories. 5.6.0.Final will probably be released this week. There are quite a few internal differences between 5.3 and 5.6, but as far as I know the APIs have remained the same, so it should be possible to switch almost effortlessly. Others may be able to comment on their upgrade experience. Ruleflows, however, have been informally deprecated in favor of proper bpmn business processes for a while, so not much was added there, but they should still be supported in 5.6. Also remember that even 5.6, while a bit more robust from that perspective, is not guaranteed to be 100% thread safe. Davide On 12/17/2013 07:00 AM, adarsh.cha...@hsbcib.com wrote: Davide, Thanks for your reply on this.What does CR1 stands for in 5.6.0.CR1 and can someone point me to the release life cycle timelines?. Also the important aspect is are 5.6.0.CR1 and 5.5.0.Final versions backward compatible to 5.3.0.Final and fully regressed ? Is there any documentation that describes the major changes like this .We are mostly using the rule engine with the rule flow aspects of the product Thanks and regards, Adarsh CHAINI From: Davide Sottara dso...@gmail.com To: rules-users@lists.jboss.org Date: 14/12/2013 19:56 Subject: Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue Sent by: rules-users-boun...@lists.jboss.org As far as I know, older versions of Drools were not guaranteed to be thread-safe, and the whole (de)serialization subsystem has been upgraded since 5.3.0.Final. Could you try a later version such as 5.5.0.Final or 5.6.0.CR1? Bugs and issues are usually reported using JIRA (community) or Bugzilla (product) You can find more information on how to report/contribute here: http://www.jboss.org/contribute or in the drools documentation, chapter 1.2 Davide On 12/13/2013 12:39 PM, adarsh.cha...@hsbcib.com wrote: Hi, We have found that some of the drools classes are not thread safe and hence causing the whole KB serialisation and deserialisation issues in a highly concurrent distributed cluster. The below is an example of one of the instances we have come across where the usage of a non thread safe collection as instance variables has caused the issue. Could someone look into this and advise: 1) If this has been reported /identified and logged somewhere as an issue already 2)If there has been any fix to problems like this in later versions of 5.3.0.Final ?. 3)If not fixed already what is the process to initiate a fix. Caused by: java.io.InvalidObjectException: Illegal mappings count: -1 at java.util.HashMap.readObject(HashMap.java:1130) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeReadObject( ObjectStreamClass.java:1004) at java.io.ObjectInputStream.readSerialData( ObjectInputStream.java:1891) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1796) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at org.jbpm.workflow.core.DroolsAction.readExternal( DroolsAction.java:61) at org.jbpm.workflow.core.impl.DroolsConsequenceAction.readExternal( DroolsConsequenceAction.java:49) at java.io.ObjectInputStream.readExternalData( ObjectInputStream.java:1835) at java.io.ObjectInputStream.readOrdinaryObject
Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue
Davide, Thanks for your reply on this.What does CR1 stands for in 5.6.0.CR1 and can someone point me to the release life cycle timelines?. Also the important aspect is are 5.6.0.CR1 and 5.5.0.Final versions backward compatible to 5.3.0.Final and fully regressed ? Is there any documentation that describes the major changes like this .We are mostly using the rule engine with the rule flow aspects of the product Thanks and regards, Adarsh CHAINI From: Davide Sottara dso...@gmail.com To: rules-users@lists.jboss.org Date: 14/12/2013 19:56 Subject: Re: [rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue Sent by: rules-users-boun...@lists.jboss.org As far as I know, older versions of Drools were not guaranteed to be thread-safe, and the whole (de)serialization subsystem has been upgraded since 5.3.0.Final. Could you try a later version such as 5.5.0.Final or 5.6.0.CR1? Bugs and issues are usually reported using JIRA (community) or Bugzilla (product) You can find more information on how to report/contribute here: http://www.jboss.org/contribute or in the drools documentation, chapter 1.2 Davide On 12/13/2013 12:39 PM, adarsh.cha...@hsbcib.com wrote: Hi, We have found that some of the drools classes are not thread safe and hence causing the whole KB serialisation and deserialisation issues in a highly concurrent distributed cluster. The below is an example of one of the instances we have come across where the usage of a non thread safe collection as instance variables has caused the issue. Could someone look into this and advise: 1) If this has been reported /identified and logged somewhere as an issue already 2)If there has been any fix to problems like this in later versions of 5.3.0.Final ?. 3)If not fixed already what is the process to initiate a fix. Caused by: java.io.InvalidObjectException: Illegal mappings count: -1 at java.util.HashMap.readObject(HashMap.java:1130) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeReadObject( ObjectStreamClass.java:1004) at java.io.ObjectInputStream.readSerialData( ObjectInputStream.java:1891) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1796) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370 ) at org.jbpm.workflow.core.DroolsAction.readExternal( DroolsAction.java:61) at org.jbpm.workflow.core.impl.DroolsConsequenceAction.readExternal( DroolsConsequenceAction.java:49) at java.io.ObjectInputStream.readExternalData( ObjectInputStream.java:1835) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1794) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370 ) at org.drools.rule.JavaDialectRuntimeData.readExternal( JavaDialectRuntimeData.java:182) at java.io.ObjectInputStream.readExternalData( ObjectInputStream.java:1835) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1794) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370 ) at java.util.HashMap.readObject(HashMap.java:1155) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeReadObject( ObjectStreamClass.java:1004) at java.io.ObjectInputStream.readSerialData( ObjectInputStream.java:1891) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1796) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370 ) at org.drools.rule.DialectRuntimeRegistry.readExternal( DialectRuntimeRegistry.java:59) at java.io.ObjectInputStream.readExternalData( ObjectInputStream.java:1835) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1794) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370 ) at org.drools.rule.Package.readExternal(Package.java:197) at java.io.ObjectInputStream.readExternalData( ObjectInputStream.java:1835) at java.io.ObjectInputStream.readOrdinaryObject( ObjectInputStream.java:1794
[rules-users] Drools KB Object hierarchy Serilisation and Deserialisation thread safety issue
) at java.io.ObjectInputStream.readObject0( ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370 ) at com.hsbc.gbm.dsl.domain.DSLRuleSet$Serializer.createInstance( DSLRuleSet.java:328) at com.hsbc.gbm.dsl.domain.DSLRuleSet$Serializer.createInstance( DSLRuleSet.java:1) at com.hsbc.gbm.dsl.domain.AbstractSerializer.deserialize( AbstractSerializer.java:144) Thanks and regards, Adarsh CHAINI SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc 8 Canada Square, London E14 5HQ, UK ___ Phone Int: (0)79914720 Ext: +44 (0)20 79914720 Mobile +44(0)7595530105 Email adarsh.cha...@hsbcib.com ___ Protect our environment - please only print this if you have to! HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and full advice to the corporate finance client about the valuation and pricing of the offering as well as internal systems, controls and procedures to identify and manage conflicts of interest. HSBC Bank plc Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom Registered in England - Number 14259 Authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority - SAVE PAPER - THINK BEFORE YOU PRINT! This transmission has been issued by a member of the HSBC Group HSBC for the information of the addressee only and should not be reproduced and/or distributed to any other person. Each page attached hereto must be read in conjunction with any disclaimer which forms part of it. Unless otherwise stated, this transmission is neither an offer nor the solicitation of an offer to sell or purchase any investment. Its contents are based on information obtained from sources believed to be reliable but HSBC makes no representation and accepts no responsibility or liability as to its completeness or accuracy.___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Perm gen grows constantly
We had this issue where the permgen space was not reclaimed as CMS does not by default reclaim unless you use CMSClassUnloadingEnabled . After that we have not seen this though the permgen space keeps growing with addition of rules.The only thing we are afraid that if the permgen space requirement becomes same/greater than the threshold that CMS reclaims then what will happen?.We keep changing/increasing the permgen space but there is a limit to this at some point we can't allocate more proportion of memory for permgen space only ... Thanks Regards, Adarsh SENIOR LEAD DEVELOPMENT SPECIALIST SCJP, SCWCD FINANCE TECHNOLOGY HSBC BANK PLC HBEU 8 Canada Square,Canary Wharf, London,E14 5HQ,United Kingdom -- Phone +44 207914720 Mobile 07595530105 Email. adarsh.cha...@hsbcib.com From: Mark Proctor mproc...@codehaus.org To: Rules Users List rules-users@lists.jboss.org Date: 18/11/2013 17:12 Subject: Re: [rules-users] Drools Perm gen grows constantly Sent by: rules-users-boun...@lists.jboss.org Are you saying the permgen is leaking? That you update the rules, and no perigean space is reclaimed? There are some issues with the JVM, that I?ve seen before, which may be the problem. Such as the CMSClassUnloadingEnabled issue: http://java.dzone.com/articles/busting-permgen-myths I?d be interested to know if this is a pergmen leak, and if it continues on 6.x. If it does, maybe you could work with us to find out why it?s not being reclaimed? Mark On 18 Nov 2013, at 16:56, pmander paul.s.man...@gmail.com wrote: Thanks for clearing this up. The overhead for us is negligible and more important that the application is survivable. Using Java as the dialect would appear to not be a option for anyone then? We are using drools to process around 50Mil transactions against 15k rules. This is distributed over 32 nodes to get the end to end performance we need. Using java dialect on initial run with a mac perm size of 512Mb copes ok but on subsequent runs we run out of perm gen space and the processes take up tons of cpu and then run out of memory. For each run we have to recreate the knowledge base. -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Perm-gen-grows-constantly-tp4026673p4026812.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 HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and full advice to the corporate finance client about the valuation and pricing of the offering as well as internal systems, controls and procedures to identify and manage conflicts of interest. HSBC Bank plc Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom Registered in England - Number 14259 Authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority - SAVE PAPER - THINK BEFORE YOU PRINT! This transmission has been issued by a member of the HSBC Group HSBC for the information of the addressee only and should not be reproduced and/or distributed to any other person. Each page attached hereto must be read in conjunction with any disclaimer which forms part of it. Unless otherwise stated, this transmission is neither an offer nor the solicitation of an offer to sell or purchase any investment. Its contents are based on information obtained from sources believed to be reliable but HSBC makes no representation and accepts no responsibility or liability as to its completeness or accuracy.___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools 5,3.1 with MVEL 2.1 Concurrency issue
Hi , We have noted another incident in our testing environment where we have noted that there is a concurrency issue with the drools and mvel version we are using where the threads are blocked for a long time resulting the application node/JVM reach an unexpected state which needed to be restarted.Could some one look into this if there is a known defect on this and if it has been resolved in a later version?. Thread[DSLFpmlDataRecordKeepingTradeViewCacheWorker:5,5,DSLFpmlDataRecordKeepingTradeViewCache] java.util.WeakHashMap.get(WeakHashMap.java:470) org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246) org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:224) org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:509) org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120) org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381) org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273) org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62) org.mvel2.MVEL.compileExpression(MVEL.java:810) org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:426) org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:243) org.drools.base.dataproviders.MVELDataProvider.compile(MVELDataProvider.java:83) org.drools.rule.MVELDialectRuntimeData.onBeforeExecute(MVELDialectRuntimeData.java:162) org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138) org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295) org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:223) org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116) java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1835) java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1794) java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) Thread[DSLFpmlDataRecordKeepingCacheWorker:39,5,DSLFpmlDataRecordKeepingCache] java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:386) java.util.WeakHashMap.getTable(WeakHashMap.java:417) java.util.WeakHashMap.get(WeakHashMap.java:464) org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246) org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:224) org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:509) org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120) org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381) org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273) org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62) org.mvel2.MVEL.compileExpression(MVEL.java:810) org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:426) org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:243) org.drools.base.mvel.MVELPredicateExpression.compile(MVELPredicateExpression.java:69) org.drools.rule.MVELDialectRuntimeData.onBeforeExecute(MVELDialectRuntimeData.java:162) org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138) org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295) org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:223) org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116) java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1835) java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1794) java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) We have found a similar BUG in the drools defect database https://issues.jboss.org/i#browse/DROOLS-81 but the scenarios are bit different. In our case it has happened when we deserialize the serilized KnowledgeBaseImpl by multiple threads and it seems that the problem is due to usage of a java.util.WeakHashMap as a class variable in org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246) Thanks Regards, Adarsh SENIOR LEAD DEVELOPMENT SPECIALIST SCJP, SCWCD FINANCE TECHNOLOGY HSBC BANK PLC HBEU 8 Canada Square,Canary Wharf, London,E14 5HQ,United Kingdom -- Phone +44 207914720 Mobile 07595530105 Email. adarsh.cha...@hsbcib.com From: Imran Shafiq isha...@redhat.com To: Adarsh CHAINI/IBEU/HSBC@HSBC Date: 17/09/2013 18:55 Subject: Drools Community Issue. Hi Ardash, I've seen details of the recent issue you have experienced with the community Drools product; I was keen to contact you regarding this. We have been
Re: [rules-users] What is the defect tracking process for Drools Community Edition
Thanks.Looks like there is a bug already.Need to verify the versions of the fix though it says it was fixed on 5.2 and we are on 5.3(unless there some internal dependencies that uses earlier version) https://issues.jboss.org/browse/JBPM-3347 Thanks Regards, Adarsh SENIOR LEAD DEVELOPMENT SPECIALIST SCJP, SCWCD FINANCE TECHNOLOGY HSBC BANK PLC HBEU 8 Canada Square,Canary Wharf, London,E14 5HQ,United Kingdom -- Phone +44 207914720 Mobile 07595530105 Email. adarsh.cha...@hsbcib.com From: Stephen Masters stephen.mast...@me.com To: Rules Users List rules-users@lists.jboss.org Date: 06/09/2013 16:01 Subject: Re: [rules-users] What is the defect tracking process for Drools Community Edition Sent by: rules-users-boun...@lists.jboss.org That sounds like a bug I came across a little while back. A bug in my code, not Drools. ;) If you create listeners and attach them to a session, then of course, you need to remove them manually. The session will have references to them, so they can never be garbage collected. It's the same with any callback model. However, if you do find an actual bug, you can raise it here: https://issues.jboss.org/secure/Dashboard.jspa Note that unless you are paying for support from JBoss, then you won't be getting a patch from them. If they fix the bug, then it will most likely be available in a later major binary release. And there will most likely be new bugs in that release. If you want a patch for Drools (community), you need to get the code and build it yourself. Steve On 6 Sep 2013, at 09:20, adarsh.cha...@hsbcib.com wrote: All, We are using drools as our rule engine in one of our mission critical application which is distributed in nature . Recently we have found a very bad memory leak with in the drools that does not clean the some of the listeners after the execution of the session(stateless in our case). This caused our distributed JVM's to grow quite rapidly in and we had to fix this by manually removing those listener which we never added as users of the API. What is the process to track this and find if this is already known and fixed in a later version. We are using the following components and dependencies where ${drools.ver} is drools.ver5.3.1.Final/drools.ver dependency groupIdorg.drools/groupId artifactIddrools-core/artifactId version${drools.ver}/version /dependency dependency groupIdorg.drools/groupId artifactIddrools-compiler/artifactId version${drools.ver}/version /dependency dependency groupIdorg.drools/groupId artifactIddrools-spring/artifactId version${drools.ver}/version /dependency !-- -- dependency groupIdorg.drools/groupId artifactIddrools-decisiontables/ artifactId version${drools.ver}/version /dependency Thanks Regards, Adarsh HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and full advice to the corporate finance client about the valuation and pricing of the offering as well as internal systems, controls and procedures to identify and manage conflicts of interest. HSBC Bank plc Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom Registered in England - Number 14259 Authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority - SAVE PAPER - THINK BEFORE YOU PRINT! This transmission has been issued by a member of the HSBC Group HSBC for the information of the addressee only and should not be reproduced and/or distributed to any other person. Each page attached hereto must be read in conjunction with any disclaimer which forms part of it. Unless otherwise stated, this transmission is neither an offer nor the solicitation of an offer to sell or purchase any
Re: [rules-users] Integrate Drools with Java application, need recommendations
I think it all depends on the architecture and the type of application and the usage of rules with in those applications. Having a separate server adds another single point of failure and latency. The applications that are very distributed in nature and spread across 100's of JVM's would like the business logic more close to the data present in those nodes/JVM's. Thanks Regards, Adarsh SENIOR LEAD DEVELOPMENT SPECIALIST SCJP, SCWCD FINANCE TECHNOLOGY HSBC BANK PLC HBEU 8 Canada Square,Canary Wharf, London,E14 5HQ,United Kingdom -- Phone +44 207914720 Mobile 07595530105 Email. adarsh.cha...@hsbcib.com From: Genene Geda gg...@ghx.com To: Rules Users List rules-users@lists.jboss.org Date: 06/09/2013 16:22 Subject: Re: [rules-users] Integrate Drools with Java application, need recommendations Sent by: rules-users-boun...@lists.jboss.org My preference is option #2 - REST based Why? That way you will have rules as a service and you can serve more than one application. Your interface to the GUVNOR repository would be from this rules service server instead of each application duplicating the same code. I am building rules service as a horizontal for all applications to use it when they need it. In multi-applications environment, standing rules as a service is in my opinion - the best solution. From the limited test I did, the cost of invoking these RESTful rules services is minimal than the cost to call GUVNOR to load the knowledge base. So if you are using GUVNOR as a rules repository ( which is a key requirement to achieve separation of business rules/ logic from application code base - and to gradually engage the business analysts to fully or partially own rules authoring) from my limited experience so far, option #2 is the best approach. Let's know what you decide eventually and the challenges / opportunities Genene -Original Message- From: rules-users-boun...@lists.jboss.org [ mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Stephen Masters Sent: Thursday, September 05, 2013 6:00 PM To: Rules Users List Subject: Re: [rules-users] Integrate Drools with Java application, need recommendations My preference is option 1 ... using a Spring application with a class which wraps a knowledge base / session. This has the advantage that sometimes I really do want to be able to mix up rules results with logic that I want to implement in Java code. There's obviously a performance impact if you additionally marshall to a separate Drools server, but not a huge amount. The decision should be more about whether you expect all business logic to be implemented in the Drools rules or a combination of rules and business logic code. Steve On 6 Sep 2013, at 00:15, srikanthmalli srikanthma...@gmail.com wrote: Hi, I am trying Drools/Guvnor for very first time, we are planned to do Rule Authoring in Guvnor, compile, build and download the package to Rule Package Directory. Now the question I am having is, what is the best way to integrate Drools with our Java application? Option 1) Build the knowledge agent and start inserting the facts into memory for rule evaluation in our application. In this case Drools engine use JVM same as application JVM. Option 2) Have a Drools Server which builds the knowledge agent, and application can send the requests to Drools Server for rule evaluation using REST API. Rules will be executed in separate JVM than application JVM. I also wondering is there any performance (in terms of execution time) difference between the options mentioned above? Could you please also let me know if I am thinking in the right direction? -Sri -- View this message in context: http://drools.46999.n3.nabble.com/Integrate-Drools-with-Java-applicati on-need-recommendations-tp4025834.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 ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and