Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Sorry, there was a JIRA link in the message thread that I didn't notice. https://issues.jboss.org/browse/JBRULES-1325 says the leak was fixed in 5.0 -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp54778p4020292.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Do you have a JIRA to reference for this? Without that it's hard to check. Mark On 12 Oct 2012, at 23:24, lhorton wrote: > Has this issue been fixed, or is it still necessary to remove any event > listeners so that the session is freed? > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp54778p4020267.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Has this issue been fixed, or is it still necessary to remove any event listeners so that the session is freed? -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp54778p4020267.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Hi laune, really appreciate your valuable time & dedication on this. Yes I did a mistake that there is no NotificationEvent and that should be OfferedEvent. Primary keys of the OfferedEvent are mobileNo & offerId. i.e should not send particular offer notification to perticuler mobile within next 24 hour. "once per day" : "not again in the next 24 hours” . (not calender days) I’m checking your code and will try to apply. If there are any suggestion or any amendments based on above input please post. Thanks a lot -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020246.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Hi, a nice problem... see below On 12/10/2012, mohan wrote: > Hi laune, > I'll explain the process briefly. I’m getting voice call events from our > billing system. We want give some offers if call made inside specific cell > (uploaded this fact to WM in advance) . But we have to give offer only once > per day. So repeated calls inside this cell won’t eligible for offer again. > To achieve this we initiate a new event(NotificationEvent) and insert into > WM and set metadata @expires(24h) against each mobile no. Ultimately over > 1000K NotificationEvents are residing in WM per day and guess it will > trigger OutOfMemory exception. How to handle such a case? Do we need to use > caching mechanism? > Unclear: Is NotificationEvent in the preceding paragraph the OfferedEvent in your rule below? And the expiry would have to be set for OfferedEvent, not "each mobile no" (as written above). Also, clarify "once per day". It seems that you want "not again in the next 24 hours but it can also be interpreted as "only once between 0:00 and 24:00". (The latter would be much easier to handle.) Beware: nothing of the code below is tested. Reducing the number of facts can be done by registering offers made in a one fact per offerId (assuming a mobile number can be stored in a long, which should be possible): declare OffersMade offerId : int origin2time : Map end You match a call event to an offer: rule "Call matches Offer" when $vc : VoiceCallEvent( $ct : eventTime, $cell : cellID, $mobile : originNumber) $offer : CymOfferInfo($valTo : validTo.time >= $ct, cellId == $cell, $offerId : offerType.getId, $msgContent : cepMsgTemplates.getId) then end Then there's two cases: you don't have a matching OffersMade yet, or you have but the caller isn't registered: rule "No such offer yet" extends "Call matches Offer" when not OffersMade( offerId == $offerId ) then OffersMade offersMade = new OffersMade(); offersMade.setOfferId( $offerId ); Map o2t = new HashMap(); offersMade.setOrigin2Time( o2t ); o2t.put( $mobile, $ct.getTime() ); insert( offersMade ); MdbServiceUtil.sendSMS( $mobile, $msgContent ); retract( $vc ); end rule "No offer for this origin" extends "Call matches Offer" when $om: OffersMade( offerId == $offerId, origin2time.keySet not contains $mobile ) then $om.getOrigin2Time().put( $mobile, $ct.getTime() ); update( $om ); MdbServiceUtil.sendSMS( $mobile, $msgContent ); retract( $vc ); end Finally you need to get rid of old entries. This can be done in a rule with a timer: rule "erase old offers" timer (cron:* 0/15 * * * ?) when $om: OffersMade() then boolean change = false; long limit = (new Date()).getTime() - 24*60*60*1000; for( Map.Entry entry: $om.getOrigin2Time().entrySet() ){ if( (Long)entry.getValue() <= limit ){ $om.getOrigin2Time().remove( entry.getKey() ); change = true; } } if( change ) update( $om ); end This still requires two Long objects per offer made (and overhead for the Map). You might reduce this further by storing the time only once per OffersMade, so that it is sufficient to have a Set for the originNumbers: declare OffersMade offerId : int offerTime : long origins : Set end Of course it would be obtuse to have one OffersMade per millisecond, which means that offerTime must be reduced to ticks of some reasonable granularity, I'd say between 1m and 1h. The required rule set is similar to the preceding one, even simpler, as it is, for instance, possible to discard an OffersMade object entirely after 24 hours: rule "discard old set" timer( int: 24h ) when $om: OffersMade then retract( $om ); end -W > Thanks. > > see below code snippet > > rule "Voice CYM offer selector" > dialect "java" > no-loop true > when > $vc : VoiceCallEvent( $ct : eventTime, $cell : cellID, $mobile : > originNumber) from entry-point "IN-VOICE-CALL-EVENT" > $offer : CymOfferInfo($valTo : validTo.time >= $ct, cellId == > $cell,$offerId : offerType.getId, $msgContent : cepMsgTemplates.getId) > not( OfferedEvent(mobileNo == $mobile , offerId == $offerId )) > then >CYMOfferMessage genMsg = new CYMOfferMessage(); >OfferedEvent offered = new OfferedEvent(); >offered.setMobileNo($mobile); >offered.setOfferId((String)$offerId); >genMsg.setMobile($mobile); >genMsg.setMsgContent($msgContent); > > /* atttach offer here */ > > /* drop SMS message to queue & block offer trigger again*/ > mdbService.dropMessage(genMsg); > insert(offered); > end > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020235.html > Sent from the Drools: User forum mailing list
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Hi laune, I'll explain the process briefly. I’m getting voice call events from our billing system. We want give some offers if call made inside specific cell (uploaded this fact to WM in advance) . But we have to give offer only once per day. So repeated calls inside this cell won’t eligible for offer again. To achieve this we initiate a new event(NotificationEvent) and insert into WM and set metadata @expires(24h) against each mobile no. Ultimately over 1000K NotificationEvents are residing in WM per day and guess it will trigger OutOfMemory exception. How to handle such a case? Do we need to use caching mechanism? Thanks. see below code snippet rule "Voice CYM offer selector" dialect "java" no-loop true when $vc : VoiceCallEvent( $ct : eventTime, $cell : cellID, $mobile : originNumber) from entry-point "IN-VOICE-CALL-EVENT" $offer : CymOfferInfo($valTo : validTo.time >= $ct, cellId == $cell,$offerId : offerType.getId, $msgContent : cepMsgTemplates.getId) not( OfferedEvent(mobileNo == $mobile , offerId == $offerId )) then CYMOfferMessage genMsg = new CYMOfferMessage(); OfferedEvent offered = new OfferedEvent(); offered.setMobileNo($mobile); offered.setOfferId((String)$offerId); genMsg.setMobile($mobile); genMsg.setMsgContent($msgContent); /* atttach offer here */ /* drop SMS message to queue & block offer trigger again*/ mdbService.dropMessage(genMsg); insert(offered); end -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020235.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Does Drools fusion provide any out of the box integration with any caching solutions like Eh cache? Sam -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020232.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
It is impossible to suggest anything without knowing more details, e.g. what are the types of these 1000k events, what needs to be done with them, can *any* event react (in some rule) with *any other* event, and so on. -W On 11/10/2012, mohan wrote: > Hi laune, > Yes i already used @expires(24h) metadata for event. So each event will > expire after 24 hours. But per day we are getting over 1000k events and > inserting it into working memory will cause to java.lang.OutOfMemoryError. > Guess increase Java heap size not best solution either. How we can tackle > this situation? > > thanks a lot your great ideas.. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020225.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Hi laune, Yes i already used @expires(24h) metadata for event. So each event will expire after 24 hours. But per day we are getting over 1000k events and inserting it into working memory will cause to java.lang.OutOfMemoryError. Guess increase Java heap size not best solution either. How we can tackle this situation? thanks a lot your great ideas.. -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020225.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
On 11/10/2012, mohan wrote: > Hi laune, > > Assume we continuously getting vast number of facts or events from a stream > and we want to reasoning over particular time window (accumulate number of > events on this window) how we could achieve the same? Guess we cannot call > dispose() after fireAllRules(). Certainly not - you'd lose all facts. If you need to keep some facts but have to avoid keeping them all you'll have to devise some method that retracts facts whenever they aren't useful any more. Automatic retraction of events might be one way - see the Fusion manual. OTOH, you might want to implement an explicit strategy for deleting obsolete facts. -W > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020206.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Hi laune, Assume we continuously getting vast number of facts or events from a stream and we want to reasoning over particular time window (accumulate number of events on this window) how we could achieve the same? Guess we cannot call dispose() after fireAllRules(). -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020206.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Thank you! I did write code for this last night and ran it, but didn't get the results I wanted so I was thinking the session was disposed before it had a chance to run the rules. But the real issue was that I did not write my rule correctly. Thanks again! -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185p4020195.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
On 10/10/2012, Mahadevappa, Shobha wrote: > Is there anything that has to be taken care in case of a stateless session. > I have a huge collection of facts that needs to get into the working memory > and I fire ksession.execute(); That'll do - it calls dispose for you. -W > > > > Regards, > Shobha M | Senior Program Manager, A&AD | NTT DATA Global Delivery Services > Limited| w. +91-80-26659482 (Ext 3679) | v. 8814.3679 | m. +91.9972522743 | > shobha.mahadeva...@nttdata.com > > > -Original Message- > From: rules-users-boun...@lists.jboss.org > [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Wolfgang Laun > Sent: 10 October 2012 PM 12:58 > To: Rules Users List > Subject: Re: [rules-users] java.lang.OutOfMemoryError: Java heap space > > Just repeat this, as often as required, with as many facts in "facts" > as you want: > > // copy-pasted from the API documentation ;-) StatefulKnowledgeSession > ksession = kbase.newStatefulKnowledgeSession(); > for( Object fact : facts ) { > ksession.insert( fact ); > } > ksession.fireAllRules(); > ksession.dispose(); > > -W > > > On 09/10/2012, Brenda1636 wrote: >> I've seen many posts about users receiving a "java.lang.OutOfMemoryError: >> Java heap space" error. The answer have been to increase heap space. I >> was wondering if there is another way around this. >> >> I have about 10,000 facts that I want to bring into working memory. Is >> there a way to insert some of them, run the rules, remove the inserted >> ones, and then insert more? >> >> Thanks! >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap >> -space-tp4020185.html Sent from the Drools: User forum mailing list >> archive at Nabble.com. >> ___ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > __ > Disclaimer:This email and any attachments are sent in strictest confidence > for the sole use of the addressee and may contain legally privileged, > confidential, and proprietary data. If you are not the intended recipient, > please advise the sender by replying promptly to this email and then delete > and destroy this email and any attachments without any further use, copying > or forwarding > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Is there anything that has to be taken care in case of a stateless session. I have a huge collection of facts that needs to get into the working memory and I fire ksession.execute(); Regards, Shobha M | Senior Program Manager, A&AD | NTT DATA Global Delivery Services Limited| w. +91-80-26659482 (Ext 3679) | v. 8814.3679 | m. +91.9972522743 | shobha.mahadeva...@nttdata.com -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Wolfgang Laun Sent: 10 October 2012 PM 12:58 To: Rules Users List Subject: Re: [rules-users] java.lang.OutOfMemoryError: Java heap space Just repeat this, as often as required, with as many facts in "facts" as you want: // copy-pasted from the API documentation ;-) StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); for( Object fact : facts ) { ksession.insert( fact ); } ksession.fireAllRules(); ksession.dispose(); -W On 09/10/2012, Brenda1636 wrote: > I've seen many posts about users receiving a "java.lang.OutOfMemoryError: > Java heap space" error. The answer have been to increase heap space. I > was wondering if there is another way around this. > > I have about 10,000 facts that I want to bring into working memory. Is > there a way to insert some of them, run the rules, remove the inserted > ones, and then insert more? > > Thanks! > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap > -space-tp4020185.html Sent from the Drools: User forum mailing list > archive at Nabble.com. > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users __ Disclaimer:This email and any attachments are sent in strictest confidence for the sole use of the addressee and may contain legally privileged, confidential, and proprietary data. If you are not the intended recipient, please advise the sender by replying promptly to this email and then delete and destroy this email and any attachments without any further use, copying or forwarding ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Just repeat this, as often as required, with as many facts in "facts" as you want: // copy-pasted from the API documentation ;-) StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); for( Object fact : facts ) { ksession.insert( fact ); } ksession.fireAllRules(); ksession.dispose(); -W On 09/10/2012, Brenda1636 wrote: > I've seen many posts about users receiving a "java.lang.OutOfMemoryError: > Java heap space" error. The answer have been to increase heap space. I was > wondering if there is another way around this. > > I have about 10,000 facts that I want to bring into working memory. Is > there > a way to insert some of them, run the rules, remove the inserted ones, and > then insert more? > > Thanks! > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] java.lang.OutOfMemoryError: Java heap space
I've seen many posts about users receiving a "java.lang.OutOfMemoryError: Java heap space" error. The answer have been to increase heap space. I was wondering if there is another way around this. I have about 10,000 facts that I want to bring into working memory. Is there a way to insert some of them, run the rules, remove the inserted ones, and then insert more? Thanks! -- View this message in context: http://drools.46999.n3.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-tp4020185.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] java.lang.OutOfMemoryError: Java heap space onDrools 4.0.4
I have allocated 2 GB memory to application server More over when I am running the same using the previous version jars i.e., 3.0.x drools I never get this... Thanks, Shiva Tel: +91-40-27782000 Ext: 4259 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Tuesday, January 22, 2008 12:43 PM To: Rules Users List Subject: Re: [rules-users] java.lang.OutOfMemoryError: Java heap space onDrools 4.0.4 Allocate more memory for the JVM when starting the application/server. As an example, pass the following in to the JVM on startup: -Xms128m -Xmx256m By default, the JVM only allocate 64M of memory. You simply need to tell the JVM to allocate more. "Shiva Shankar Reddy Katula" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 01/21/2008 10:38 PM Please respond to Rules Users List To "Rules Users List" cc Subject [rules-users] java.lang.OutOfMemoryError: Java heap space on Drools 4.0.4 Hi, I am getting the following outofmemory error after upgrading from 3.0.x to 4.0.4. I use to never get this error before. I don't think this is because of system memory issue. I have 8 GB RAM Linux Machine with JBOSS Server. Do anybody have this issue if so what is the resolution. 22:22:38,177 ERROR [STDERR] Exception in thread "Timer-354" 22:22:38,177 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.trim(StringCoding.java:64) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.access$400(StringCoding.java:37) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding$CharsetSE.encode(StringCoding.java:353) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.encode(StringCoding.java:378) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.encode(StringCoding.java:384) 22:22:38,177 ERROR [STDERR] at java.lang.String.getBytes(String.java:829) 22:22:38,183 ERROR [STDERR] at org.drools.rule.builder.dialect.java.JavaDialect.addClassCompileTask(Jav aDialect.java:472)22:22:38,183 ERROR [STDERR] at org.drools.rule.builder.dialect.java.JavaDialect.addFunction(JavaDialect .java:442) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addFunction(PackageBuilder.java:406) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:289) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java :167) Thanks, Shiva Tel: +91-40-27782000 Ext: 4259___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space on Drools 4.0.4
Allocate more memory for the JVM when starting the application/server. As an example, pass the following in to the JVM on startup: -Xms128m -Xmx256m By default, the JVM only allocate 64M of memory. You simply need to tell the JVM to allocate more. "Shiva Shankar Reddy Katula" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 01/21/2008 10:38 PM Please respond to Rules Users List To "Rules Users List" cc Subject [rules-users] java.lang.OutOfMemoryError: Java heap space on Drools 4.0.4 Hi, I am getting the following outofmemory error after upgrading from 3.0.x to 4.0.4. I use to never get this error before. I don't think this is because of system memory issue. I have 8 GB RAM Linux Machine with JBOSS Server. Do anybody have this issue if so what is the resolution. 22:22:38,177 ERROR [STDERR] Exception in thread "Timer-354" 22:22:38,177 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.trim(StringCoding.java:64) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.access$400(StringCoding.java:37) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding$CharsetSE.encode(StringCoding.java:353) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.encode(StringCoding.java:378) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.encode(StringCoding.java:384) 22:22:38,177 ERROR [STDERR] at java.lang.String.getBytes(String.java:829) 22:22:38,183 ERROR [STDERR] at org.drools.rule.builder.dialect.java.JavaDialect.addClassCompileTask(JavaDialect.java:472)22:22:38,183 ERROR [STDERR] at org.drools.rule.builder.dialect.java.JavaDialect.addFunction(JavaDialect.java:442) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addFunction(PackageBuilder.java:406) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:289) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:167) Thanks, Shiva Tel: +91-40-27782000 Ext: 4259 ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] java.lang.OutOfMemoryError: Java heap space on Drools 4.0.4
Hi, I am getting the following outofmemory error after upgrading from 3.0.x to 4.0.4. I use to never get this error before. I don't think this is because of system memory issue. I have 8 GB RAM Linux Machine with JBOSS Server. Do anybody have this issue if so what is the resolution. 22:22:38,177 ERROR [STDERR] Exception in thread "Timer-354" 22:22:38,177 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.trim(StringCoding.java:64) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.access$400(StringCoding.java:37) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding$CharsetSE.encode(StringCoding.java:353) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.encode(StringCoding.java:378) 22:22:38,177 ERROR [STDERR] at java.lang.StringCoding.encode(StringCoding.java:384) 22:22:38,177 ERROR [STDERR] at java.lang.String.getBytes(String.java:829) 22:22:38,183 ERROR [STDERR] at org.drools.rule.builder.dialect.java.JavaDialect.addClassCompileTask(Jav aDialect.java:472)22:22:38,183 ERROR [STDERR] at org.drools.rule.builder.dialect.java.JavaDialect.addFunction(JavaDialect .java:442) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addFunction(PackageBuilder.java:406) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:289) 22:22:38,183 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java :167) Thanks, Shiva Tel: +91-40-27782000 Ext: 4259 ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Thanks for reporting and providing workaround. I will look into fixing that. 2007/11/12, vdelbart <[EMAIL PROTECTED]>: > > > Hello, > > I add this 4 lines in my code before the session.dispose() and the problem > disapear : > > session.removeEventListener((WorkingMemoryEventListener)logger); > session.removeEventListener((AgendaEventListener)logger); > session.removeEventListener((RuleFlowEventListener)logger); > session.removeEventListener((RuleBaseEventListener)logger); > > regards, > > V. > > > > vdelbart wrote: > > > > Good morning, > > > > I found a workaround : don't use the WorkingMemoryFileLogger ! > > > > I create an issue : http://jira.jboss.com/jira/browse/JBRULES-1325 > > > > regards, > > > > V. > > > > > > vdelbart wrote: > >> > >> Hello, > >> > >> In my tests of the 4.0.3, I have some : java.lang.OutOfMemoryError. > >> > >> So, I try a simple test with 10.000 sequential execution of 1 rule with > >> no context and just a workingmemorylogger and I have the error : > >> java.lang.OutOfMemoryError: Java heap space > >> > >> My code is : > >> > >> public class ExecReglesMemotyTest > >> { > >> > >> private static final Reader DRL = new > >> InputStreamReader(ExecReglesMemotyTest.class > >> .getResourceAsStream("/rules/exemple.drl")); > >> > >> private static final String FICHIER_LOG = "session"; > >> > >> /** > >> * @param args > >> */ > >> public static void main(String[] args) > >> { > >> try > >> { > >> PackageBuilder builder = new PackageBuilder(); > >> builder.addPackageFromDrl(DRL); > >> RuleBase ruleBase = RuleBaseFactory.newRuleBase(); > >> ruleBase.addPackage(builder.getPackage()); > >> for (int i = 0; i < 1; i++) > >> { > >> StatefulSession session = > ruleBase.newStatefulSession(); > >> WorkingMemoryFileLogger logger = new > >> WorkingMemoryFileLogger(session); > >> logger.setFileName(FICHIER_LOG); > >> session.fireAllRules(); > >> logger.writeToDisk(); > >> session.dispose(); > >> } > >> > >> } > >> catch (Exception e) > >> { > >> // TODO Auto-generated catch block > >> e.printStackTrace(); > >> } > >> } > >> } > >> > >> with this rule (doesn't matter): > >> #created on: Fri Nov 09 15:48:45 CET 2007 > >> package initPackage > >> > >> #list any import classes here. > >> > >> rule "ERG9" > >> when > >> > >> then > >> > >> end > >> > >> I try this in 4.0.1, and it's working (no OutOfMemoryError) > >> > >> What's the problem ? > >> > >> thanks for any information, > >> > >> V. > >> > >> > >> > > > > > > -- > View this message in context: > http://www.nabble.com/java.lang.OutOfMemoryError%3A-Java-heap-space-tf4779030.html#a13702134 > Sent from the drools - user mailing list archive at Nabble.com. > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -- Edson Tirelli Software Engineer - JBoss Rules Core Developer Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Hello, I add this 4 lines in my code before the session.dispose() and the problem disapear : session.removeEventListener((WorkingMemoryEventListener)logger); session.removeEventListener((AgendaEventListener)logger); session.removeEventListener((RuleFlowEventListener)logger); session.removeEventListener((RuleBaseEventListener)logger); regards, V. vdelbart wrote: > > Good morning, > > I found a workaround : don't use the WorkingMemoryFileLogger ! > > I create an issue : http://jira.jboss.com/jira/browse/JBRULES-1325 > > regards, > > V. > > > vdelbart wrote: >> >> Hello, >> >> In my tests of the 4.0.3, I have some : java.lang.OutOfMemoryError. >> >> So, I try a simple test with 10.000 sequential execution of 1 rule with >> no context and just a workingmemorylogger and I have the error : >> java.lang.OutOfMemoryError: Java heap space >> >> My code is : >> >> public class ExecReglesMemotyTest >> { >> >> private static final Reader DRL = new >> InputStreamReader(ExecReglesMemotyTest.class >> .getResourceAsStream("/rules/exemple.drl")); >> >> private static final String FICHIER_LOG = "session"; >> >> /** >> * @param args >> */ >> public static void main(String[] args) >> { >> try >> { >> PackageBuilder builder = new PackageBuilder(); >> builder.addPackageFromDrl(DRL); >> RuleBase ruleBase = RuleBaseFactory.newRuleBase(); >> ruleBase.addPackage(builder.getPackage()); >> for (int i = 0; i < 1; i++) >> { >> StatefulSession session = >> ruleBase.newStatefulSession(); >> WorkingMemoryFileLogger logger = new >> WorkingMemoryFileLogger(session); >> logger.setFileName(FICHIER_LOG); >> session.fireAllRules(); >> logger.writeToDisk(); >> session.dispose(); >> } >> >> } >> catch (Exception e) >> { >> // TODO Auto-generated catch block >> e.printStackTrace(); >> } >> } >> } >> >> with this rule (doesn't matter): >> #created on: Fri Nov 09 15:48:45 CET 2007 >> package initPackage >> >> #list any import classes here. >> >> rule "ERG9" >> when >> >> then >> >> end >> >> I try this in 4.0.1, and it's working (no OutOfMemoryError) >> >> What's the problem ? >> >> thanks for any information, >> >> V. >> >> >> > > -- View this message in context: http://www.nabble.com/java.lang.OutOfMemoryError%3A-Java-heap-space-tf4779030.html#a13702134 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] java.lang.OutOfMemoryError: Java heap space
Good morning, I found a workaround : don't use the WorkingMemoryFileLogger ! I create an issue : http://jira.jboss.com/jira/browse/JBRULES-1325 regards, V. vdelbart wrote: > > Hello, > > In my tests of the 4.0.3, I have some : java.lang.OutOfMemoryError. > > So, I try a simple test with 10.000 sequential execution of 1 rule with no > context and just a workingmemorylogger and I have the error : > java.lang.OutOfMemoryError: Java heap space > > My code is : > > public class ExecReglesMemotyTest > { > > private static final Reader DRL = new > InputStreamReader(ExecReglesMemotyTest.class > .getResourceAsStream("/rules/exemple.drl")); > > private static final String FICHIER_LOG = "session"; > > /** >* @param args >*/ > public static void main(String[] args) > { > try > { > PackageBuilder builder = new PackageBuilder(); > builder.addPackageFromDrl(DRL); > RuleBase ruleBase = RuleBaseFactory.newRuleBase(); > ruleBase.addPackage(builder.getPackage()); > for (int i = 0; i < 1; i++) > { > StatefulSession session = > ruleBase.newStatefulSession(); > WorkingMemoryFileLogger logger = new > WorkingMemoryFileLogger(session); > logger.setFileName(FICHIER_LOG); > session.fireAllRules(); > logger.writeToDisk(); > session.dispose(); > } > > } > catch (Exception e) > { > // TODO Auto-generated catch block > e.printStackTrace(); > } > } > } > > with this rule (doesn't matter): > #created on: Fri Nov 09 15:48:45 CET 2007 > package initPackage > > #list any import classes here. > > rule "ERG9" > when > > then > > end > > I try this in 4.0.1, and it's working (no OutOfMemoryError) > > What's the problem ? > > thanks for any information, > > V. > > > -- View this message in context: http://www.nabble.com/java.lang.OutOfMemoryError%3A-Java-heap-space-tf4779030.html#a13701632 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] java.lang.OutOfMemoryError: Java heap space
Hello, In my tests of the 4.0.3, I have some : java.lang.OutOfMemoryError. So, I try a simple test with 10.000 sequential execution of 1 rule with no context and just a workingmemorylogger and I have the error : java.lang.OutOfMemoryError: Java heap space My code is : public class ExecReglesMemotyTest { private static final Reader DRL = new InputStreamReader(ExecReglesMemotyTest.class .getResourceAsStream("/rules/exemple.drl")); private static final String FICHIER_LOG = "session"; /** * @param args */ public static void main(String[] args) { try { PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl(DRL); RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage(builder.getPackage()); for (int i = 0; i < 1; i++) { StatefulSession session = ruleBase.newStatefulSession(); WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(session); logger.setFileName(FICHIER_LOG); session.fireAllRules(); logger.writeToDisk(); session.dispose(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } with this rule (doesn't matter): #created on: Fri Nov 09 15:48:45 CET 2007 package initPackage #list any import classes here. rule "ERG9" when then end I try this in 4.0.1, and it's working (no OutOfMemoryError) What's the problem ? thanks for any information, V. -- View this message in context: http://www.nabble.com/java.lang.OutOfMemoryError%3A-Java-heap-space-tf4779030.html#a13671498 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users