The projects in the reactor contain a cyclic reference
by Mulcahy, Lawrence
I downloaded the Drools source code (drools-5.0-src.zip) and
I'm trying to build Drools according to the instructions in
the README.txt.
Typing this command:
mvn -Declipse -Ddocumentation clean install
I get this error
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='org.drools:docbook-xsl-drools'}' and 'Vertex{label='org.drools:docbook-style-drools'}' introduces to cycle in the graph org.drools:docbook-style-drools --> org.drools:docbook-xsl-drools --> org.drools:docbook-style-drools
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Tue Sep 15 10:19:49 MDT 2009
[INFO] Final Memory: 10M/81M
[INFO] ------------------------------------------------------------------------
OS: Ubuntu 9.04
JDK: Sun 1.6.14 for x86_64
Maven version: 2.2.1
More generally, is there documentation anywhere about the
build architecture and infrastructure? It's my first time trying
Maven.
15 years, 3 months
Question about best practice using queries
by Dave McLoughlin
We are trying to figure out the best way to implement a rule.
Is there any difference in processing costs of the following 2
solutions:
1) A fact is inserted into a session and a rule's LHS is evaluated to
check if the rule should fire
2) A query is executed on a session with the same criteria as the LHS
for the rule from #1
Which one is more efficient or are they implemented the same way and
there is no difference?
Thanks,
Dave McLoughlin | OpenLogic
15 years, 3 months
Runtime addition of rules to a kbase
by Justin King
Hi,
We have a project where we are attempting to add new rules to an existing
knowledgebase (read from a .drl file). We add them by using strings using
the following code:
String rule = "rule \"GeneralClause-2\" " +
"when " +
"ObligationComplianceEvent(term == \"term2\", obligation ==
\"obligation1\", level == 2) " +
"then " +
"System.out.println(\"GeneralClause-2\");" +
"contract1.setState(\"Hello\");" +
"end";
Resource ruleResource = ResourceFactory.newReaderResource((Reader) new
StringReader(rule));
kbuilder.add(ruleResource, ResourceType.DRL);
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
We do not even halt the currently running session to add the new rule
(although halting and re-firing appears to make little difference). This
appears to have strange effects. Some rules (specifically those that use
'accumulate' most of the time) will stop working after inserting the new
rule at runtime, even though they are completely unrelated. The timing in
which you add the new rule also seems to have an effect (e.g. before
inserting some events, after. etc). We cant seem to come to any logical
conclusion about the strange behavior our rules seem to give us.
My question is this: Is this a valid way to use Drools? Or are we somehow
breaking something (perhaps the rete tree or something) behind the scenes by
doing this? If so, is there a correct way?
Any input at all would be greatly appreciated as this is very critical to
our project.
Cheers,
Justin
15 years, 3 months
Memory error when inserting facts in stateful session
by Costigliola Joel (EXT)
Hello,
To be short I'm facing some performance/memory problems with Drools which leads to the error : java.lang.OutOfMemoryError: Java heap space.
That was for the short story, let me now give you more details.
First, I'm a Drools newbie so I certainly have made some "bad" choice.
I'm using Drools 5.01 to classify automatically the deals made by the traders of my company (this is the functionnal problem I want to solve with Drools).
I have written 4 rules, a rule-flow and start the deals classifying process with a stateful session.
I have successfully (unit) tested different scenarios, so everything is ok on a functionnal point of view.
Problems arise when I started to insert more deals in the session, which leads to an OutOfMemoryError before the call to ksession.fireAllRules. logs are below (after the drools rule).
Number of facts I have tried to insert in my statefull session :
- 222 booking rule (POJO expressing classification criteria)
- 750 product index
- 750 deals
What drools does here is to find the correct booking rule to apply for each deal (we need some product index for that).
Can you tell me if those numbers seems unrealistic ?
What can I do to avoid the memory errors ?
To be complete, I show you the drools rules :
rule "Find and apply level 1 booking rule"
lock-on-active true
ruleflow-group "Level 1 booking rule group"
when
dealModel : MarketDealModel( $dealPortfolio : portfolio, $dealTrader : trader, $dealProduct : product)
// retrieve the ProductRelatedIndexes corresponding to the deal product (only one by product)
productRelatedIndexes : ProductRelatedIndexes( product.internalCode == $dealProduct.internalCode, $dealProductIndexes : relatedIndexes)
// try to find one and only one level 1 matching rule (level 1 <=> all matching criteria are defined).
bookingRuleModels : ArrayList( size == 1 ) from collect (
BTExecutionBookingRuleModel(
priority == BTExecutionBookingRuleModel.LEVEL_1
&& eval(matchTraderCriterion(traderCriterion, $dealTrader))
&& eval(matchPortfolioCriterion(portfolioCriterion, $dealPortfolio))
&& eval(matchIndexCriterion(listedIndexCriterion, $dealProductIndexes))
&& eval(matchProductTypeCriterion(productTypeStringCriterion, $dealProduct))
)
)
then
Logger log = LoggerFactory.getLogger("BOOKING RULE ENGINE LOGGER");
// get the unique collected bookingRuleModel.
BTExecutionBookingRuleModel effectiveBookingRuleModel = (BTExecutionBookingRuleModel) bookingRuleModels.get(0);
// log.info("Found matching level 1 booking rule --> " + effectiveBookingRuleModel);
effectiveBookingRuleModel.applyRuleOnDeal(dealModel);
retract( dealModel ); // only needed in use of stateful session to avoid processing this deal again.
end
I don't put the 3 others, they are basically the same except the priority == BTExecutionBookingRuleModel.LEVEL_1 which is done against LEVEL_2, LEVEL_3 and LEVEL_4 rule.
Each rule is in his own ruleflow-group, it is very basic, if first drools rule is not active then we try the second (with compares priority to BTExecutionBookingRuleModel.LEVEL_2).
I also put some logs showing that inserting deals fact takes longer and longer :
- the 222 booking rule are inserted in 16ms
- the 750 booking rule are inserted in 46ms
- the 750 facts are inserted at a pace of 5 by second, then it starts to deteriorate to several seconds for one insert to finish with the OutOfMemoryError.
2009-09-11 09:46:50 134 INFO [booking.impl.DealBookingProcessorImpl] 658 MarketDealModel inserted in Drools session
2009-09-11 09:46:50 244 INFO [booking.impl.DealBookingProcessorImpl] 659 MarketDealModel inserted in Drools session
2009-09-11 09:46:50 369 INFO [booking.impl.DealBookingProcessorImpl] 660 MarketDealModel inserted in Drools session
2009-09-11 09:46:51 197 INFO [booking.impl.DealBookingProcessorImpl] 661 MarketDealModel inserted in Drools session
2009-09-11 09:46:51 306 INFO [booking.impl.DealBookingProcessorImpl] 662 MarketDealModel inserted in Drools session
2009-09-11 09:46:51 540 INFO [booking.impl.DealBookingProcessorImpl] 663 MarketDealModel inserted in Drools session
2009-09-11 09:46:51 650 INFO [booking.impl.DealBookingProcessorImpl] 664 MarketDealModel inserted in Drools session
2009-09-11 09:46:51 775 INFO [booking.impl.DealBookingProcessorImpl] 665 MarketDealModel inserted in Drools session
2009-09-11 09:46:51 884 INFO [booking.impl.DealBookingProcessorImpl] 666 MarketDealModel inserted in Drools session
2009-09-11 09:46:52 009 INFO [booking.impl.DealBookingProcessorImpl] 667 MarketDealModel inserted in Drools session
2009-09-11 09:46:52 134 INFO [booking.impl.DealBookingProcessorImpl] 668 MarketDealModel inserted in Drools session
2009-09-11 09:46:52 243 INFO [booking.impl.DealBookingProcessorImpl] 669 MarketDealModel inserted in Drools session
2009-09-11 09:46:52 368 INFO [booking.impl.DealBookingProcessorImpl] 670 MarketDealModel inserted in Drools session
2009-09-11 09:47:32 784 INFO [booking.impl.DealBookingProcessorImpl] 671 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 003 INFO [booking.impl.DealBookingProcessorImpl] 672 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 128 INFO [booking.impl.DealBookingProcessorImpl] 673 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 253 INFO [booking.impl.DealBookingProcessorImpl] 674 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 362 INFO [booking.impl.DealBookingProcessorImpl] 675 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 487 INFO [booking.impl.DealBookingProcessorImpl] 676 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 596 INFO [booking.impl.DealBookingProcessorImpl] 677 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 721 INFO [booking.impl.DealBookingProcessorImpl] 678 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 831 INFO [booking.impl.DealBookingProcessorImpl] 679 MarketDealModel inserted in Drools session
2009-09-11 09:47:33 956 INFO [booking.impl.DealBookingProcessorImpl] 680 MarketDealModel inserted in Drools session
2009-09-11 09:47:34 128 INFO [booking.impl.DealBookingProcessorImpl] 681 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 218 INFO [booking.impl.DealBookingProcessorImpl] 682 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 374 INFO [booking.impl.DealBookingProcessorImpl] 683 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 483 INFO [booking.impl.DealBookingProcessorImpl] 684 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 608 INFO [booking.impl.DealBookingProcessorImpl] 685 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 733 INFO [booking.impl.DealBookingProcessorImpl] 686 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 858 INFO [booking.impl.DealBookingProcessorImpl] 687 MarketDealModel inserted in Drools session
2009-09-11 09:47:56 968 INFO [booking.impl.DealBookingProcessorImpl] 688 MarketDealModel inserted in Drools session
2009-09-11 09:47:57 093 INFO [booking.impl.DealBookingProcessorImpl] 689 MarketDealModel inserted in Drools session
2009-09-11 09:47:57 218 INFO [booking.impl.DealBookingProcessorImpl] 690 MarketDealModel inserted in Drools session
2009-09-11 09:47:57 421 INFO [booking.impl.DealBookingProcessorImpl] 691 MarketDealModel inserted in Drools session
2009-09-11 09:48:05 404 INFO [booking.impl.DealBookingProcessorImpl] 692 MarketDealModel inserted in Drools session
2009-09-11 09:48:05 529 INFO [booking.impl.DealBookingProcessorImpl] 693 MarketDealModel inserted in Drools session
2009-09-11 09:48:05 654 INFO [booking.impl.DealBookingProcessorImpl] 694 MarketDealModel inserted in Drools session
2009-09-11 09:48:05 763 INFO [booking.impl.DealBookingProcessorImpl] 695 MarketDealModel inserted in Drools session
2009-09-11 09:48:05 888 INFO [booking.impl.DealBookingProcessorImpl] 696 MarketDealModel inserted in Drools session
2009-09-11 09:48:05 998 INFO [booking.impl.DealBookingProcessorImpl] 697 MarketDealModel inserted in Drools session
2009-09-11 09:48:06 123 INFO [booking.impl.DealBookingProcessorImpl] 698 MarketDealModel inserted in Drools session
2009-09-11 09:48:06 357 INFO [booking.impl.DealBookingProcessorImpl] 699 MarketDealModel inserted in Drools session
2009-09-11 09:48:14 184 INFO [booking.impl.DealBookingProcessorImpl] 700 MarketDealModel inserted in Drools session
2009-09-11 09:48:14 293 INFO [booking.impl.DealBookingProcessorImpl] 701 MarketDealModel inserted in Drools session
2009-09-11 09:48:14 418 INFO [booking.impl.DealBookingProcessorImpl] 702 MarketDealModel inserted in Drools session
2009-09-11 09:48:14 543 INFO [booking.impl.DealBookingProcessorImpl] 703 MarketDealModel inserted in Drools session
2009-09-11 09:48:14 668 INFO [booking.impl.DealBookingProcessorImpl] 704 MarketDealModel inserted in Drools session
2009-09-11 09:48:14 856 INFO [booking.impl.DealBookingProcessorImpl] 705 MarketDealModel inserted in Drools session
2009-09-11 09:48:22 761 INFO [booking.impl.DealBookingProcessorImpl] 706 MarketDealModel inserted in Drools session
2009-09-11 09:48:22 886 INFO [booking.impl.DealBookingProcessorImpl] 707 MarketDealModel inserted in Drools session
2009-09-11 09:48:22 995 INFO [booking.impl.DealBookingProcessorImpl] 708 MarketDealModel inserted in Drools session
2009-09-11 09:48:23 120 INFO [booking.impl.DealBookingProcessorImpl] 709 MarketDealModel inserted in Drools session
2009-09-11 09:48:23 323 INFO [booking.impl.DealBookingProcessorImpl] 710 MarketDealModel inserted in Drools session
2009-09-11 09:48:32 166 INFO [booking.impl.DealBookingProcessorImpl] 711 MarketDealModel inserted in Drools session
2009-09-11 09:48:32 290 INFO [booking.impl.DealBookingProcessorImpl] 712 MarketDealModel inserted in Drools session
2009-09-11 09:48:32 400 INFO [booking.impl.DealBookingProcessorImpl] 713 MarketDealModel inserted in Drools session
2009-09-11 09:48:32 634 INFO [booking.impl.DealBookingProcessorImpl] 714 MarketDealModel inserted in Drools session
2009-09-11 09:48:40 570 INFO [booking.impl.DealBookingProcessorImpl] 715 MarketDealModel inserted in Drools session
2009-09-11 09:48:40 695 INFO [booking.impl.DealBookingProcessorImpl] 716 MarketDealModel inserted in Drools session
2009-09-11 09:48:40 899 INFO [booking.impl.DealBookingProcessorImpl] 717 MarketDealModel inserted in Drools session
2009-09-11 09:48:48 850 INFO [booking.impl.DealBookingProcessorImpl] 718 MarketDealModel inserted in Drools session
2009-09-11 09:48:48 975 INFO [booking.impl.DealBookingProcessorImpl] 719 MarketDealModel inserted in Drools session
2009-09-11 09:48:49 272 INFO [booking.impl.DealBookingProcessorImpl] 720 MarketDealModel inserted in Drools session
2009-09-11 09:48:57 209 INFO [booking.impl.DealBookingProcessorImpl] 721 MarketDealModel inserted in Drools session
2009-09-11 09:48:57 505 INFO [booking.impl.DealBookingProcessorImpl] 722 MarketDealModel inserted in Drools session
2009-09-11 09:49:05 598 INFO [booking.impl.DealBookingProcessorImpl] 723 MarketDealModel inserted in Drools session
2009-09-11 09:49:13 722 INFO [booking.impl.DealBookingProcessorImpl] 724 MarketDealModel inserted in Drools session
2009-09-11 09:49:21 752 INFO [booking.impl.DealBookingProcessorImpl] 725 MarketDealModel inserted in Drools session
2009-09-11 09:49:29 813 INFO [booking.impl.DealBookingProcessorImpl] 726 MarketDealModel inserted in Drools session
2009-09-11 09:49:37 921 INFO [booking.impl.DealBookingProcessorImpl] 727 MarketDealModel inserted in Drools session
2009-09-11 09:49:53 809 INFO [booking.impl.DealBookingProcessorImpl] 728 MarketDealModel inserted in Drools session
2009-09-11 09:50:26 507 INFO [booking.impl.DealBookingProcessorImpl] 729 MarketDealModel inserted in Drools session
Exception in thread "Timer-0" java.lang.OutOfMemoryError: Java heap space
at java.lang.Object.clone(Native Method)
at java.util.LinkedList.clone(LinkedList.java:830)
at com.mchange.v2.resourcepool.BasicResourcePool.cloneOfUnused(BasicResourcePool.java:1661)
at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1450)
at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Exception in thread "Ice.ThreadPool.Server-1" java.lang.OutOfMemoryError: Java heap space
at org.mvel2.integration.impl.ClassImportResolverFactory.<init>(ClassImportResolverFactory.java:49)
at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)
at org.mvel2.MVEL.executeExpression(MVEL.java:978)
at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:75)
at org.drools.rule.PredicateConstraint.isAllowedCachedLeft(PredicateConstraint.java:295)
at org.drools.common.SingleBetaConstraints.isAllowedCachedLeft(SingleBetaConstraints.java:138)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:114)
at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)
at org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:57)
at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)
at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:216)
at north.stardust2.services.trading.booking.impl.DealBookingProcessorImpl.insertDealFacts(DealBookingProcessorImpl.java:200)
So to summarize my questions :
- how can I fix the facts insertion ?
- is there some newbie mistakes in my approach ?
Thanks in advance for your help,
Regards,
Joël Costigliola
--------------------------------------------------------
Ce courriel et toutes les pièces jointes sont confidentiels et peuvent être couverts par un privilège ou une protection légale. Il est établi à l'attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse préalable. Toutes opinions exprimées dans ce courriel ne sauraient nécessairement refléter celle de Natixis, de ses filiales. Elles sont aussi susceptibles de modification sans notification préalable. Si vous recevez ce courriel par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur. L'Internet ne permettant pas d'assurer l'intégrité de ce courriel, Natixis décline toute responsabilité s'il a été altéré, déformé ou falsifié et chaque destinataire qui utilise ce mode de communication est supposé en accepter les risques.
This email and any attachment are confidential and may be legally privileged or otherwise protected from disclosure. It is intended only for the stated addressee(s) and access to it by any other person(s) is unauthorised. Any use, dissemination or disclosure not in accordance with its purpose, either in whole or in part, is prohibited without our prior formal approval. Any opinion expressed in this email may not necessarily reflect the opinion of Natixis, its affiliates. It may also be subject to change without prior notice. If you are not an addressee, you must not disclose, copy, circulate or in any other way use or rely on the information contained in this email. If you have received it in error, please inform us immediately and delete all copies. The Internet can not guarantee the integrity of this email therefore Natixis shall not be liable for the email if altered, changed or falsified and anyone who communicates with us by e-mail is taken to accept these risks.
--------------------------------------------------------
15 years, 3 months
Garbage collection in working memory
by Allan Terry
I read with interest how Drools 5 Fusion is able to compute when facts
can not longer activate anything, and garbage collects them. Very
clever and elegant! I am contemplating long-lived stateful working
memories in a Drools 4 application.
I assume that if I modify a fact, a new copy replaces the old copy,
and the old copy should be subject to Java garbage collection. No net
memory leak.
If I add a new fact, use it, am now done with it, neither Drools nor
Java knows it is collectible. If I have a rule like "When A and B...", I
may know the B event is completely dead, but Drools can't know if a new
A will arrive and use the B event in the activation.
What is the state of the practice for managing working memory for Drools
Expert applications?
* Do people write rules to manually delete facts when they are no longer
needed?
* Is Drools smarter than I know, and is able to do the garbage
collection of facts for itself?
* I gather one common option is to limit the lifetime of the session, to
do the nuclear garbage collection by killing the session and starting a
new one. That could be a lot of hassle here, there are no good stopping
points. I'd have to figure out what events need to be transferred over
into the new session.
Various people obviously run very large Drools apps but I have not seen
much discussion of this issue. I am hoping there is something obvious I
am missing, so I don't have to write an application-level fact collector
myself.
thanks, Allan
15 years, 3 months
Re: [rules-users] java.lang.NoSuchMethodError on every Action node
by Ana F Santos
Sorry!!! I forgot to mention I'm using Eclipse 3.5 (Galileo) in Windows
XP. I even wonder if it would be better to use Ganymede instead, as it's
known JBoss Tools in general work better with this Eclipse version, for
JBoss Tools' stable version.
ANA FLÁVIA FONSECA DOS SANTOS
Analista de Desenvolvimento de Software
PST Eletrônica S/A
Phone: +55 19 3787 6379
aflavia(a)pst.com.br
www.pst.com.br
www.positron.com.br
----- Forwarded by Ana F Santos/Pst on 14/09/2009 09:43 -----
From:
Ana F Santos/Pst
To:
rules-users(a)lists.jboss.org
Date:
14/09/2009 09:40
Subject:
java.lang.NoSuchMethodError on every Action node
Hi everyone.
I've been trying to use Drools for the past month, and sometimes I have
problems I can't guess anymore how to solve.
This time, every action I try to insert in a ruleflow, I receive a
java.lang.NoSuchMethodError. I'm even trying a really simple ruleflow with
just one simple action - like System.out.println("Test"); - and all I get
is a java.lang.NoSuchMethodError.
[
The stack trace:
java.lang.NoSuchMethodError:
br.com.pst.packages.ruleflows.Process_br_com_pst_packages_ruleflows_0.action0(Lorg/drools/spi/KnowledgeHelper;Lorg/drools/spi/ProcessContext;)V
at
br.com.pst.packages.ruleflows.Process_br_com_pst_packages_ruleflows_0Action0Invoker.execute(
Process_br_com_pst_packages_ruleflows_0Action0Invoker.java:20)
at
org.drools.workflow.instance.node.ActionNodeInstance.internalTrigger(
ActionNodeInstance.java:54)
at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(
NodeInstanceImpl.java:111)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(
NodeInstanceImpl.java:142)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(
NodeInstanceImpl.java:128)
at
org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(
StartNodeInstance.java:49)
at
org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(
StartNodeInstance.java:41)
at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(
NodeInstanceImpl.java:111)
at
org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(
RuleFlowProcessInstance.java:16)
at org.drools.process.instance.impl.ProcessInstanceImpl.start(
ProcessInstanceImpl.java:185)
at
org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(
WorkflowProcessInstanceImpl.java:230)
at org.drools.common.AbstractWorkingMemory.startProcess(
AbstractWorkingMemory.java:1639)
at org.drools.common.AbstractWorkingMemory.startProcess(
AbstractWorkingMemory.java:1604)
at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(
StatefulKnowledgeSessionImpl.java:267)
at br.com.pst.packages.ServicePackages.main(
ServicePackages.java:99)
]
Actually, the beginning problem was with my project, with a process and
subprocess. The subprocess works fine, but the main process throws a
java.lang.NoSuchMethodError always on any node I put after a specific
RuleFlowGroup node. Everyting used to work before, but when I begin to
enlarge it, nothing seems to work anymore. And, as I told, I can't always
guess the exact problem as the thrown exceptions are very generic.
Hope anyone could help me!
Thanks a lot
ANA FLÁVIA FONSECA DOS SANTOS
Analista de Desenvolvimento de Software
PST Eletrônica S/A
Phone: +55 19 3787 6379
aflavia(a)pst.com.br
www.pst.com.br
www.positron.com.br
15 years, 3 months
Re: [rules-users] rules-users Digest, Vol 34, Issue 38
by Nilima R
Hi All
I am new to drools and i am trying to install Guvnor in Jboss5.0.1 GA .I
got the below error
DEPLOYMENTS IN ERROR:
Deployment "persistence.unit:unitName=#ACL" is in error due to the
following reason(s): java.lang.RuntimeException: Specification violation
[EJB3 JPA 6.2.1.2] - You have not defined a non-jta-data-source for a
RESOURCE_LOCAL enabled persistence context named: ACL
I removed the jars mentioned as per the link below but still the error
remains the same.
https://jira.jboss.org/jira/browse/JBRULES-2034
Can someone plz point me to the permanent solution to this problem.
Same error is there if I try to deploy Guvnow war file in Weblogic.Is
Gunor deployable on Weblogic.
Thanks,
Nilima Rajendra Raichandani
Tata Consultancy Services
Mailto: nilima.r(a)tcs.com
Website: http://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Outsourcing
____________________________________________
From:
rules-users-request(a)lists.jboss.org
To:
rules-users(a)lists.jboss.org
Date:
09/11/2009 05:38 PM
Subject:
rules-users Digest, Vol 34, Issue 38
Sent by:
rules-users-bounces(a)lists.jboss.org
Send rules-users mailing list submissions to
rules-users(a)lists.jboss.org
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.jboss.org/mailman/listinfo/rules-users
or, via email, send a message with subject or body 'help' to
rules-users-request(a)lists.jboss.org
You can reach the person managing the list at
rules-users-owner(a)lists.jboss.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of rules-users digest..."
Today's Topics:
1. Re: Thread-deadlock when Negation Was Used and
NullPointerException in Drools 5.0.1 (Andreas Kohn)
2. Re: Unable to map process variables into WorkItem.
(Kris Verlaenen)
3. Re: Memory error when inserting facts instatefulsession
(Costigliola Joel (EXT))
----------------------------------------------------------------------
Message: 1
Date: Fri, 11 Sep 2009 13:35:12 +0200
From: Andreas Kohn <andreas.kohn(a)fredhopper.com>
Subject: Re: [rules-users] Thread-deadlock when Negation Was Used and
NullPointerException in Drools 5.0.1
To: Rules Users List <rules-users(a)lists.jboss.org>
Cc: Rules Users List <rules-users(a)lists.jboss.org>
Message-ID: <15B97BB9-424F-4CD5-B1D8-7C8568B38FB9(a)fredhopper.com>
Content-Type: text/plain; charset=us-ascii; format=flowed;
delsp=yes
On Sep 11, 2009, at 9:21, Greg Barton <greg_barton(a)yahoo.com> wrote:
> Well, looking at CompositeClassLoader, it's already not completely
> threadsafe even with the loadClass method synchronized. (This is
> because loadClass calls fastFindClass, which iterates over the
> classLoader ArrayList, which could be concurrently modified.) So
> the classLoader data strucure should be concurrent, and it's my
> guess that removing the synchronization from
> CompositeClassLoader.loadClass will be fine as long as the sub
> ClassLoaders that actually do loading are threadsafe.
>
This is exactly the approach I used in JBRULES-2225, because not just
was the locking broken, it also produced measurable contention in our
application.
The fixed version behaved considerably better.
--
Andreas
> --- On Thu, 9/10/09, Dave McLoughlin <Dave.McLoughlin(a)openlogic.com>
> wrote:
>
>> From: Dave McLoughlin <Dave.McLoughlin(a)openlogic.com>
>> Subject: [rules-users] Thread-deadlock when Negation Was Used and
>> NullPointerException in Drools 5.0.1
>> To: rules-users(a)lists.jboss.org
>> Date: Thursday, September 10, 2009, 6:56 PM
>>
>>
>>
>>
>>
>> Thread-deadlock when Negation Was Used and
>> NullPointerException in Drools 5.0.1
>>
>>
>>
>>
>> We have a couple of issues we've
>> submitted to the issue tracker.
>>
>>
>>
>> JBRULES-2276 <https://jira.jboss.org/jira/browse/JBRULES-2276>
>>
>> JBRULES-2267 <https://jira.jboss.org/jira/browse/JBRULES-2267>
>>
>>
>>
>> While we are waiting for the core team to take a look we
>> wanted to see if anyone else has run into these issues and
>> has any advice for us.
>>
>>
>>
>> We have provided both our diagnosis of the issues and
>> fixes. Our concern is whether we've taken the
>> right approach to the fixes and what the long term
>> ramifications are of the solutions.
>>
>>
>>
>> Any and all advice is welcome,
>>
>>
>>
>>
>>
>> Thanks,
>>
>>
>>
>>
>>
>>
>>
>> Dave
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> -----Inline Attachment Follows-----
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
------------------------------
Message: 2
Date: Fri, 11 Sep 2009 13:24:49 +0200
From: Kris Verlaenen <kris.verlaenen(a)cs.kuleuven.be>
Subject: Re: [rules-users] Unable to map process variables into
WorkItem.
To: Rules Users List <rules-users(a)lists.jboss.org>, Stuart
Grimshaw
<sgrimshaw(a)plus.net>
Message-ID: <1252668289.4aaa33819a23b(a)webmail1.kuleuven.be>
Content-Type: text/plain; charset=ISO-8859-1
Have you also defined the "fact" process variable? You can do this by
clicking on the background of you process in the editor and updating the
variables parameter, or in the header in xml:
<header>
<variables>
<variable name="fact" >
<type
name="org.drools.process.core.datatype.impl.type.ObjectDataType"
className="org.drools.ProvFact" />
</variable>
</variables>
</header>
Otherwise the process won't know where to find the "fact" variable
(because you could have multiple, nested variable scopes if you start
using composite nodes).
Kris
Quoting Stuart Grimshaw <sgrimshaw(a)plus.net>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I'm trying to access the fact object from within my WorkItemHandler,
> but
> I'm struggling.
>
> See http://pastie.org/613312 for the various bits of code, but my
> problem is that when I set a breakpoint in the WorkItemHandler and
> call
> workItem.getParameters(), the result is empty.
>
> I think I'm creating the Map correctly and inserting it into the
> process
> scope, but maybe someone can spot what I'm doing wrong?
>
>
> - --
> +
> | Stuart Grimshaw Broadband Solutions
> for
> | Lead Developer Home & Business
> @
> | Plusnet Plc
> www.plus.net
> | Registered Office: Internet House, 2 Tenter Street, Sheffield, S1
> 4BY
> | Registered in England no: 3279013
> + --------------- Plusnet - ISPA Best Consumer ISP 2008
> ---------------
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkqqJ1YACgkQKVVpabZzO7mqlACfQp9MinLoBCH6b5o4cShcZI/T
> /tQAniNgBnWVMw/2Ka7w1jJvwYZtMLVi
> =5RJV
> -----END PGP SIGNATURE-----
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
------------------------------
Message: 3
Date: Fri, 11 Sep 2009 14:04:29 +0200
From: "Costigliola Joel \(EXT\)" <joel.costigliola-ext(a)natixis.com>
Subject: Re: [rules-users] Memory error when inserting facts
instatefulsession
To: "'Rules Users List'" <rules-users(a)lists.jboss.org>
Message-ID:
<201216F96E6D724F9296BFACF6DB54641E34E61254(a)MSEUMAIL03.cib.net>
Content-Type: text/plain; charset="iso-8859-1"
Mike and Wolfgang, things are clearer now, I will definitely try to your
suggestions.
Thanks for the help,
Joel
________________________________
De : rules-users-bounces(a)lists.jboss.org [
mailto:rules-users-bounces@lists.jboss.org] De la part de Wolfgang Laun
Envoy? : vendredi 11 septembre 2009 12:42
? : Rules Users List
Objet : Re: [rules-users] Memory error when inserting facts in
statefulsession
Hello Joel,
nothing on the LHS (between when and then) matters when a rule fires; so
eval() and all other CEs are evaluated when facts are inserted.
So, trying to get rid of the eval's would be worthwhile.
The second thing (and I agree with Michael) is that you shoudl get rid of
collect, which causes the delay during insertion. I'd also use a Collector
fact with attributes for deal, a booking rule and a count.
rule addCollector
when
$deal: MarketDealModel()
not (Collector( deal == $deal )
then
insert( new Collector( ?deal ) );
end
When there is a matching Collector and a BTExecutionBookingRuleModel
matches the deal:
then
modify the collector by incrementing the count and storing the matched
booking rule
At a lower salience, add 2 rules matching a collector with count == 1 and
count != 1 with obvious consequences. (The second one could switch to the
next level activation group.)
HTH
Wolfgang
2009/9/11 Costigliola Joel (EXT) <joel.costigliola-ext(a)natixis.com<
mailto:joel.costigliola-ext@natixis.com>>
Hi Mike,
Quick reply, thanks !
I think I can't use ? exists ? because I want one and only one booking
rule of a specific level (LEVEL_1, LEVEL_2, ...) matching a deal, that's
why the bookingRuleModels list collected should only contain 1 booking
rule. This explain why in the RHS I'm getting the first booking rule
(bookingRuleModels.get(0)).
If there is more than one booking rule (or none), I switch to the second
Drools rule which tries to find a unique LEVEL_2 booking rule, then same
thing if none or too many, switch to LEVEL_3 booking rule ...
Hope you get the idea.
The matchXXX function compare the XXX criterion of a booking rule (ex
Trader) with the corresponding Deal attribute (ex Trader).
Here's the implementation for comparing trader criterion, note that if a
booking rule does not specify a criterion it is considered as matched.
private static boolean matchCriterion(NorthIdEntity<?>
ruleCriterionModel, NorthIdEntity<?> model) {
if (ruleCriterionModel == null) {
// no criterion => matching ok
return true;
}
return ruleCriterionModel.equals(model);
}
I have read that eval is not performant but I thought it was only when
executing rules not at facts insertion phase.
Is this coorect or is eval impacting negatively facts insertion ?
Another idea comes to my mind : can I use a stateless session since once a
deal is classified/booked we don't want to process it again ?
To finish I forgot to give informations on my environment, it may be
useful :
- Drools version 5.01
- java 6
- launching my server with following memory options : -Xms256m -Xmx1024m
Thanks again for your thought,
Joel
________________________________
De : rules-users-bounces(a)lists.jboss.org<
mailto:rules-users-bounces@lists.jboss.org> [
mailto:rules-users-bounces@lists.jboss.org<
mailto:rules-users-bounces@lists.jboss.org>] De la part de Anstis, Michael
(M.)
Envoy? : vendredi 11 septembre 2009 10:35
? : Rules Users List
Objet : Re: [rules-users] Memory error when inserting facts in stateful
session
Hi,
As an aside, you shouldn't need to use a rule flow as the rules themselves
determine which RHS is activated. Could you consider using "exists"
instead of the "ArrayList( size == 1) from collect..." - it looks like
you're not too bothered which Booking Rule matches as (I believe) you have
no way to determine which is at index(0). Also, what do your "matchXXX"
functions do? Could you investigate removing the "evals"?
I don't have any knowledge of your domain - we're all newbies at some time
or other.
With kind regards,
Mike
________________________________
From: rules-users-bounces(a)lists.jboss.org<
mailto:rules-users-bounces@lists.jboss.org> [
mailto:rules-users-bounces@lists.jboss.org<
mailto:rules-users-bounces@lists.jboss.org>] On Behalf Of Costigliola Joel
(EXT)
Sent: 11 September 2009 09:21
To: rules-users(a)lists.jboss.org<mailto:rules-users@lists.jboss.org>
Subject: [rules-users] Memory error when inserting facts in stateful
session
Hello,
To be short I'm facing some performance/memory problems with Drools which
leads to the error : java.lang.OutOfMemoryError: Java heap space.
That was for the short story, let me now give you more details.
First, I'm a Drools newbie so I certainly have made some "bad" choice.
I'm using Drools 5.01 to classify automatically the deals made by the
traders of my company (this is the functionnal problem I want to solve
with Drools).
I have written 4 rules, a rule-flow and start the deals classifying
process with a stateful session.
I have successfully (unit) tested different scenarios, so everything is ok
on a functionnal point of view.
Problems arise when I started to insert more deals in the session, which
leads to an OutOfMemoryError before the call to ksession.fireAllRules.
logs are below (after the drools rule).
Number of facts I have tried to insert in my statefull session :
- 222 booking rule (POJO expressing classification criteria)
- 750 product index
- 750 deals
What drools does here is to find the correct booking rule to apply for
each deal (we need some product index for that).
Can you tell me if those numbers seems unrealistic ?
What can I do to avoid the memory errors ?
To be complete, I show you the drools rules :
rule "Find and apply level 1 booking rule"
lock-on-active true
ruleflow-group "Level 1 booking rule group"
when
dealModel : MarketDealModel( $dealPortfolio : portfolio,
$dealTrader : trader, $dealProduct : product)
// retrieve the ProductRelatedIndexes corresponding to the
deal product (only one by product)
productRelatedIndexes : ProductRelatedIndexes(
product.internalCode == $dealProduct.internalCode, $dealProductIndexes :
relatedIndexes)
// try to find one and only one level 1 matching rule (level 1
<=> all matching criteria are defined).
bookingRuleModels : ArrayList( size == 1 ) from collect (
BTExecutionBookingRuleModel(
priority == BTExecutionBookingRuleModel.LEVEL_1
&& eval(matchTraderCriterion(traderCriterion,
$dealTrader))
&&
eval(matchPortfolioCriterion(portfolioCriterion, $dealPortfolio))
&& eval(matchIndexCriterion(listedIndexCriterion,
$dealProductIndexes))
&&
eval(matchProductTypeCriterion(productTypeStringCriterion, $dealProduct))
)
)
then
Logger log = LoggerFactory.getLogger("BOOKING RULE ENGINE
LOGGER");
// get the unique collected bookingRuleModel.
BTExecutionBookingRuleModel effectiveBookingRuleModel =
(BTExecutionBookingRuleModel) bookingRuleModels.get(0);
// log.info<http://log.info>("Found matching level 1 booking
rule --> " + effectiveBookingRuleModel);
effectiveBookingRuleModel.applyRuleOnDeal(dealModel);
retract( dealModel ); // only needed in use of stateful
session to avoid processing this deal again.
end
I don't put the 3 others, they are basically the same except the priority
== BTExecutionBookingRuleModel.LEVEL_1 which is done against LEVEL_2,
LEVEL_3 and LEVEL_4 rule.
Each rule is in his own ruleflow-group, it is very basic, if first drools
rule is not active then we try the second (with compares priority to
BTExecutionBookingRuleModel.LEVEL_2).
I also put some logs showing that inserting deals fact takes longer and
longer :
- the 222 booking rule are inserted in 16ms
- the 750 booking rule are inserted in 46ms
- the 750 facts are inserted at a pace of 5 by second, then it starts to
deteriorate to several seconds for one insert to finish with the
OutOfMemoryError.
2009-09-11 09:46:50 134 INFO [booking.impl.DealBookingProcessorImpl] 658
MarketDealModel inserted in Drools session
2009-09-11 09:46:50 244 INFO [booking.impl.DealBookingProcessorImpl] 659
MarketDealModel inserted in Drools session
2009-09-11 09:46:50 369 INFO [booking.impl.DealBookingProcessorImpl] 660
MarketDealModel inserted in Drools session
2009-09-11 09:46:51 197 INFO [booking.impl.DealBookingProcessorImpl] 661
MarketDealModel inserted in Drools session
2009-09-11 09:46:51 306 INFO [booking.impl.DealBookingProcessorImpl] 662
MarketDealModel inserted in Drools session
2009-09-11 09:46:51 540 INFO [booking.impl.DealBookingProcessorImpl] 663
MarketDealModel inserted in Drools session
2009-09-11 09:46:51 650 INFO [booking.impl.DealBookingProcessorImpl] 664
MarketDealModel inserted in Drools session
2009-09-11 09:46:51 775 INFO [booking.impl.DealBookingProcessorImpl] 665
MarketDealModel inserted in Drools session
2009-09-11 09:46:51 884 INFO [booking.impl.DealBookingProcessorImpl] 666
MarketDealModel inserted in Drools session
2009-09-11 09:46:52 009 INFO [booking.impl.DealBookingProcessorImpl] 667
MarketDealModel inserted in Drools session
2009-09-11 09:46:52 134 INFO [booking.impl.DealBookingProcessorImpl] 668
MarketDealModel inserted in Drools session
2009-09-11 09:46:52 243 INFO [booking.impl.DealBookingProcessorImpl] 669
MarketDealModel inserted in Drools session
2009-09-11 09:46:52 368 INFO [booking.impl.DealBookingProcessorImpl] 670
MarketDealModel inserted in Drools session
2009-09-11 09:47:32 784 INFO [booking.impl.DealBookingProcessorImpl] 671
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 003 INFO [booking.impl.DealBookingProcessorImpl] 672
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 128 INFO [booking.impl.DealBookingProcessorImpl] 673
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 253 INFO [booking.impl.DealBookingProcessorImpl] 674
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 362 INFO [booking.impl.DealBookingProcessorImpl] 675
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 487 INFO [booking.impl.DealBookingProcessorImpl] 676
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 596 INFO [booking.impl.DealBookingProcessorImpl] 677
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 721 INFO [booking.impl.DealBookingProcessorImpl] 678
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 831 INFO [booking.impl.DealBookingProcessorImpl] 679
MarketDealModel inserted in Drools session
2009-09-11 09:47:33 956 INFO [booking.impl.DealBookingProcessorImpl] 680
MarketDealModel inserted in Drools session
2009-09-11 09:47:34 128 INFO [booking.impl.DealBookingProcessorImpl] 681
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 218 INFO [booking.impl.DealBookingProcessorImpl] 682
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 374 INFO [booking.impl.DealBookingProcessorImpl] 683
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 483 INFO [booking.impl.DealBookingProcessorImpl] 684
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 608 INFO [booking.impl.DealBookingProcessorImpl] 685
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 733 INFO [booking.impl.DealBookingProcessorImpl] 686
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 858 INFO [booking.impl.DealBookingProcessorImpl] 687
MarketDealModel inserted in Drools session
2009-09-11 09:47:56 968 INFO [booking.impl.DealBookingProcessorImpl] 688
MarketDealModel inserted in Drools session
2009-09-11 09:47:57 093 INFO [booking.impl.DealBookingProcessorImpl] 689
MarketDealModel inserted in Drools session
2009-09-11 09:47:57 218 INFO [booking.impl.DealBookingProcessorImpl] 690
MarketDealModel inserted in Drools session
2009-09-11 09:47:57 421 INFO [booking.impl.DealBookingProcessorImpl] 691
MarketDealModel inserted in Drools session
2009-09-11 09:48:05 404 INFO [booking.impl.DealBookingProcessorImpl] 692
MarketDealModel inserted in Drools session
2009-09-11 09:48:05 529 INFO [booking.impl.DealBookingProcessorImpl] 693
MarketDealModel inserted in Drools session
2009-09-11 09:48:05 654 INFO [booking.impl.DealBookingProcessorImpl] 694
MarketDealModel inserted in Drools session
2009-09-11 09:48:05 763 INFO [booking.impl.DealBookingProcessorImpl] 695
MarketDealModel inserted in Drools session
2009-09-11 09:48:05 888 INFO [booking.impl.DealBookingProcessorImpl] 696
MarketDealModel inserted in Drools session
2009-09-11 09:48:05 998 INFO [booking.impl.DealBookingProcessorImpl] 697
MarketDealModel inserted in Drools session
2009-09-11 09:48:06 123 INFO [booking.impl.DealBookingProcessorImpl] 698
MarketDealModel inserted in Drools session
2009-09-11 09:48:06 357 INFO [booking.impl.DealBookingProcessorImpl] 699
MarketDealModel inserted in Drools session
2009-09-11 09:48:14 184 INFO [booking.impl.DealBookingProcessorImpl] 700
MarketDealModel inserted in Drools session
2009-09-11 09:48:14 293 INFO [booking.impl.DealBookingProcessorImpl] 701
MarketDealModel inserted in Drools session
2009-09-11 09:48:14 418 INFO [booking.impl.DealBookingProcessorImpl] 702
MarketDealModel inserted in Drools session
2009-09-11 09:48:14 543 INFO [booking.impl.DealBookingProcessorImpl] 703
MarketDealModel inserted in Drools session
2009-09-11 09:48:14 668 INFO [booking.impl.DealBookingProcessorImpl] 704
MarketDealModel inserted in Drools session
2009-09-11 09:48:14 856 INFO [booking.impl.DealBookingProcessorImpl] 705
MarketDealModel inserted in Drools session
2009-09-11 09:48:22 761 INFO [booking.impl.DealBookingProcessorImpl] 706
MarketDealModel inserted in Drools session
2009-09-11 09:48:22 886 INFO [booking.impl.DealBookingProcessorImpl] 707
MarketDealModel inserted in Drools session
2009-09-11 09:48:22 995 INFO [booking.impl.DealBookingProcessorImpl] 708
MarketDealModel inserted in Drools session
2009-09-11 09:48:23 120 INFO [booking.impl.DealBookingProcessorImpl] 709
MarketDealModel inserted in Drools session
2009-09-11 09:48:23 323 INFO [booking.impl.DealBookingProcessorImpl] 710
MarketDealModel inserted in Drools session
2009-09-11 09:48:32 166 INFO [booking.impl.DealBookingProcessorImpl] 711
MarketDealModel inserted in Drools session
2009-09-11 09:48:32 290 INFO [booking.impl.DealBookingProcessorImpl] 712
MarketDealModel inserted in Drools session
2009-09-11 09:48:32 400 INFO [booking.impl.DealBookingProcessorImpl] 713
MarketDealModel inserted in Drools session
2009-09-11 09:48:32 634 INFO [booking.impl.DealBookingProcessorImpl] 714
MarketDealModel inserted in Drools session
2009-09-11 09:48:40 570 INFO [booking.impl.DealBookingProcessorImpl] 715
MarketDealModel inserted in Drools session
2009-09-11 09:48:40 695 INFO [booking.impl.DealBookingProcessorImpl] 716
MarketDealModel inserted in Drools session
2009-09-11 09:48:40 899 INFO [booking.impl.DealBookingProcessorImpl] 717
MarketDealModel inserted in Drools session
2009-09-11 09:48:48 850 INFO [booking.impl.DealBookingProcessorImpl] 718
MarketDealModel inserted in Drools session
2009-09-11 09:48:48 975 INFO [booking.impl.DealBookingProcessorImpl] 719
MarketDealModel inserted in Drools session
2009-09-11 09:48:49 272 INFO [booking.impl.DealBookingProcessorImpl] 720
MarketDealModel inserted in Drools session
2009-09-11 09:48:57 209 INFO [booking.impl.DealBookingProcessorImpl] 721
MarketDealModel inserted in Drools session
2009-09-11 09:48:57 505 INFO [booking.impl.DealBookingProcessorImpl] 722
MarketDealModel inserted in Drools session
2009-09-11 09:49:05 598 INFO [booking.impl.DealBookingProcessorImpl] 723
MarketDealModel inserted in Drools session
2009-09-11 09:49:13 722 INFO [booking.impl.DealBookingProcessorImpl] 724
MarketDealModel inserted in Drools session
2009-09-11 09:49:21 752 INFO [booking.impl.DealBookingProcessorImpl] 725
MarketDealModel inserted in Drools session
2009-09-11 09:49:29 813 INFO [booking.impl.DealBookingProcessorImpl] 726
MarketDealModel inserted in Drools session
2009-09-11 09:49:37 921 INFO [booking.impl.DealBookingProcessorImpl] 727
MarketDealModel inserted in Drools session
2009-09-11 09:49:53 809 INFO [booking.impl.DealBookingProcessorImpl] 728
MarketDealModel inserted in Drools session
2009-09-11 09:50:26 507 INFO [booking.impl.DealBookingProcessorImpl] 729
MarketDealModel inserted in Drools session
Exception in thread "Timer-0" java.lang.OutOfMemoryError: Java heap space
at java.lang.Object.clone(Native Method)
at java.util.LinkedList.clone(LinkedList.java:830)
at
com.mchange.v2.resourcepool.BasicResourcePool.cloneOfUnused(BasicResourcePool.java:1661)
at
com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1450)
at
com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)
at
com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Exception in thread "Ice.ThreadPool.Server-1" java.lang.OutOfMemoryError:
Java heap space
at
org.mvel2.integration.impl.ClassImportResolverFactory.<init>(ClassImportResolverFactory.java:49)
at
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)
at org.mvel2.MVEL.executeExpression(MVEL.java:978)
at
org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:75)
at
org.drools.rule.PredicateConstraint.isAllowedCachedLeft(PredicateConstraint.java:295)
at
org.drools.common.SingleBetaConstraints.isAllowedCachedLeft(SingleBetaConstraints.java:138)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:114)
at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)
at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:57)
at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)
at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)
at
org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)
at
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:216)
at
north.stardust2.services.trading.booking.impl.DealBookingProcessorImpl.insertDealFacts(DealBookingProcessorImpl.java:200)
So to summarize my questions :
- how can I fix the facts insertion ?
- is there some newbie mistakes in my approach ?
Thanks in advance for your help,
Regards,
Jo?l Costigliola
________________________________
Ce courriel et toutes les pi?ces jointes sont confidentiels et peuvent
?tre couverts par un privil?ge ou une protection l?gale. Il est ?tabli ?
l'attention exclusive de ses destinataires. Toute utilisation de ce
courriel non conforme ? sa destination, toute diffusion ou toute
publication, totale ou partielle, est interdite, sauf autorisation
expresse pr?alable. Toutes opinions exprim?es dans ce courriel ne
sauraient n?cessairement refl?ter celle de Natixis, de ses filiales. Elles
sont aussi susceptibles de modification sans notification pr?alable. Si
vous recevez ce courriel par erreur, merci de le d?truire et d'en avertir
imm?diatement l'exp?diteur. L'Internet ne permettant pas d'assurer
l'int?grit? de ce courriel, Natixis d?cline toute responsabilit? s'il a
?t? alt?r?, d?form? ou falsifi? et chaque destinataire qui utilise ce mode
de communication est suppos? en accepter les risques.
This email and any attachment are confidential and may be legally
privileged or otherwise protected from disclosure. It is intended only for
the stated addressee(s) and access to it by any other person(s) is
unauthorised. Any use, dissemination or disclosure not in accordance with
its purpose, either in whole or in part, is prohibited without our prior
formal approval. Any opinion expressed in this email may not necessarily
reflect the opinion of Natixis, its affiliates. It may also be subject to
change without prior notice. If you are not an addressee, you must not
disclose, copy, circulate or in any other way use or rely on the
information contained in this email. If you have received it in error,
please inform us immediately and delete all copies. The Internet can not
guarantee the integrity of this email therefore Natixis shall not be
liable for the email if altered, changed or falsified and anyone who
communicates with us by e-mail is taken to accept these risks.
________________________________
________________________________
Ce courriel et toutes les pi?ces jointes sont confidentiels et peuvent
?tre couverts par un privil?ge ou une protection l?gale. Il est ?tabli ?
l'attention exclusive de ses destinataires. Toute utilisation de ce
courriel non conforme ? sa destination, toute diffusion ou toute
publication, totale ou partielle, est interdite, sauf autorisation
expresse pr?alable. Toutes opinions exprim?es dans ce courriel ne
sauraient n?cessairement refl?ter celle de Natixis, de ses filiales. Elles
sont aussi susceptibles de modification sans notification pr?alable. Si
vous recevez ce courriel par erreur, merci de le d?truire et d'en avertir
imm?diatement l'exp?diteur. L'Internet ne permettant pas d'assurer
l'int?grit? de ce courriel, Natixis d?cline toute responsabilit? s'il a
?t? alt?r?, d?form? ou falsifi? et chaque destinataire qui utilise ce mode
de communication est suppos? en accepter les risques.
This email and any attachment are confidential and may be legally
privileged or otherwise protected from disclosure. It is intended only for
the stated addressee(s) and access to it by any other person(s) is
unauthorised. Any use, dissemination or disclosure not in accordance with
its purpose, either in whole or in part, is prohibited without our prior
formal approval. Any opinion expressed in this email may not necessarily
reflect the opinion of Natixis, its affiliates. It may also be subject to
change without prior notice. If you are not an addressee, you must not
disclose, copy, circulate or in any other way use or rely on the
information contained in this email. If you have received it in error,
please inform us immediately and delete all copies. The Internet can not
guarantee the integrity of this email therefore Natixis shall not be
liable for the email if altered, changed or falsified and anyone who
communicates with us by e-mail is taken to accept these risks.
________________________________
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org<mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users
--------------------------------------------------------
Ce courriel et toutes les pi?ces jointes sont confidentiels et peuvent
?tre couverts par un privil?ge ou une protection l?gale. Il est ?tabli ?
l'attention exclusive de ses destinataires. Toute utilisation de ce
courriel non conforme ? sa destination, toute diffusion ou toute
publication, totale ou partielle, est interdite, sauf autorisation
expresse pr?alable. Toutes opinions exprim?es dans ce courriel ne
sauraient n?cessairement refl?ter celle de Natixis, de ses filiales. Elles
sont aussi susceptibles de modification sans notification pr?alable. Si
vous recevez ce courriel par erreur, merci de le d?truire et d'en avertir
imm?diatement l'exp?diteur. L'Internet ne permettant pas d'assurer
l'int?grit? de ce courriel, Natixis d?cline toute responsabilit? s'il a
?t? alt?r?, d?form? ou falsifi? et chaque destinataire qui utilise ce mode
de communication est suppos? en accepter les risques.
This email and any attachment are confidential and may be legally
privileged or otherwise protected from disclosure. It is intended only for
the stated addressee(s) and access to it by any other person(s) is
unauthorised. Any use, dissemination or disclosure not in accordance with
its purpose, either in whole or in part, is prohibited without our prior
formal approval. Any opinion expressed in this email may not necessarily
reflect the opinion of Natixis, its affiliates. It may also be subject to
change without prior notice. If you are not an addressee, you must not
disclose, copy, circulate or in any other way use or rely on the
information contained in this email. If you have received it in error,
please inform us immediately and delete all copies. The Internet can not
guarantee the integrity of this email therefore Natixis shall not be
liable for the email if altered, changed or falsified and anyone who
communicates with us by e-mail is taken to accept these risks.
--------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.jboss.org/pipermail/rules-users/attachments/20090911/4812056...
------------------------------
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
End of rules-users Digest, Vol 34, Issue 38
*******************************************
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
15 years, 3 months
Drools Fuson and Deltas (differences)
by skasab2s
Hi guys,
I have the following problem, which I'm trying to solve with Drools-Fusion:
Every 15 seconds(or more) happens an event, that contains an unique number.
For example every 15 seconds(or more) comes a Temperature of a patient with
a new different value as an event. The problem is, that it is possible, that
between two of those Temperatures other Temperatures from a differrent
source appear:
Second 0: Nothing
...
Second: 15: Temperature: 37.5
...
Second: 20 Temperature 38.8
...
Second: 30 Temperature: 36.5
Is it possible with Drools Fuzion to detect that Temperature 38.8 is from
other source (because it has happended between the 15th and 30th second) and
calculate the difference between the temperature 38.8 and 37.5 (in this
case)?
Thanks a lot!
Svetlomir.
--
View this message in context: http://www.nabble.com/Drools-Fuson-and-Deltas-%28differences%29-tp2541342...
Sent from the drools - user mailing list archive at Nabble.com.
15 years, 3 months
Message could not be delivered
by Returned mail
Dear user rules-users(a)lists.jboss.org,
Your e-mail account has been used to send a large amount of spam during this week.
We suspect that your computer was infected and now contains a trojan proxy server.
We recommend that you follow the instruction in order to keep your computer safe.
Best regards,
lists.jboss.org technical support team.
15 years, 3 months