From mproctor at codehaus.org Tue Apr 1 09:08:51 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Tue, 1 Apr 2014 14:08:51 +0100 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> Message-ID: any news? Mark On 30 Mar 2014, at 13:38, Mark Proctor wrote: > > On 30 Mar 2014, at 13:26, kellyajp wrote: > >> I'll get that to you on Monday >> >> On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <[hidden email]> wrote: >> >>> Are you able to isolate what the FH?s are referencing, > Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >>> that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>> >>> Mark >>> On 30 Mar 2014, at 09:03, kellyajp <[hidden email]> wrote: >>> >>>> Thanks >>>> >>>> I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>> >>>> Andy >>>> On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <[hidden email]> wrote: >>>> >>>>> Can you get us a unit test demonstrating this, and we?ll look into it as a priority. >>>>> >>>>> Mark >>>>> On 28 Mar 2014, at 15:40, kellyajp <[hidden email]> wrote: >>>>> >>>>> > We have upgraded from Drools 5 -> Drools 6.01 and when repeating the >>>>> > processing in each environment we have very different object counts that is >>>>> > causing memory to run out on Drools 6: >>>>> > >>>>> > Below is an extract from a heap dump >>>>> > >>>>> > In Drools 6 the main objects in the heap are >>>>> > 1: 4378006 700480960 org.drools.core.reteoo.RightTuple >>>>> > >>>>> > Where as in Drools 5 there are way less objects >>>>> > 92: 19022 1826112 org.drools.reteoo.RightTuple >>>>> > >>>>> > Has anyone else had any experience of this issue? >>>>> > >>>>> > Thanks >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>> > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>> > _______________________________________________ >>>>> > rules-dev mailing list >>>>> > [hidden email] >>>>> > https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> _______________________________________________ >>>>> rules-dev mailing list >>>>> [hidden email] >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>> >>>>> If you reply to this email, your message will be added to the discussion below: >>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>> NAML >>>> >>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>> _______________________________________________ >>>> rules-dev mailing list >>>> [hidden email] >>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> >>> _______________________________________________ >>> rules-dev mailing list >>> [hidden email] >>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> If you reply to this email, your message will be added to the discussion below: >>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>> NAML >> >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >> _______________________________________________ >> rules-dev mailing list >> rules-dev at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140401/ae1c1f0c/attachment-0001.html From kellyajp at yahoo.co.uk Tue Apr 1 10:22:38 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Tue, 1 Apr 2014 07:22:38 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> Message-ID: <1396362151.73867.YahooMailNeo@web171803.mail.ir2.yahoo.com> Trying to isolate the issue, and analyse the heap dump; its a very large heap file so trying a number of things. Working on it and will let you know shortly. Thanks ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Tuesday, 1 April 2014, 14:10 Subject: Re: Possible memory leak in Drools 6.0.1 any news? Mark On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: I'll get that to you on Monday? On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <[hidden email]> wrote: Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >> >> >>Mark >> >>On 30 Mar 2014, at 09:03, kellyajp <[hidden email]> wrote: >> >>Thanks >>> >>> >>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>> >>> >>>Andy >>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>> >>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>> >>>>Mark? >>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>> >>>> >>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>> processing in each environment we have very different object counts that is? >>>>> causing memory to run out on Drools 6:? >>>>>? >>>>> Below is an extract from a heap dump? >>>>>? >>>>> In Drools 6 the main objects in the heap are? >>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>? >>>>> Where as in Drools 5 there are way less objects? >>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>? >>>>> Has anyone else had any experience of this issue?? >>>>>? >>>>> Thanks? >>>>>? >>>>>? >>>>>? >>>>> --? >>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>> _______________________________________________? >>>>> rules-dev mailing list? >>>>>?x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]? >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>> >>>>>>>>________________________________ >>>> >>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>NAML >>>>>>________________________________ >>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>_______________________________________________ >>>rules-dev mailing list >>>[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>>>________________________________ >> >>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>NAML >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029071.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140401/af5e3070/attachment.html From kellyajp at yahoo.co.uk Wed Apr 2 06:20:44 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 2 Apr 2014 03:20:44 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> Message-ID: <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> Morning Mark, That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. The exact same file processes in Drools 5 but fails in Drools 6. 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 // rule values at A650, header at A644 rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" ? ? salience 64886 ? ? when ? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) ? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate =0) ? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate =0) ? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate =0) ? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") ? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate =0) ? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate To: kellyajp Sent: Tuesday, 1 April 2014, 14:10 Subject: Re: Possible memory leak in Drools 6.0.1 any news? Mark On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: I'll get that to you on Monday? On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <[hidden email]> wrote: Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >> >> >>Mark >> >>On 30 Mar 2014, at 09:03, kellyajp <[hidden email]> wrote: >> >>Thanks >>> >>> >>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>> >>> >>>Andy >>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>> >>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>> >>>>Mark? >>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>> >>>> >>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>> processing in each environment we have very different object counts that is? >>>>> causing memory to run out on Drools 6:? >>>>>? >>>>> Below is an extract from a heap dump? >>>>>? >>>>> In Drools 6 the main objects in the heap are? >>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>? >>>>> Where as in Drools 5 there are way less objects? >>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>? >>>>> Has anyone else had any experience of this issue?? >>>>>? >>>>> Thanks? >>>>>? >>>>>? >>>>>? >>>>> --? >>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>> _______________________________________________? >>>>> rules-dev mailing list? >>>>>?x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]? >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>> >>>>>>>>________________________________ >>>> >>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>NAML >>>>>>________________________________ >>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>_______________________________________________ >>>rules-dev mailing list >>>[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>>>________________________________ >> >>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>NAML >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML NCCF_BASELINE.xls.drl (9M) -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029078.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/473146fc/attachment-0001.html From wolfgang.laun at gmail.com Wed Apr 2 07:22:27 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 2 Apr 2014 13:22:27 +0200 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> Message-ID: On 02/04/2014, kellyajp wrote: > > 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 > // rule values at A650, header at A644 Certainly not connected to the memory leak, but I'd like to note that this rule and all others will only work correctly if there is never more than one Position fact in Working Memory at the same time. -W From mproctor at codehaus.org Wed Apr 2 07:39:23 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 2 Apr 2014 12:39:23 +0100 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> Message-ID: <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> not sure why this would have a memory leak, it all looks quite straight forward joins. I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern. Mark On 2 Apr 2014, at 11:20, kellyajp wrote: > Morning Mark, > > That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). > > This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules. > > Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. > > The exact same file processes in Drools 5 but fails in Drools 6. > > 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 > // rule values at A650, header at A644 > rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" > salience 64886 > when > p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) > Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") > Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") > Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) > Position(positionDetail.overallCreditQualityStep == 2) > Position(positionDetail.valuationType in ('Valuation','Both')) > Position(positionDetail.riskProductType == 'UNKNOWN') > then > result.add(classification=new ActionParametersImpl('BaselineClassification')); > classification.setBaseline('NCCF'); > classification.setLineId("NCCF0100579"); > classification.setObject(p); > classification.setPositionId(p.getPositionId()); > classification.setDataStatus(p.getDataStatus()); > classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); > classification.setRulePath(ruleHistory.getActivationPath()); > classification.add(a=new ActionParametersImpl( 'BaselineValue')); > a.setValueName( 'Balance'); > a.setValue( p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); > a.setBaselineType( 'MB'); > a.setValue(p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > end > > > 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 > // rule values at A652, header at A644 > rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" > salience 64884 > when > p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) > Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") > Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") > Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) > Position(positionDetail.overallCreditQualityStep == 2) > Position(positionDetail.valuationType in ('Valuation','Both')) > Position(positionDetail.riskProductType == 'UNKNOWN') > then > result.add(classification=new ActionParametersImpl('BaselineClassification')); > classification.setBaseline('NCCF'); > classification.setLineId("NCCF0100581"); > classification.setObject(p); > classification.setPositionId(p.getPositionId()); > classification.setDataStatus(p.getDataStatus()); > classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); > classification.setRulePath(ruleHistory.getActivationPath()); > classification.add(a=new ActionParametersImpl( 'BaselineValue')); > a.setValueName( 'Balance'); > a.setValue( p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); > a.setBaselineType( 'MB'); > a.setValue(p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > end > > > 31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 > // rule values at A651, header at A644 > rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" > salience 64885 > when > p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) > Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") > Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") > Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) > Position(positionDetail.overallCreditQualityStep == 2) > Position(positionDetail.valuationType in ('Valuation','Both')) > Position(positionDetail.riskProductType != 'UNKNOWN') > then > result.add(classification=new ActionParametersImpl('BaselineClassification')); > classification.setBaseline('NCCF'); > classification.setLineId("NCCF0100581"); > classification.setObject(p); > classification.setPositionId(p.getPositionId()); > classification.setDataStatus(p.getDataStatus()); > classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); > classification.setRulePath(ruleHistory.getActivationPath()); > classification.add(a=new ActionParametersImpl( 'BaselineValue')); > a.setValueName( 'Balance'); > a.setValue( p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); > a.setCashflowType( 'SETTLEMENT, Settlement'); > a.setList(p.getPositionDetail().getCashFlows()); > a.setDefaultDaysToCashFlow (1); > classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); > a.setBaselineType( 'CB'); > a.setCashflowType( 'Principal, Interest'); > a.setList(p.getPositionDetail().getCashFlows()); > a.setDefaultDaysToCashFlow (15000); > classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); > a.setBaselineType( 'MB'); > a.setValue(p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); > a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); > a.setDefaultDaysToCashFlow (15000); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > end > > > 08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 > // rule values at A954, header at A921 > rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" > salience 64582 > when > p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) > Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") > Position(positionDetail.valuationType in ('Valuation','Both')) > Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) > Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' , 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") > Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate Position(positionDetail.valuationType in ('Valuation','Both')) > Position(positionDetail.riskProductType != 'UNKNOWN') > then > result.add(classification=new ActionParametersImpl('BaselineClassification')); > classification.setBaseline('NCCF'); > classification.setLineId("NCCF0100405"); > classification.setObject(p); > classification.setPositionId(p.getPositionId()); > classification.setDataStatus(p.getDataStatus()); > classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); > classification.setRulePath(ruleHistory.getActivationPath()); > classification.add(a=new ActionParametersImpl( 'BaselineValue')); > a.setValueName( 'Balance'); > a.setValue( p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); > a.setCashflowType( 'SETTLEMENT, Settlement'); > a.setList(p.getPositionDetail().getCashFlows()); > a.setDefaultDaysToCashFlow (1); > classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); > a.setBaselineType( 'CB'); > a.setCashflowType( 'Principal, Interest'); > a.setList(p.getPositionDetail().getCashFlows()); > a.setDefaultDaysToCashFlow (15000); > classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); > a.setBaselineType( 'MB'); > a.setValue(p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); > a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); > a.setDefaultDaysToCashFlow (15000); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > end > > 18cad_lng_sec_iss_prov_over10Y_under35Y_2 > // rule values at A152, header at A138 > rule "18cad_lng_sec_iss_prov_over10y_under35y_2" > salience 65384 > when > p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) > Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) > Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' > ,'MP','MANPAC','MPTB','ONTW' > ,'ONT','ONTB','ONTPAC','Q' > ,'QTB','QUEPAC','QW','NBRNS' > ,'NS','PRINCE','NF','NFTB')) > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") > Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") > Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") > Position(positionDetail.valuationType in ('Valuation','Both')) > Position(positionDetail.riskProductType == 'UNKNOWN') > then > result.add(classification=new ActionParametersImpl('BaselineClassification')); > classification.setBaseline('NCCF'); > classification.setLineId("NCCF0100341"); > classification.setObject(p); > classification.setPositionId(p.getPositionId()); > classification.setDataStatus(p.getDataStatus()); > classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); > classification.setRulePath(ruleHistory.getActivationPath()); > classification.add(a=new ActionParametersImpl( 'BaselineValue')); > a.setValueName( 'Balance'); > a.setValue( p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); > a.setBaselineType( 'MB'); > a.setValue(p.getPositionDetail().getValuation().getMtmValue()); > a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); > a.setNettingType('Security'); > a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); > a.setBucket('Total'); > end > > > > > > From: Mark Proctor [via Drools] <[hidden email]> > To: kellyajp <[hidden email]> > Sent: Tuesday, 1 April 2014, 14:10 > Subject: Re: Possible memory leak in Drools 6.0.1 > > any news? > > Mark > On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: > > > > On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: > > > I'll get that to you on Monday > > On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <[hidden email]> wrote: > > > Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >>> that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>> >>> Mark >>> On 30 Mar 2014, at 09:03, kellyajp <[hidden email]> wrote: >>> >>>> Thanks >>>> >>>> I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>> >>>> Andy >>>> On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>>> Can you get us a unit test demonstrating this, and we?ll look into it as a priority. >>>>> >>>>> Mark >>>>> On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>> > We have upgraded from Drools 5 -> Drools 6.01 and when repeating the >>>>> > processing in each environment we have very different object counts that is >>>>> > causing memory to run out on Drools 6: >>>>> > >>>>> > Below is an extract from a heap dump >>>>> > >>>>> > In Drools 6 the main objects in the heap are >>>>> > 1: 4378006 700480960 org.drools.core.reteoo.RightTuple >>>>> > >>>>> > Where as in Drools 5 there are way less objects >>>>> > 92: 19022 1826112 org.drools.reteoo.RightTuple >>>>> > >>>>> > Has anyone else had any experience of this issue? >>>>> > >>>>> > Thanks >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>> > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>> > _______________________________________________ >>>>> > rules-dev mailing list >>>>> > x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>> > https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> _______________________________________________ >>>>> rules-dev mailing list >>>>> x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>> >>>>> If you reply to this email, your message will be added to the discussion below: >>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>> NAML >>>> >>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>> _______________________________________________ >>>> rules-dev mailing list >>>> [hidden email] >>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> >>> _______________________________________________ >>> rules-dev mailing list >>> [hidden email] >>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> If you reply to this email, your message will be added to the discussion below: >>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>> NAML >> >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev > > > > _______________________________________________ > rules-dev mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-dev > > If you reply to this email, your message will be added to the discussion below: > http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html > To unsubscribe from Possible memory leak in Drools 6.0.1, click here. > NAML > > > > NCCF_BASELINE.xls.drl (9M) Download Attachment > > View this message in context: Re: Possible memory leak in Drools 6.0.1 > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. > _______________________________________________ > rules-dev mailing list > rules-dev at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/5a13e2d0/attachment-0001.html From kellyajp at yahoo.co.uk Wed Apr 2 07:50:16 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 2 Apr 2014 04:50:16 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> Message-ID: <1396439376.26576.YahooMailNeo@web171803.mail.ir2.yahoo.com> Yes we feed the positions into the StatefulSession one at a time. Is there a difference in how these rules would be treated in Drools 5 and Drool 6.?I've hap dumped both instances and there is a huge difference in the number of RighTuple instances being generated in each. The data and rules are exactly the same in both instances. The only option I have is to roll back to the old drools version if we can't resolve the issue; the problem there is that this version dose not include the Mvel fix to stop the jvm freezing. Do you have any suggestions? Thanks ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Wednesday, 2 April 2014, 12:41 Subject: Re: Possible memory leak in Drools 6.0.1 not sure why this would have a memory leak, it all looks quite straight forward joins. I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern.? Mark On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: Morning Mark, > > >That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). > > >This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? > > >Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. > > >The exact same file processes in Drools 5 but fails in Drools 6. > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >// rule values at A650, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >? ? salience 64886 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100579"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >// rule values at A652, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >? ? salience 64884 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >// rule values at A651, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >? ? salience 64885 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >// rule values at A954, header at A921 >rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >? ? salience 64582 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100405"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > >18cad_lng_sec_iss_prov_over10Y_under35Y_2 >// rule values at A152, header at A138 >rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >? ? salience 65384 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >,'MP','MANPAC','MPTB','ONTW' >,'ONT','ONTB','ONTPAC','Q' >,'QTB','QUEPAC','QW','NBRNS' >,'NS','PRINCE','NF','NFTB')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100341"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > > > > > > > > >________________________________ > From: Mark Proctor [via Drools] <[hidden email]> >To: kellyajp <[hidden email]> >Sent: Tuesday, 1 April 2014, 14:10 >Subject: Re: Possible memory leak in Drools 6.0.1 > > > >any news? > > >Mark > >On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: > > > >On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: > >I'll get that to you on Monday? > >On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: > > >Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. > >that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>> >>> >>>Mark >>> >>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>>Thanks >>>> >>>> >>>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>> >>>> >>>>Andy >>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>> >>>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>>> >>>>>Mark? >>>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>>> >>>>> >>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>>> processing in each environment we have very different object counts that is? >>>>>> causing memory to run out on Drools 6:? >>>>>>? >>>>>> Below is an extract from a heap dump? >>>>>>? >>>>>> In Drools 6 the main objects in the heap are? >>>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>>? >>>>>> Where as in Drools 5 there are way less objects? >>>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>>? >>>>>> Has anyone else had any experience of this issue?? >>>>>>? >>>>>> Thanks? >>>>>>? >>>>>>? >>>>>>? >>>>>> --? >>>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>>> _______________________________________________? >>>>>> rules-dev mailing list? >>>>>>?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]?https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>>>>>>>________________________________ >>>>> >>>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>>NAML >>>>>>>>________________________________ >>>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>_______________________________________________ >>>rules-dev mailing list >>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>>>>________________________________ >>> >>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>NAML >>>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > > >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev > >>________________________________ > >If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >NAML > > > > NCCF_BASELINE.xls.drl (9M) Download Attachment >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029082.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/db508980/attachment-0001.html From kellyajp at yahoo.co.uk Wed Apr 2 07:52:18 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 2 Apr 2014 04:52:18 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> Message-ID: <1396439499.69563.YahooMailNeo@web171802.mail.ir2.yahoo.com> These rules are generated from the Excel decision table, I don't think we have control over what it generates. Thanks ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Wednesday, 2 April 2014, 12:41 Subject: Re: Possible memory leak in Drools 6.0.1 not sure why this would have a memory leak, it all looks quite straight forward joins. I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern.? Mark On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: Morning Mark, > > >That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). > > >This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? > > >Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. > > >The exact same file processes in Drools 5 but fails in Drools 6. > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >// rule values at A650, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >? ? salience 64886 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100579"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >// rule values at A652, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >? ? salience 64884 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >// rule values at A651, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >? ? salience 64885 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >// rule values at A954, header at A921 >rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >? ? salience 64582 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100405"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > >18cad_lng_sec_iss_prov_over10Y_under35Y_2 >// rule values at A152, header at A138 >rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >? ? salience 65384 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >,'MP','MANPAC','MPTB','ONTW' >,'ONT','ONTB','ONTPAC','Q' >,'QTB','QUEPAC','QW','NBRNS' >,'NS','PRINCE','NF','NFTB')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100341"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > > > > > > > > >________________________________ > From: Mark Proctor [via Drools] <[hidden email]> >To: kellyajp <[hidden email]> >Sent: Tuesday, 1 April 2014, 14:10 >Subject: Re: Possible memory leak in Drools 6.0.1 > > > >any news? > > >Mark > >On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: > > > >On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: > >I'll get that to you on Monday? > >On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: > > >Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. > >that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>> >>> >>>Mark >>> >>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>>Thanks >>>> >>>> >>>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>> >>>> >>>>Andy >>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>> >>>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>>> >>>>>Mark? >>>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>>> >>>>> >>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>>> processing in each environment we have very different object counts that is? >>>>>> causing memory to run out on Drools 6:? >>>>>>? >>>>>> Below is an extract from a heap dump? >>>>>>? >>>>>> In Drools 6 the main objects in the heap are? >>>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>>? >>>>>> Where as in Drools 5 there are way less objects? >>>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>>? >>>>>> Has anyone else had any experience of this issue?? >>>>>>? >>>>>> Thanks? >>>>>>? >>>>>>? >>>>>>? >>>>>> --? >>>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>>> _______________________________________________? >>>>>> rules-dev mailing list? >>>>>>?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]?https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>>>>>>>________________________________ >>>>> >>>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>>NAML >>>>>>>>________________________________ >>>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>_______________________________________________ >>>rules-dev mailing list >>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>>>>________________________________ >>> >>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>NAML >>>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > > >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev > >>________________________________ > >If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >NAML > > > > NCCF_BASELINE.xls.drl (9M) Download Attachment >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029083.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/0aa42dac/attachment-0001.html From kellyajp at yahoo.co.uk Wed Apr 2 07:58:11 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 2 Apr 2014 04:58:11 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> Message-ID: <1396439864.52861.YahooMailNeo@web171806.mail.ir2.yahoo.com> Afternoon, just seen that the attachment that I sent you has been made available via the drools user forum. Please can this be removed ASAP. This is client information that is not to be made public. Thanks ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Wednesday, 2 April 2014, 12:41 Subject: Re: Possible memory leak in Drools 6.0.1 not sure why this would have a memory leak, it all looks quite straight forward joins. I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern.? Mark On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: Morning Mark, > > >That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). > > >This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? > > >Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. > > >The exact same file processes in Drools 5 but fails in Drools 6. > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >// rule values at A650, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >? ? salience 64886 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100579"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >// rule values at A652, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >? ? salience 64884 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >// rule values at A651, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >? ? salience 64885 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >// rule values at A954, header at A921 >rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >? ? salience 64582 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100405"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > >18cad_lng_sec_iss_prov_over10Y_under35Y_2 >// rule values at A152, header at A138 >rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >? ? salience 65384 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >,'MP','MANPAC','MPTB','ONTW' >,'ONT','ONTB','ONTPAC','Q' >,'QTB','QUEPAC','QW','NBRNS' >,'NS','PRINCE','NF','NFTB')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100341"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > > > > > > > > >________________________________ > From: Mark Proctor [via Drools] <[hidden email]> >To: kellyajp <[hidden email]> >Sent: Tuesday, 1 April 2014, 14:10 >Subject: Re: Possible memory leak in Drools 6.0.1 > > > >any news? > > >Mark > >On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: > > > >On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: > >I'll get that to you on Monday? > >On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: > > >Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. > >that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>> >>> >>>Mark >>> >>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>>Thanks >>>> >>>> >>>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>> >>>> >>>>Andy >>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>> >>>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>>> >>>>>Mark? >>>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>>> >>>>> >>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>>> processing in each environment we have very different object counts that is? >>>>>> causing memory to run out on Drools 6:? >>>>>>? >>>>>> Below is an extract from a heap dump? >>>>>>? >>>>>> In Drools 6 the main objects in the heap are? >>>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>>? >>>>>> Where as in Drools 5 there are way less objects? >>>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>>? >>>>>> Has anyone else had any experience of this issue?? >>>>>>? >>>>>> Thanks? >>>>>>? >>>>>>? >>>>>>? >>>>>> --? >>>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>>> _______________________________________________? >>>>>> rules-dev mailing list? >>>>>>?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]?https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>>>>>>>________________________________ >>>>> >>>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>>NAML >>>>>>>>________________________________ >>>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>_______________________________________________ >>>rules-dev mailing list >>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>>>>________________________________ >>> >>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>NAML >>>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > > >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev > >>________________________________ > >If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >NAML > > > > NCCF_BASELINE.xls.drl (9M) Download Attachment >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029084.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/09547c2f/attachment-0001.html From wolfgang.laun at gmail.com Wed Apr 2 08:20:11 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 2 Apr 2014 14:20:11 +0200 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <1396439376.26576.YahooMailNeo@web171803.mail.ir2.yahoo.com> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> <1396439376.26576.YahooMailNeo@web171803.mail.ir2.yahoo.com> Message-ID: I would try and put all constraints under a joined section of row cells with a single Position pattern. That's the proper way to do it and to avoid all overhead. -W On 02/04/2014, kellyajp wrote: > Yes we feed the positions into the StatefulSession one at a time. > > Is there a difference in how these rules would be treated in Drools 5 and > Drool 6. I've hap dumped both instances and there is a huge difference in > the number of RighTuple instances being generated in each. The data and > rules are exactly the same in both instances. The only option I have is to > roll back to the old drools version if we can't resolve the issue; the > problem there is that this version dose not include the Mvel fix to stop the > jvm freezing. Do you have any suggestions? > > Thanks > > ________________________________ > From: Mark Proctor [via Drools] > To: kellyajp > Sent: Wednesday, 2 April 2014, 12:41 > Subject: Re: Possible memory leak in Drools 6.0.1 > > > > not sure why this would have a memory leak, it all looks quite straight > forward joins. > > I assume you are using stateless sessions and inserting just a single > Position instance? Is there a different number of RT's after a single > Position insert? > > A small tip, you don't need so many patterns. All those constraints can go > in a single Pattern. > > Mark > > > > > On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: > > Morning Mark, >> >> >>That was a useful exercise!!, from a sampled set it looks like the >> RightTuple instances are coming from a single rule package (nccf). >> >> >>This rule package comes from a large decision table of that is maintained >> by our business users. This results in a large DRL file being generated >> containing 2371 rules. >> >> >>Below I have included some of the rules that were referenced in the data >> structures, I have also attached the generated DRL file. >> >> >>The exact same file processes in Drools 5 but fails in Drools 6. >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >>// rule values at A650, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >> salience 64886 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != >> null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && >> positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> > Position(positionDetail.Valuation!= null && positionDetail. >> Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.typeOfBond != null && >> positionDetail.instrument.typeOfBond not in ('convertible','covered' >> ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new >> ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100579"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( >> p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( >> 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >>end >> >> >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >>// rule values at A652, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >> salience 64884 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != >> null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && >> positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> >=positionDetail.riskBusinessDate+157680000000) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> > Position(positionDetail.Valuation!= null && positionDetail. >> Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.typeOfBond != null && >> positionDetail.instrument.typeOfBond not in ('convertible','covered' >> ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new >> ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100581"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( >> p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( >> 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >>end >> >> >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >>// rule values at A651, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >> salience 64885 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != >> null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && >> positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> >=positionDetail.riskBusinessDate+157680000000) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> > Position(positionDetail.Valuation!= null && positionDetail. >> Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.typeOfBond != null && >> positionDetail.instrument.typeOfBond not in ('convertible','covered' >> ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType != 'UNKNOWN') >> then >> result.add(classification=new >> ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100581"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( >> p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( >> 'BaselineCashflow')); >> a.setCashflowType( 'SETTLEMENT, Settlement'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (1); >> classification.add(a=new ActionParametersImpl( >> 'BaselineCashflow')); >> a.setBaselineType( 'CB'); >> a.setCashflowType( 'Principal, Interest'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (15000); >> classification.add(a=new ActionParametersImpl( >> 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> >> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >> a.setDefaultDaysToCashFlow (15000); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >>end >> >> >> >> >>08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >>// rule values at A954, header at A921 >>rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >> salience 64582 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != >> null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && >> positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.countryOfDomicile in >> ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' >> ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' >> ,'RO' ,'SE' ,'SI' ,'SK')) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , >> 'CY' ,'CZ' ,'DE' , 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' >> , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' >> ,'RO','SE' ,'SI' ,'SK')) >> Position(positionDetail.Valuation!= null && positionDetail. >> Valuation.ValuationCurrency == "EUR") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.collateralType in ('govt liquid gtd','us govt >> guarant','u.s. government guarantee')) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> >=positionDetail.riskBusinessDate+220752000000) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> > Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType != 'UNKNOWN') >> then >> result.add(classification=new >> ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100405"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( >> p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( >> 'BaselineCashflow')); >> a.setCashflowType( 'SETTLEMENT, Settlement'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (1); >> classification.add(a=new ActionParametersImpl( >> 'BaselineCashflow')); >> a.setBaselineType( 'CB'); >> a.setCashflowType( 'Principal, Interest'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (15000); >> classification.add(a=new ActionParametersImpl( >> 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> >> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >> a.setDefaultDaysToCashFlow (15000); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >>end >> >> >>18cad_lng_sec_iss_prov_over10Y_under35Y_2 >>// rule values at A152, header at A138 >>rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >> salience 65384 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != >> null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && >> positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> >=positionDetail.riskBusinessDate+315360000000) >> Position(positionDetail.instrument != null && >> positionDetail.instrument.maturityDate >> > Position(positionDetail.instrument != null && >> positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >>,'MP','MANPAC','MPTB','ONTW' >>,'ONT','ONTB','ONTPAC','Q' >>,'QTB','QUEPAC','QW','NBRNS' >>,'NS','PRINCE','NF','NFTB')) >> Position(positionDetail.Valuation!= null && positionDetail. >> Valuation.ValuationCurrency == "CAD") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.issuerIndustry == "govt regional") >> Position(positionDetail.instrument != null && >> positionDetail.instrument.marketSectorDescription == "govt") >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new >> ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100341"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( >> p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( >> 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible >> Short covers Fungible Long'); >> a.setBucket('Total'); >>end >> >> >> >> >> >> >> >> >> >> >> >>________________________________ >> From: Mark Proctor [via Drools] <> href="x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=0" >> target="_top" rel="nofollow" link="external">[hidden email]> >>To: kellyajp <> href="x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=1" >> target="_top" rel="nofollow" link="external">[hidden email]> >>Sent: Tuesday, 1 April 2014, 14:10 >>Subject: Re: Possible memory leak in Drools 6.0.1 >> >> >> >>any news? >> >> >>Mark >> >>On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: >> >> >> >>On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: >> >>I'll get that to you on Monday >> >>On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" < href=" href="x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029027&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" > target="_top" rel="nofollow" link="external">[hidden email]> wrote: >> >> >>Are you able to isolate what the FH's are referencing, Sorry that should be >> RT, not FH. RT == RightTuple, FH == FactHandle. >> >>that might give us an idea of where to look. If you look RightTuple's they >> will have a 'sink' reference (network node) and that sink will have an >> 'associates' map. That map is the rules that node is part of. You can use >> this to identify the offending rule(s), and maybe paste those rules here? >>>> >>>> >>>>Mark >>>> >>>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" >>>> target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>>Thanks >>>>> >>>>> >>>>>I'll get someone from the team to work on this on Monday. Not sure how >>>>> easy it will be to isolate but will keep you informed. >>>>> >>>>> >>>>>Andy >>>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029025&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" >>>>> target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>> >>>>>Can you get us a unit test demonstrating this, and we'll look into it as >>>>> a priority. >>>>>> >>>>>>Mark >>>>>>On 28 Mar 2014, at 15:40, kellyajp <>>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">>>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" >>>>>> target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>>> >>>>>> >>>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating >>>>>>> the >>>>>>> processing in each environment we have very different object counts >>>>>>> that is >>>>>>> causing memory to run out on Drools 6: >>>>>>> >>>>>>> Below is an extract from a heap dump >>>>>>> >>>>>>> In Drools 6 the main objects in the heap are >>>>>>> 1: 4378006 700480960 org.drools.core.reteoo.RightTuple >>>>>>> >>>>>>> Where as in Drools 5 there are way less objects >>>>>>> 92: 19022 1826112 org.drools.reteoo.RightTuple >>>>>>> >>>>>>> Has anyone else had any experience of this issue? >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> View this message in >>>>>>> context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>>> Sent from the Drools: Developer (committer) mailing list mailing list >>>>>>> archive at Nabble.com. >>>>>>> _______________________________________________ >>>>>>> rules-dev > mailing list >>>>>>> >>>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">>>>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" >>>>>>> target="_top" rel="nofollow" link="external">[hidden email] >>>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________ rules-dev >>>>>>> mailing list >>>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">>>>>>> href="x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" >>>>>>> target="_top" rel="nofollow" link="external">[hidden >>>>>>> email] https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>> >>>>>>>>>>>________________________________ >>>>>> >>>>>>If you reply to this email, your message will be added to the >>>>>> discussion >>>>>> below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>>>NAML >>>>>>>>>________________________________ >>>>>View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>>>Sent from the Drools: Developer (committer) mailing list mailing list >>>>> archive at Nabble.com. >>>>>_______________________________________________ >>>>>rules-dev mailing list >>>>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" >>>>> target="_top" rel="nofollow" link="external">[hidden email] >>>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" >>>> target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>>>>>________________________________ >>>> >>>>If you reply to this email, your message will be added to the discussion >>>> below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>> >>>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>NAML >>>>>________________________________ >>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>Sent from the Drools: Developer (committer) mailing list mailing list >>> archive at Nabble.com. >>>_______________________________________________ >>>rules-dev mailing list >>>[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >> >> >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>>________________________________ >> >>If you reply to this email, your message will be added to the discussion >> below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >> >>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>NAML >> >> >> >> NCCF_BASELINE.xls.drl (9M) Download Attachment >>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list >> archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > > _______________________________________________ > rules-dev mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-dev > > ________________________________ > > If you reply to this email, your message will be added to the discussion > below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html > > To unsubscribe from Possible memory leak in Drools 6.0.1, click here. > NAML > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029082.html > Sent from the Drools: Developer (committer) mailing list mailing list > archive at Nabble.com. From mproctor at codehaus.org Wed Apr 2 08:34:56 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 2 Apr 2014 13:34:56 +0100 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <1396439864.52861.YahooMailNeo@web171806.mail.ir2.yahoo.com> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> <1396439864.52861.YahooMailNeo@web171806.mail.ir2.yahoo.com> Message-ID: That is a 3rd party service, not related to Red Hat. You?ll need to contact them directly. Mark On 2 Apr 2014, at 12:58, kellyajp wrote: > Afternoon, > > just seen that the attachment that I sent you has been made available via the drools user forum. Please can this be removed ASAP. This is client information that is not to be made public. > > Thanks > > From: Mark Proctor [via Drools] <[hidden email]> > To: kellyajp <[hidden email]> > Sent: Wednesday, 2 April 2014, 12:41 > Subject: Re: Possible memory leak in Drools 6.0.1 > > not sure why this would have a memory leak, it all looks quite straight forward joins. > > I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? > > A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern. > > Mark > > > On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: > >> Morning Mark, >> >> That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). >> >> This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules. >> >> Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. >> >> The exact same file processes in Drools 5 but fails in Drools 6. >> >> 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >> // rule values at A650, header at A644 >> rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >> salience 64886 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100579"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >> // rule values at A652, header at A644 >> rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >> salience 64884 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100581"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> 31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >> // rule values at A651, header at A644 >> rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >> salience 64885 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType != 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100581"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setCashflowType( 'SETTLEMENT, Settlement'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (1); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setBaselineType( 'CB'); >> a.setCashflowType( 'Principal, Interest'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (15000); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >> a.setDefaultDaysToCashFlow (15000); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> 08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >> // rule values at A954, header at A921 >> rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >> salience 64582 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >> Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' , 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >> Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType != 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100405"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setCashflowType( 'SETTLEMENT, Settlement'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (1); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setBaselineType( 'CB'); >> a.setCashflowType( 'Principal, Interest'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (15000); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >> a.setDefaultDaysToCashFlow (15000); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> 18cad_lng_sec_iss_prov_over10Y_under35Y_2 >> // rule values at A152, header at A138 >> rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >> salience 65384 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >> ,'MP','MANPAC','MPTB','ONTW' >> ,'ONT','ONTB','ONTPAC','Q' >> ,'QTB','QUEPAC','QW','NBRNS' >> ,'NS','PRINCE','NF','NFTB')) >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >> Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100341"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> >> >> >> From: Mark Proctor [via Drools] <[hidden email]> >> To: kellyajp <[hidden email]> >> Sent: Tuesday, 1 April 2014, 14:10 >> Subject: Re: Possible memory leak in Drools 6.0.1 >> >> any news? >> >> Mark >> On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: >> >> >> >> On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: >> >> >> I'll get that to you on Monday >> >> On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >> >> >> Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >>>> that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>>> >>>> Mark >>>> On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>>> Thanks >>>>> >>>>> I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>>> >>>>> Andy >>>>> On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>>> Can you get us a unit test demonstrating this, and we?ll look into it as a priority. >>>>>> >>>>>> Mark >>>>>> On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>>> >>>>>> > We have upgraded from Drools 5 -> Drools 6.01 and when repeating the >>>>>> > processing in each environment we have very different object counts that is >>>>>> > causing memory to run out on Drools 6: >>>>>> > >>>>>> > Below is an extract from a heap dump >>>>>> > >>>>>> > In Drools 6 the main objects in the heap are >>>>>> > 1: 4378006 700480960 org.drools.core.reteoo.RightTuple >>>>>> > >>>>>> > Where as in Drools 5 there are way less objects >>>>>> > 92: 19022 1826112 org.drools.reteoo.RightTuple >>>>>> > >>>>>> > Has anyone else had any experience of this issue? >>>>>> > >>>>>> > Thanks >>>>>> > >>>>>> > >>>>>> > >>>>>> > -- >>>>>> > View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>> > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>>> > _______________________________________________ >>>>>> > rules-dev mailing list >>>>>> > x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>>> > https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>> _______________________________________________ >>>>>> rules-dev mailing list >>>>>> x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>> >>>>>> If you reply to this email, your message will be added to the discussion below: >>>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>>> NAML >>>>> >>>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>> _______________________________________________ >>>>> rules-dev mailing list >>>>> x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>> >>>> _______________________________________________ >>>> rules-dev mailing list >>>> x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>> If you reply to this email, your message will be added to the discussion below: >>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>> NAML >>> >>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>> _______________________________________________ >>> rules-dev mailing list >>> [hidden email] >>> https://lists.jboss.org/mailman/listinfo/rules-dev >> >> >> >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev >> >> If you reply to this email, your message will be added to the discussion below: >> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >> NAML >> >> >> >> NCCF_BASELINE.xls.drl (9M) Download Attachment >> >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev > > > _______________________________________________ > rules-dev mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-dev > > If you reply to this email, your message will be added to the discussion below: > http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html > To unsubscribe from Possible memory leak in Drools 6.0.1, click here. > NAML > > > > View this message in context: Re: Possible memory leak in Drools 6.0.1 > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. > _______________________________________________ > rules-dev mailing list > rules-dev at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/8cd5b1a7/attachment-0001.html From kellyajp at yahoo.co.uk Wed Apr 2 08:48:02 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 2 Apr 2014 05:48:02 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> Message-ID: <1396442857.35989.YahooMailNeo@web171803.mail.ir2.yahoo.com> Thanks? I've had to remove the entries from the following link, please could you do the same. http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-td4029010.html ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Wednesday, 2 April 2014, 13:36 Subject: Re: Possible memory leak in Drools 6.0.1 That is a 3rd party service, not related to Red Hat. You?ll need to contact them directly. Mark On 2 Apr 2014, at 12:58, kellyajp <[hidden email]> wrote: Afternoon, > > >just seen that the attachment that I sent you has been made available via the drools user forum. Please can this be removed ASAP. This is client information that is not to be made public. > > >Thanks > > > >________________________________ > From: Mark Proctor [via Drools] <[hidden email]> >To: kellyajp <[hidden email]> >Sent: Wednesday, 2 April 2014, 12:41 >Subject: Re: Possible memory leak in Drools 6.0.1 > > > >not sure why this would have a memory leak, it all looks quite straight forward joins. > > >I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? > > >A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern.? > > >Mark > > > > > >On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: > >Morning Mark, >> >> >>That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). >> >> >>This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? >> >> >>Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. >> >> >>The exact same file processes in Drools 5 but fails in Drools 6. >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >>// rule values at A650, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >>? ? salience 64886 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100579"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >>// rule values at A652, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >>? ? salience 64884 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100581"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >>// rule values at A651, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >>? ? salience 64885 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100581"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (1); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setBaselineType( 'CB'); >>? ? ? ? a.setCashflowType( 'Principal, Interest'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >>08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >>// rule values at A954, header at A921 >>rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >>? ? salience 64582 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >>? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100405"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (1); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setBaselineType( 'CB'); >>? ? ? ? a.setCashflowType( 'Principal, Interest'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >>18cad_lng_sec_iss_prov_over10Y_under35Y_2 >>// rule values at A152, header at A138 >>rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >>? ? salience 65384 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >>,'MP','MANPAC','MPTB','ONTW' >>,'ONT','ONTB','ONTPAC','Q' >>,'QTB','QUEPAC','QW','NBRNS' >>,'NS','PRINCE','NF','NFTB')) >>? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100341"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >> >> >> >> >> >> >> >>________________________________ >> From: Mark Proctor [via Drools] <x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=0" target="_top" rel="nofollow" link="external">[hidden email]> >>To: kellyajp <x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=1" target="_top" rel="nofollow" link="external">[hidden email]> >>Sent: Tuesday, 1 April 2014, 14:10 >>Subject: Re: Possible memory leak in Drools 6.0.1 >> >> >> >>any news? >> >> >>Mark >> >>On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: >> >> >> >>On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: >> >>I'll get that to you on Monday? >> >>On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029027&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >> >> >>Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >> >>that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>>> >>>> >>>>Mark >>>> >>>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>>Thanks >>>>> >>>>> >>>>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>>> >>>>> >>>>>Andy >>>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029025&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>> >>>>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>>>> >>>>>>Mark? >>>>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>>>> >>>>>> >>>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>>>> processing in each environment we have very different object counts that is? >>>>>>> causing memory to run out on Drools 6:? >>>>>>>? >>>>>>> Below is an extract from a heap dump? >>>>>>>? >>>>>>> In Drools 6 the main objects in the heap are? >>>>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>>>? >>>>>>> Where as in Drools 5 there are way less objects? >>>>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>>>? >>>>>>> Has anyone else had any experience of this issue?? >>>>>>>? >>>>>>> Thanks? >>>>>>>? >>>>>>>? >>>>>>>? >>>>>>> --? >>>>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>>>> _______________________________________________? >>>>>>> rules-dev mailing list? >>>>>>>?x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]?https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>>________________________________ >>>>>> >>>>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>>>NAML >>>>>>>>>>________________________________ >>>>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>>>_______________________________________________ >>>>>rules-dev mailing list >>>>>x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=1">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=2">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>>>>>>________________________________ >>>> >>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>NAML >>>>>>________________________________ >>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>_______________________________________________ >>>rules-dev mailing list >>>[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >> >> >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>>>________________________________ >> >>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>NAML >> >> >> >> NCCF_BASELINE.xls.drl (9M) Download Attachment >>>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev > >>________________________________ > >If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html >To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >NAML > > >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029087.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029088.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/ab46c068/attachment-0001.html From mproctor at codehaus.org Wed Apr 2 09:05:37 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 2 Apr 2014 14:05:37 +0100 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <1396442857.35989.YahooMailNeo@web171803.mail.ir2.yahoo.com> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> <1396442857.35989.YahooMailNeo@web171803.mail.ir2.yahoo.com> Message-ID: <8D4B3A6F-4BDC-4F00-A4D7-D197788090A2@codehaus.org> I don?t think it was emailed out to everyone, the RHT list server blocks attachments over a certain size. Can you send it directly to Mario Fusco . Mark On 2 Apr 2014, at 13:48, kellyajp wrote: > Thanks > > I've had to remove the entries from the following link, please could you do the same. > > http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-td4029010.html > > From: Mark Proctor [via Drools] <[hidden email]> > To: kellyajp <[hidden email]> > Sent: Wednesday, 2 April 2014, 13:36 > Subject: Re: Possible memory leak in Drools 6.0.1 > > That is a 3rd party service, not related to Red Hat. You?ll need to contact them directly. > > Mark > On 2 Apr 2014, at 12:58, kellyajp <[hidden email]> wrote: > >> Afternoon, >> >> just seen that the attachment that I sent you has been made available via the drools user forum. Please can this be removed ASAP. This is client information that is not to be made public. >> >> Thanks >> >> From: Mark Proctor [via Drools] <[hidden email]> >> To: kellyajp <[hidden email]> >> Sent: Wednesday, 2 April 2014, 12:41 >> Subject: Re: Possible memory leak in Drools 6.0.1 >> >> not sure why this would have a memory leak, it all looks quite straight forward joins. >> >> I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? >> >> A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern. >> >> Mark >> >> >> On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: >> >>> Morning Mark, >>> >>> That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). >>> >>> This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules. >>> >>> Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. >>> >>> The exact same file processes in Drools 5 but fails in Drools 6. >>> >>> 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >>> // rule values at A650, header at A644 >>> rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >>> salience 64886 >>> when >>> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>> Position(positionDetail.overallCreditQualityStep == 2) >>> Position(positionDetail.valuationType in ('Valuation','Both')) >>> Position(positionDetail.riskProductType == 'UNKNOWN') >>> then >>> result.add(classification=new ActionParametersImpl('BaselineClassification')); >>> classification.setBaseline('NCCF'); >>> classification.setLineId("NCCF0100579"); >>> classification.setObject(p); >>> classification.setPositionId(p.getPositionId()); >>> classification.setDataStatus(p.getDataStatus()); >>> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>> classification.setRulePath(ruleHistory.getActivationPath()); >>> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>> a.setValueName( 'Balance'); >>> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>> a.setBaselineType( 'MB'); >>> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> end >>> >>> >>> 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >>> // rule values at A652, header at A644 >>> rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >>> salience 64884 >>> when >>> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>> Position(positionDetail.overallCreditQualityStep == 2) >>> Position(positionDetail.valuationType in ('Valuation','Both')) >>> Position(positionDetail.riskProductType == 'UNKNOWN') >>> then >>> result.add(classification=new ActionParametersImpl('BaselineClassification')); >>> classification.setBaseline('NCCF'); >>> classification.setLineId("NCCF0100581"); >>> classification.setObject(p); >>> classification.setPositionId(p.getPositionId()); >>> classification.setDataStatus(p.getDataStatus()); >>> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>> classification.setRulePath(ruleHistory.getActivationPath()); >>> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>> a.setValueName( 'Balance'); >>> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>> a.setBaselineType( 'MB'); >>> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> end >>> >>> >>> 31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >>> // rule values at A651, header at A644 >>> rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >>> salience 64885 >>> when >>> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>> Position(positionDetail.overallCreditQualityStep == 2) >>> Position(positionDetail.valuationType in ('Valuation','Both')) >>> Position(positionDetail.riskProductType != 'UNKNOWN') >>> then >>> result.add(classification=new ActionParametersImpl('BaselineClassification')); >>> classification.setBaseline('NCCF'); >>> classification.setLineId("NCCF0100581"); >>> classification.setObject(p); >>> classification.setPositionId(p.getPositionId()); >>> classification.setDataStatus(p.getDataStatus()); >>> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>> classification.setRulePath(ruleHistory.getActivationPath()); >>> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>> a.setValueName( 'Balance'); >>> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>> a.setCashflowType( 'SETTLEMENT, Settlement'); >>> a.setList(p.getPositionDetail().getCashFlows()); >>> a.setDefaultDaysToCashFlow (1); >>> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>> a.setBaselineType( 'CB'); >>> a.setCashflowType( 'Principal, Interest'); >>> a.setList(p.getPositionDetail().getCashFlows()); >>> a.setDefaultDaysToCashFlow (15000); >>> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>> a.setBaselineType( 'MB'); >>> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >>> a.setDefaultDaysToCashFlow (15000); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> end >>> >>> >>> 08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >>> // rule values at A954, header at A921 >>> rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >>> salience 64582 >>> when >>> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>> Position(positionDetail.valuationType in ('Valuation','Both')) >>> Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >>> Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' , 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >>> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >>> Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >> Position(positionDetail.valuationType in ('Valuation','Both')) >>> Position(positionDetail.riskProductType != 'UNKNOWN') >>> then >>> result.add(classification=new ActionParametersImpl('BaselineClassification')); >>> classification.setBaseline('NCCF'); >>> classification.setLineId("NCCF0100405"); >>> classification.setObject(p); >>> classification.setPositionId(p.getPositionId()); >>> classification.setDataStatus(p.getDataStatus()); >>> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>> classification.setRulePath(ruleHistory.getActivationPath()); >>> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>> a.setValueName( 'Balance'); >>> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>> a.setCashflowType( 'SETTLEMENT, Settlement'); >>> a.setList(p.getPositionDetail().getCashFlows()); >>> a.setDefaultDaysToCashFlow (1); >>> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>> a.setBaselineType( 'CB'); >>> a.setCashflowType( 'Principal, Interest'); >>> a.setList(p.getPositionDetail().getCashFlows()); >>> a.setDefaultDaysToCashFlow (15000); >>> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>> a.setBaselineType( 'MB'); >>> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >>> a.setDefaultDaysToCashFlow (15000); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> end >>> >>> 18cad_lng_sec_iss_prov_over10Y_under35Y_2 >>> // rule values at A152, header at A138 >>> rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >>> salience 65384 >>> when >>> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >>> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >> Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >>> ,'MP','MANPAC','MPTB','ONTW' >>> ,'ONT','ONTB','ONTPAC','Q' >>> ,'QTB','QUEPAC','QW','NBRNS' >>> ,'NS','PRINCE','NF','NFTB')) >>> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >>> Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >>> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >>> Position(positionDetail.valuationType in ('Valuation','Both')) >>> Position(positionDetail.riskProductType == 'UNKNOWN') >>> then >>> result.add(classification=new ActionParametersImpl('BaselineClassification')); >>> classification.setBaseline('NCCF'); >>> classification.setLineId("NCCF0100341"); >>> classification.setObject(p); >>> classification.setPositionId(p.getPositionId()); >>> classification.setDataStatus(p.getDataStatus()); >>> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>> classification.setRulePath(ruleHistory.getActivationPath()); >>> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>> a.setValueName( 'Balance'); >>> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>> a.setBaselineType( 'MB'); >>> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>> a.setNettingType('Security'); >>> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>> a.setBucket('Total'); >>> end >>> >>> >>> >>> >>> >>> From: Mark Proctor [via Drools] <x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=0" target="_top" rel="nofollow" link="external">[hidden email]> >>> To: kellyajp <x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=1" target="_top" rel="nofollow" link="external">[hidden email]> >>> Sent: Tuesday, 1 April 2014, 14:10 >>> Subject: Re: Possible memory leak in Drools 6.0.1 >>> >>> any news? >>> >>> Mark >>> On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: >>> >>> >>> >>> On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: >>> >>> >>> I'll get that to you on Monday >>> >>> On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029027&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>> >>> Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >>>>> that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>>>> >>>>> Mark >>>>> On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>>> Thanks >>>>>> >>>>>> I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>>>> >>>>>> Andy >>>>>> On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029025&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>>> >>>>>>> Can you get us a unit test demonstrating this, and we?ll look into it as a priority. >>>>>>> >>>>>>> Mark >>>>>>> On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>>>> >>>>>>> > We have upgraded from Drools 5 -> Drools 6.01 and when repeating the >>>>>>> > processing in each environment we have very different object counts that is >>>>>>> > causing memory to run out on Drools 6: >>>>>>> > >>>>>>> > Below is an extract from a heap dump >>>>>>> > >>>>>>> > In Drools 6 the main objects in the heap are >>>>>>> > 1: 4378006 700480960 org.drools.core.reteoo.RightTuple >>>>>>> > >>>>>>> > Where as in Drools 5 there are way less objects >>>>>>> > 92: 19022 1826112 org.drools.reteoo.RightTuple >>>>>>> > >>>>>>> > Has anyone else had any experience of this issue? >>>>>>> > >>>>>>> > Thanks >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > -- >>>>>>> > View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>>> > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>>>> > _______________________________________________ >>>>>>> > rules-dev mailing list >>>>>>> > x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>>>> > https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>>> _______________________________________________ >>>>>>> rules-dev mailing list >>>>>>> x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>>> If you reply to this email, your message will be added to the discussion below: >>>>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>>>> NAML >>>>>> >>>>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>>> _______________________________________________ >>>>>> rules-dev mailing list >>>>>> x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=1">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>> >>>>> _______________________________________________ >>>>> rules-dev mailing list >>>>> x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=2">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>> If you reply to this email, your message will be added to the discussion below: >>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>> NAML >>>> >>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>> _______________________________________________ >>>> rules-dev mailing list >>>> [hidden email] >>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> >>> >>> _______________________________________________ >>> rules-dev mailing list >>> [hidden email] >>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> If you reply to this email, your message will be added to the discussion below: >>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>> NAML >>> >>> >>> >>> NCCF_BASELINE.xls.drl (9M) Download Attachment >>> >>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>> _______________________________________________ >>> rules-dev mailing list >>> [hidden email] >>> https://lists.jboss.org/mailman/listinfo/rules-dev >> >> >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev >> >> If you reply to this email, your message will be added to the discussion below: >> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html >> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >> NAML >> >> >> >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev > > > _______________________________________________ > rules-dev mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-dev > > If you reply to this email, your message will be added to the discussion below: > http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029087.html > To unsubscribe from Possible memory leak in Drools 6.0.1, click here. > NAML > > > > View this message in context: Re: Possible memory leak in Drools 6.0.1 > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. > _______________________________________________ > rules-dev mailing list > rules-dev at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140402/74c357da/attachment-0001.html From Joe.White at recondotech.com Fri Apr 4 11:57:01 2014 From: Joe.White at recondotech.com (Joe White) Date: Fri, 4 Apr 2014 15:57:01 +0000 Subject: [rules-dev] Deploy doc pull Message-ID: Mike, I created the pull request that added a little detail on where the Workbench will attempt to deploy an asset. Ended up putting it in the Build and Deploy section of the Workbench documentation. https://github.com/droolsjbpm/droolsjbpm-knowledge/pull/65 XMLMind did some automated changes to the xml. If those are a problem let me know and I'll re-do the pull with more targeted changes. Thanks Joe -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140404/42e82b9c/attachment.html From wolfgang.laun at gmail.com Sat Apr 5 05:46:49 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Sat, 5 Apr 2014 11:46:49 +0200 Subject: [rules-dev] Empty modify blocks in Expert Message-ID: http://docs.jboss.org/drools/release/6.1.0.Beta2/drools-docs/html_single/ Search for "modify" after "7.8.3.7.2. Conditional Element from", where examples contain lines such as modify ($p) {} // Assign person to sales region 1 in a modify block which is bound to cause confusion. These omissions continue until "7.8.3.7.3. Conditional Element collect". -W From mproctor at codehaus.org Mon Apr 7 20:39:20 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Tue, 8 Apr 2014 01:39:20 +0100 Subject: [rules-dev] Drools - Bayesian Belief Network Integration P2 Message-ID: http://blog.athico.com/2014/04/drools-bayesian-belief-network.html From kellyajp at yahoo.co.uk Wed Apr 9 08:44:36 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 9 Apr 2014 05:44:36 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> Message-ID: <1397047448.71525.YahooMailNeo@web171806.mail.ir2.yahoo.com> Afternoon Mark, Looks like making the change you suggested ie not needing so many patterns. All those constraints can go in a single Pattern. ?has significantly reduced the GC's. We are making the changes to all our rule templates and will rerun. Is there a difference in Drools 6 that would make using separate Patterns such an overhead? Thanks ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Wednesday, 2 April 2014, 12:41 Subject: Re: Possible memory leak in Drools 6.0.1 not sure why this would have a memory leak, it all looks quite straight forward joins. I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern.? Mark On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: Morning Mark, > > >That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). > > >This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? > > >Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. > > >The exact same file processes in Drools 5 but fails in Drools 6. > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >// rule values at A650, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >? ? salience 64886 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100579"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >// rule values at A652, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >? ? salience 64884 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >// rule values at A651, header at A644 >rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >? ? salience 64885 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100581"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > >08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >// rule values at A954, header at A921 >rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >? ? salience 64582 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100405"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (1); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >? ? ? ? a.setBaselineType( 'CB'); >? ? ? ? a.setCashflowType( 'Principal, Interest'); >? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >? ? ? ? a.setDefaultDaysToCashFlow (15000); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > >18cad_lng_sec_iss_prov_over10Y_under35Y_2 >// rule values at A152, header at A138 >rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >? ? salience 65384 >? ? when >? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate ? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >,'MP','MANPAC','MPTB','ONTW' >,'ONT','ONTB','ONTPAC','Q' >,'QTB','QUEPAC','QW','NBRNS' >,'NS','PRINCE','NF','NFTB')) >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >? ? then >? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >? ? ? ? classification.setBaseline('NCCF'); >? ? ? ? classification.setLineId("NCCF0100341"); >? ? ? ? classification.setObject(p); >? ? ? ? classification.setPositionId(p.getPositionId()); >? ? ? ? classification.setDataStatus(p.getDataStatus()); >? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >? ? ? ? a.setValueName( 'Balance'); >? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >? ? ? ? a.setBaselineType( 'MB'); >? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >? ? ? ? a.setNettingType('Security'); >? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >? ? ? ? a.setBucket('Total'); >end > > > > > > > > > > > >________________________________ > From: Mark Proctor [via Drools] <[hidden email]> >To: kellyajp <[hidden email]> >Sent: Tuesday, 1 April 2014, 14:10 >Subject: Re: Possible memory leak in Drools 6.0.1 > > > >any news? > > >Mark > >On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: > > > >On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: > >I'll get that to you on Monday? > >On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: > > >Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. > >that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>> >>> >>>Mark >>> >>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>> >>>Thanks >>>> >>>> >>>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>> >>>> >>>>Andy >>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>> >>>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>>> >>>>>Mark? >>>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>>> >>>>> >>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>>> processing in each environment we have very different object counts that is? >>>>>> causing memory to run out on Drools 6:? >>>>>>? >>>>>> Below is an extract from a heap dump? >>>>>>? >>>>>> In Drools 6 the main objects in the heap are? >>>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>>? >>>>>> Where as in Drools 5 there are way less objects? >>>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>>? >>>>>> Has anyone else had any experience of this issue?? >>>>>>? >>>>>> Thanks? >>>>>>? >>>>>>? >>>>>>? >>>>>> --? >>>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>>> _______________________________________________? >>>>>> rules-dev mailing list? >>>>>>?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]?https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>>>>>>>________________________________ >>>>> >>>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>>NAML >>>>>>>>________________________________ >>>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>_______________________________________________ >>>rules-dev mailing list >>>x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>>>>>________________________________ >>> >>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>NAML >>>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > > >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev > >>________________________________ > >If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >NAML > > > > NCCF_BASELINE.xls.drl (9M) Download Attachment >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029180.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140409/e3203239/attachment-0001.html From mproctor at codehaus.org Wed Apr 9 09:47:13 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 9 Apr 2014 14:47:13 +0100 Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <1397047448.71525.YahooMailNeo@web171806.mail.ir2.yahoo.com> References: <1396021234795-4029010.post@n3.nabble.com> <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> <1397047448.71525.YahooMailNeo@web171806.mail.ir2.yahoo.com> Message-ID: <5B7976DD-B22B-42D3-A519-94D46D47FE47@codehaus.org> Not that I?m aware of. Even if this resolve your issue, it would be really nice if you could provide us a sample project that demonstrates this problem. You can email myself or mario directly with the project. Mark On 9 Apr 2014, at 13:44, kellyajp wrote: > Afternoon Mark, > > Looks like making the change you suggested ie not needing so many patterns. All those constraints can go in a single Pattern. has significantly reduced the GC's. We are making the changes to all our rule templates and will rerun. > > Is there a difference in Drools 6 that would make using separate Patterns such an overhead? > > Thanks > > From: Mark Proctor [via Drools] <[hidden email]> > To: kellyajp <[hidden email]> > Sent: Wednesday, 2 April 2014, 12:41 > Subject: Re: Possible memory leak in Drools 6.0.1 > > not sure why this would have a memory leak, it all looks quite straight forward joins. > > I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? > > A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern. > > Mark > > > On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: > >> Morning Mark, >> >> That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). >> >> This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules. >> >> Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. >> >> The exact same file processes in Drools 5 but fails in Drools 6. >> >> 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >> // rule values at A650, header at A644 >> rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >> salience 64886 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100579"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> 31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >> // rule values at A652, header at A644 >> rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >> salience 64884 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100581"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> 31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >> // rule values at A651, header at A644 >> rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >> salience 64885 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >> Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >> Position(positionDetail.overallCreditQualityStep == 2) >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType != 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100581"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setCashflowType( 'SETTLEMENT, Settlement'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (1); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setBaselineType( 'CB'); >> a.setCashflowType( 'Principal, Interest'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (15000); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >> a.setDefaultDaysToCashFlow (15000); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> 08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >> // rule values at A954, header at A921 >> rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >> salience 64582 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >> Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' , 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >> Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType != 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100405"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setCashflowType( 'SETTLEMENT, Settlement'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (1); >> classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >> a.setBaselineType( 'CB'); >> a.setCashflowType( 'Principal, Interest'); >> a.setList(p.getPositionDetail().getCashFlows()); >> a.setDefaultDaysToCashFlow (15000); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >> a.setDefaultDaysToCashFlow (15000); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> 18cad_lng_sec_iss_prov_over10Y_under35Y_2 >> // rule values at A152, header at A138 >> rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >> salience 65384 >> when >> p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >> Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >> Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate > Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >> ,'MP','MANPAC','MPTB','ONTW' >> ,'ONT','ONTB','ONTPAC','Q' >> ,'QTB','QUEPAC','QW','NBRNS' >> ,'NS','PRINCE','NF','NFTB')) >> Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >> Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >> Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >> Position(positionDetail.valuationType in ('Valuation','Both')) >> Position(positionDetail.riskProductType == 'UNKNOWN') >> then >> result.add(classification=new ActionParametersImpl('BaselineClassification')); >> classification.setBaseline('NCCF'); >> classification.setLineId("NCCF0100341"); >> classification.setObject(p); >> classification.setPositionId(p.getPositionId()); >> classification.setDataStatus(p.getDataStatus()); >> classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >> classification.setRulePath(ruleHistory.getActivationPath()); >> classification.add(a=new ActionParametersImpl( 'BaselineValue')); >> a.setValueName( 'Balance'); >> a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >> a.setBaselineType( 'MB'); >> a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >> a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >> a.setNettingType('Security'); >> a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >> a.setBucket('Total'); >> end >> >> >> >> >> >> From: Mark Proctor [via Drools] <[hidden email]> >> To: kellyajp <[hidden email]> >> Sent: Tuesday, 1 April 2014, 14:10 >> Subject: Re: Possible memory leak in Drools 6.0.1 >> >> any news? >> >> Mark >> On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: >> >> >> >> On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: >> >> >> I'll get that to you on Monday >> >> On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >> >> >> Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >>>> that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>>> >>>> Mark >>>> On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>>> Thanks >>>>> >>>>> I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>>> >>>>> Andy >>>>> On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>>> Can you get us a unit test demonstrating this, and we?ll look into it as a priority. >>>>>> >>>>>> Mark >>>>>> On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>>> >>>>>> > We have upgraded from Drools 5 -> Drools 6.01 and when repeating the >>>>>> > processing in each environment we have very different object counts that is >>>>>> > causing memory to run out on Drools 6: >>>>>> > >>>>>> > Below is an extract from a heap dump >>>>>> > >>>>>> > In Drools 6 the main objects in the heap are >>>>>> > 1: 4378006 700480960 org.drools.core.reteoo.RightTuple >>>>>> > >>>>>> > Where as in Drools 5 there are way less objects >>>>>> > 92: 19022 1826112 org.drools.reteoo.RightTuple >>>>>> > >>>>>> > Has anyone else had any experience of this issue? >>>>>> > >>>>>> > Thanks >>>>>> > >>>>>> > >>>>>> > >>>>>> > -- >>>>>> > View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>> > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>>> > _______________________________________________ >>>>>> > rules-dev mailing list >>>>>> > x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>>> > https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>> _______________________________________________ >>>>>> rules-dev mailing list >>>>>> x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>> >>>>>> If you reply to this email, your message will be added to the discussion below: >>>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>>> NAML >>>>> >>>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>>> _______________________________________________ >>>>> rules-dev mailing list >>>>> x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>> >>>> _______________________________________________ >>>> rules-dev mailing list >>>> x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>> If you reply to this email, your message will be added to the discussion below: >>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>> NAML >>> >>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>> _______________________________________________ >>> rules-dev mailing list >>> [hidden email] >>> https://lists.jboss.org/mailman/listinfo/rules-dev >> >> >> >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev >> >> If you reply to this email, your message will be added to the discussion below: >> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >> NAML >> >> >> >> NCCF_BASELINE.xls.drl (9M) Download Attachment >> >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >> Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >> _______________________________________________ >> rules-dev mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-dev > > > _______________________________________________ > rules-dev mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-dev > > If you reply to this email, your message will be added to the discussion below: > http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html > To unsubscribe from Possible memory leak in Drools 6.0.1, click here. > NAML > > > > View this message in context: Re: Possible memory leak in Drools 6.0.1 > Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. > _______________________________________________ > rules-dev mailing list > rules-dev at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140409/446b0485/attachment-0001.html From kellyajp at yahoo.co.uk Wed Apr 9 10:30:41 2014 From: kellyajp at yahoo.co.uk (kellyajp) Date: Wed, 9 Apr 2014 07:30:41 -0700 (PDT) Subject: [rules-dev] Possible memory leak in Drools 6.0.1 In-Reply-To: <5B7976DD-B22B-42D3-A519-94D46D47FE47@codehaus.org> References: <516E3D2D-81B1-45FD-B961-5CA7D276BD46@yahoo.co.uk> <5AAC6FB6-E634-4F66-932B-C8D98FC72DDB@codehaus.org> <7C929FCE-68E5-4FAA-8ABE-4535AF743F3E@yahoo.co.uk> <40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org> <1396434001.66683.YahooMailNeo@web171806.mail.ir2.yahoo.com> <8C93DF12-A1AB-40DB-B4DA-FCE0B0EB9273@codehaus.org> <1397047448.71525.YahooMailNeo@web171806.mail.ir2.yahoo.com> <5B7976DD-B22B-42D3-A519-94D46D47FE47@codehaus.org> Message-ID: <1397053818.87736.YahooMailNeo@web171806.mail.ir2.yahoo.com> Thats fine, I will put something together. Thanks ________________________________ From: Mark Proctor [via Drools] To: kellyajp Sent: Wednesday, 9 April 2014, 14:48 Subject: Re: Possible memory leak in Drools 6.0.1 Not that I?m aware of. Even if this resolve your issue, it would be really nice if you could provide us a sample project that demonstrates this problem. You can email myself or mario directly with the project. Mark On 9 Apr 2014, at 13:44, kellyajp <[hidden email]> wrote: Afternoon Mark, > > >Looks like making the change you suggested ie not needing so many patterns. All those constraints can go in a single Pattern. ?has significantly reduced the GC's. We are making the changes to all our rule templates and will rerun. > > >Is there a difference in Drools 6 that would make using separate Patterns such an overhead? > > >Thanks > > > >________________________________ > From: Mark Proctor [via Drools] <[hidden email]> >To: kellyajp <[hidden email]> >Sent: Wednesday, 2 April 2014, 12:41 >Subject: Re: Possible memory leak in Drools 6.0.1 > > > >not sure why this would have a memory leak, it all looks quite straight forward joins. > > >I assume you are using stateless sessions and inserting just a single Position instance? Is there a different number of RT?s after a single Position insert? > > >A small tip, you don?t need so many patterns. All those constraints can go in a single Pattern.? > > >Mark > > > > > >On 2 Apr 2014, at 11:20, kellyajp <[hidden email]> wrote: > >Morning Mark, >> >> >>That was a useful exercise!!, from a sampled set it looks like the RightTuple instances are coming from a single rule package (nccf). >> >> >>This rule package comes from a large decision table of that is maintained by our business users. This results in a large DRL file being generated containing 2371 rules.? >> >> >>Below I have included some of the rules that were referenced in the data structures, I have also attached the generated DRL file. >> >> >>The exact same file processes in Drools 5 but fails in Drools 6. >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2 >>// rule values at A650, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over0y_under5y_2" >>? ? salience 64886 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100579"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over0y_under10y_2 >>// rule values at A652, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_2" >>? ? salience 64884 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100581"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >>31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1 >>// rule values at A651, header at A644 >>rule "31usd_lng_corp_bnd_cr_bbb_usd_over5y_under10y_1" >>? ? salience 64885 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+157680000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "USD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "corp") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.typeOfBond != null && positionDetail.instrument.typeOfBond not in ('convertible','covered' ,'jumbo pfandbriefe')) >>? ? ? ? Position(positionDetail.overallCreditQualityStep == 2) >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100581"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (1); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setBaselineType( 'CB'); >>? ? ? ? a.setCashflowType( 'Principal, Interest'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >>08eur_la_lng_qual_mkt_sec_agncy_dbt_7y_Under_10Y_5 >>// rule values at A954, header at A921 >>rule "08eur_la_lng_qual_mtk_sec_agncy_dbt_7Y_under_10Y_5" >>? ? salience 64582 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfDomicile in ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR' ,'GB','GR' ,'HU' ,'IE' ,'IS' ,'IT' ,'LI' ,'LT' ,'LU' ,'LV' ,'MT' ,'NL' ,'NO' ,'PL' ,'PT' ,'RO' ,'SE' ,'SI' ,'SK')) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.countryOfIncorporation in ('AT' ,'BE' ,'BG' , 'CY' ,'CZ' ,'DE' ?, 'DK' ,'EE' ,'ES', 'FI' ,'FR' ,'GB' , 'GR' ,'HU' ,'IE' , 'IS' ,'IT' ,'LI' , 'LT' ,'LU' ,'LV' , 'MT' ,'NL' ,'NO' , 'PL' ,'PT' ,'RO','SE' ,'SI' ,'SK')) >>? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "EUR") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.collateralType in ('govt liquid gtd','us govt guarant','u.s. government guarantee')) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+220752000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType != 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100405"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setCashflowType( 'SETTLEMENT, Settlement'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (1); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineCashflow')); >>? ? ? ? a.setBaselineType( 'CB'); >>? ? ? ? a.setCashflowType( 'Principal, Interest'); >>? ? ? ? a.setList(p.getPositionDetail().getCashFlows()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setDate(p.getPositionDetail().getInstrument().getMaturityDate()); >>? ? ? ? a.setDefaultDaysToCashFlow (15000); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >>18cad_lng_sec_iss_prov_over10Y_under35Y_2 >>// rule values at A152, header at A138 >>rule "18cad_lng_sec_iss_prov_over10y_under35y_2" >>? ? salience 65384 >>? ? when >>? ? ? ? p: Position(positionDetail!=null && positionDetail.valuation != null && positionDetail.valuation.mtmValue >=0) >>? ? ? ? Position(positionDetail.productHierarchy != null && positionDetail.productHierarchy.rbcProductClass == "securities") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >=positionDetail.riskBusinessDate+315360000000) >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.maturityDate >? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerTicker in ('BRCOL','BcpIPB','ALTA','SCDA' >>,'MP','MANPAC','MPTB','ONTW' >>,'ONT','ONTB','ONTPAC','Q' >>,'QTB','QUEPAC','QW','NBRNS' >>,'NS','PRINCE','NF','NFTB')) >>? ? ? ? Position(positionDetail.Valuation!= null && positionDetail. Valuation.ValuationCurrency == "CAD") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.issuerIndustry == "govt regional") >>? ? ? ? Position(positionDetail.instrument != null && positionDetail.instrument.marketSectorDescription == "govt") >>? ? ? ? Position(positionDetail.valuationType in ('Valuation','Both')) >>? ? ? ? Position(positionDetail.riskProductType == 'UNKNOWN') >>? ? then >>? ? ? ? result.add(classification=new ActionParametersImpl('BaselineClassification')); >>? ? ? ? classification.setBaseline('NCCF'); >>? ? ? ? classification.setLineId("NCCF0100341"); >>? ? ? ? classification.setObject(p); >>? ? ? ? classification.setPositionId(p.getPositionId()); >>? ? ? ? classification.setDataStatus(p.getDataStatus()); >>? ? ? ? classification.setCountry(p.getPositionDetail().getBook().getTransit().getLegalEntityCountry()); >>? ? ? ? classification.setRulePath(ruleHistory.getActivationPath()); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineValue')); >>? ? ? ? a.setValueName( 'Balance'); >>? ? ? ? a.setValue( p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency( p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>? ? ? ? classification.add(a=new ActionParametersImpl( 'BaselineTimeBucket')); >>? ? ? ? a.setBaselineType( 'MB'); >>? ? ? ? a.setValue(p.getPositionDetail().getValuation().getMtmValue()); >>? ? ? ? a.setCurrency(p.getPositionDetail().getValuation().getValuationCurrency()); >>? ? ? ? a.setNettingType('Security'); >>? ? ? ? a.setAdjustmentType('Fungible Long covers Fungible Short,Fungible Short covers Fungible Long'); >>? ? ? ? a.setBucket('Total'); >>end >> >> >> >> >> >> >> >> >> >> >> >>________________________________ >> From: Mark Proctor [via Drools] <x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=0" target="_top" rel="nofollow" link="external">[hidden email]> >>To: kellyajp <x-msg://43/user/SendEmail.jtp?type=node&node=4029078&i=1" target="_top" rel="nofollow" link="external">[hidden email]> >>Sent: Tuesday, 1 April 2014, 14:10 >>Subject: Re: Possible memory leak in Drools 6.0.1 >> >> >> >>any news? >> >> >>Mark >> >>On 30 Mar 2014, at 13:38, Mark Proctor <[hidden email]> wrote: >> >> >> >>On 30 Mar 2014, at 13:26, kellyajp <[hidden email]> wrote: >> >>I'll get that to you on Monday? >> >>On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029027&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029027&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >> >> >>Are you able to isolate what the FH?s are referencing, Sorry that should be RT, not FH. RT == RightTuple, FH == FactHandle. >> >>that might give us an idea of where to look. If you look RightTuple?s they will have a ?sink' reference (network node) and that sink will have an ?associates? map. That map is the rules that node is part of. You can use this to identify the offending rule(s), and maybe paste those rules here? >>>> >>>> >>>>Mark >>>> >>>>On 30 Mar 2014, at 09:03, kellyajp <x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=0">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>> >>>>Thanks >>>>> >>>>> >>>>>I'll get someone from the team to work on this on Monday. Not sure how easy it will be to isolate but will keep you informed. >>>>> >>>>> >>>>>Andy >>>>>On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029025&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029025&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029025&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote: >>>>> >>>>> >>>>>Can you get us a unit test demonstrating this, and we?ll look into it as a priority.? >>>>>> >>>>>>Mark? >>>>>>On 28 Mar 2014, at 15:40, kellyajp <x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=0">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=0" target="_top" rel="nofollow" link="external">[hidden email]> wrote:? >>>>>> >>>>>> >>>>>>> We have upgraded from Drools 5 -> Drools 6.01 and when repeating the? >>>>>>> processing in each environment we have very different object counts that is? >>>>>>> causing memory to run out on Drools 6:? >>>>>>>? >>>>>>> Below is an extract from a heap dump? >>>>>>>? >>>>>>> In Drools 6 the main objects in the heap are? >>>>>>> 1: ? ? ? 4378006 ? ? ?700480960 ?org.drools.core.reteoo.RightTuple? >>>>>>>? >>>>>>> Where as in Drools 5 there are way less objects? >>>>>>> 92: ? ? ? ? 19022 ? ? ? ?1826112 ?org.drools.reteoo.RightTuple? >>>>>>>? >>>>>>> Has anyone else had any experience of this issue?? >>>>>>>? >>>>>>> Thanks? >>>>>>>? >>>>>>>? >>>>>>>? >>>>>>> --? >>>>>>> View this message in context:?http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>>>> Sent from the Drools: Developer (committer) mailing list mailing list archive at?Nabble.com.? >>>>>>> _______________________________________________? >>>>>>> rules-dev mailing list? >>>>>>>?x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=1">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=1" target="_top" rel="nofollow" link="external">[hidden email]? >>>>>>>?https://lists.jboss.org/mailman/listinfo/rules-dev_______________________________________________?rules-dev mailing list?x-msg://131/user/SendEmail.jtp?type=node&amp;amp;node=4029018&amp;amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&amp;node=4029018&amp;i=2">x-msg://131/user/SendEmail.jtp?type=node&node=4029018&i=2" target="_top" rel="nofollow" link="external">[hidden email]?https://lists.jboss.org/mailman/listinfo/rules-dev >>>>>>________________________________ >>>>>> >>>>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029018.html >>>>>>To unsubscribe from Possible memory leak in Drools 6.0.1,?click here. >>>>>>NAML >>>>>>>>>>________________________________ >>>>>View this message in context:?Re: Possible memory leak in Drools 6.0.1 >>>>>Sent from the?Drools: Developer (committer) mailing list mailing list archive?at?Nabble.com. >>>>>_______________________________________________ >>>>>rules-dev mailing list >>>>>x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=1">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=1" target="_top" rel="nofollow" link="external">[hidden email] >>>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>>_______________________________________________ >>>>rules-dev mailing list >>>>x-msg://133/user/SendEmail.jtp?type=node&amp;node=4029026&amp;i=2">x-msg://133/user/SendEmail.jtp?type=node&node=4029026&i=2" target="_top" rel="nofollow" link="external">[hidden email] >>>>https://lists.jboss.org/mailman/listinfo/rules-dev >>>> >>>>>>>>________________________________ >>>> >>>>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029026.html >>>>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>NAML >>>>>>________________________________ >>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>>_______________________________________________ >>>rules-dev mailing list >>>[hidden email] >>>https://lists.jboss.org/mailman/listinfo/rules-dev >> >> >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev >> >>>>________________________________ >> >>If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029052.html >>To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>NAML >> >> >> >> NCCF_BASELINE.xls.drl (9M) Download Attachment >>>>________________________________ >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >>_______________________________________________ >>rules-dev mailing list >>[hidden email] >>https://lists.jboss.org/mailman/listinfo/rules-dev > >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev > >>________________________________ > >If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029081.html >To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >NAML > > >>________________________________ > View this message in context: Re: Possible memory leak in Drools 6.0.1 >Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. >_______________________________________________ >rules-dev mailing list >[hidden email] >https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-dev ________________________________ If you reply to this email, your message will be added to the discussion below:http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029183.html To unsubscribe from Possible memory leak in Drools 6.0.1, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-tp4029010p4029186.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20140409/30fb741a/attachment-0001.html From mario.toffia at dataductus.se Wed Apr 16 15:11:37 2014 From: mario.toffia at dataductus.se (solo95) Date: Wed, 16 Apr 2014 12:11:37 -0700 (PDT) Subject: [rules-dev] Build drools-eclipse with maven 3.1 Message-ID: <1397675497856-4029284.post@n3.nabble.com> Hi, I've tried to build drools-eclipse 6.1.0-SNAPSHOT and the tycho seems to fail - I saw it was the 0.16.0 and I've changed it to 0.19.0 since changes in maven makes it neccesary to use tycho 0.18.0 or later in order to work. Is it possible to change the drools-eclipse/pom.xml line to a later version of tycho? (I did not find any report issiue at github site so I've posted it here...) 0.19.0 Cheers, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Build-drools-eclipse-with-maven-3-1-tp4029284.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. From sandeep.nambiar at onebillsoftware.com Tue Apr 22 14:07:27 2014 From: sandeep.nambiar at onebillsoftware.com (snak) Date: Tue, 22 Apr 2014 11:07:27 -0700 (PDT) Subject: [rules-dev] Drools KnowledgeAgentCreation In-Reply-To: <1398082092185-4029299.post@n3.nabble.com> References: <1398082092185-4029299.post@n3.nabble.com> Message-ID: <1398190047251-4029322.post@n3.nabble.com> Hi, I think the changeset url value you have given is wrong.. It should be more like String changeSetUrl = = "http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/test/LATEST/ChangeSet.xml". Please try making the above change. -- View this message in context: http://drools.46999.n3.nabble.com/Drools-KnowledgeAgentCreation-tp4029299p4029322.html Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com. From mproctor at codehaus.org Tue Apr 29 22:35:26 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 30 Apr 2014 03:35:26 +0100 Subject: [rules-dev] Decision Camp 2014 : Call for Speakers : Oct 13-15, San Jose Message-ID: http://blog.athico.com/2014/04/decision-camp-2014-call-for-speakers.html