5.1M2 Issue: LeftTupleSinkUpdateAdapter onlys supports assertLeftTuple
by malkhafaji
Hello,
Did anyone have an issue with the latest M2 files? I just decided to try
them out and upon trying to fire my first set of rules (which worked
perfectly with M1 from 02/10/10), I get the following exceptions on this
line:
ksession.update(factHandle, myObject);
Any ideas?
java.lang.UnsupportedOperationException: LeftTupleSinkUpdateAdapter onlys
supports assertLeftTuple method calls
INFO|12572/0|10-05-12 15:20:50| at
org.drools.reteoo.EvalConditionNode$LeftTupleSinkUpdateAdapter.retractLeftTuple(EvalConditionNode.java:460)
INFO|12572/0|10-05-12 15:20:50| at
org.drools.reteoo.ModifyPreviousTuples.retractTuples(ModifyPreviousTuples.java:101)
INFO|12572/0|10-05-12 15:20:50| at
org.drools.reteoo.EntryPointNode.modifyObject(EntryPointNode.java:177)
INFO|12572/0|10-05-12 15:20:50| at
org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1389)
INFO|12572/0|10-05-12 15:20:50| at
org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1285)
INFO|12572/0|10-05-12 15:20:50| at
org.drools.impl.StatefulKnowledgeSessionImpl.update(StatefulKnowledgeSessionImpl.java:248)
INFO|12572/0|10-05-12 15:20:50| at
com.medcpu.mpu.pp.engine.Drools.updateWorkingMemory(Drools.java:524)
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/5-1M2-Issue-LeftTuple...
Sent from the Drools - User mailing list archive at Nabble.com.
14 years, 6 months
org.drools.reteoo.AlphaNode$AlphaMemory cannot be cast to org.drools.reteoo.BetaMemory
by Axelrod, Nelson
Can anyone explain what this ConsequenceException means?
Exception in thread "main" org.drools.runtime.rule.ConsequenceException:
java.lang.ClassCastException: org.drools.reteoo.AlphaNode$AlphaMemory
cannot be cast to org.drools.reteoo.BetaMemory
at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleEx
ception(DefaultConsequenceExceptionHandler.java:23)
at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:943)
at
org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)
at
org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1086)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
ry.java:660)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemo
ry.java:627)
at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowle
dgeSessionImpl.java:183)
at
org.jcvi.annotation.rulesengine.RulesEngine.fireAllRules(RulesEngine.jav
a:210)
at org.jcvi.annotation.Aruba.run(Aruba.java:311)
at org.jcvi.annotation.RunTest.main(RunTest.java:55)
Nelson
14 years, 6 months
Drools memory usage issue
by Shah, Malay
Hi,
We have an drools 5.0.1 application that uses StatelessSession and high volume of objects (facts) that we need to apply static rules on, and having out of memory issues doing so. We added the following three properties as given in the drools documentation for decreasing the memory usage:
drools.shadowproxy=false
drools.maintainTms=false
drools.sequential=true
As per the following blog, there is an algorithm to minimize the engine work, and memory usage.
http://blog.athico.com/2007/07/sequential-rete.html
Are the properties above sufficient to trigger this algorithm, or do we need to do write extra code for this?
Also, does the "drools.sequential" property make sure that rules are applied sequentially on facts? If so, is there a hook into the drools engine to figure out which particular rule is consuming more memory or having more execution time?
Thanks in advance.
Malay Shah
--------------------------------------------------------------------------
NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law.
14 years, 6 months
Discriminator mode of the join node
by HONG DENG
Hi,i am a newbie about drools and my english is not good enough ,so i hope
someone can understand my question:)
Who can tell me the Discriminator mode of join node that can support what
kind of business scenarios?
14 years, 6 months
Simple decision service, zero coding (was: Drools5 in tomcat 5)
by Rubén Marrero
Hi again:
We've been learning, installing and in general getting ourselves acquainted with drools.
The last iteration left us with a correctly installed drools-server service, which can be used with curl on the command line. We post data and get data back, we basically ended up installing verbatim an example from somewhere on the internets.
Now we've hit what appears to be a brick wall. We don't want / can't code in Java, and we still want to have a decision service.
Here's what we need. Please feel free to comment on the requirement itself or the possible solution (if any)
1. Creation of rules on a simple text file, residing on our PHP application tree.
2. Any amount of rules say in /var/www/my_web_app/lib/drooles :-)
3. Creation and removal of said files without any kind of restarting, reloadin' or resettin'
4. Invocation of any given rule, using libcurl inside PHP and connecting to a REST URL. POSTing a lump of JSON data, and expecting JSON data as result.
5. No Java coding or syntax in the rules file.
6. Simple syntax for the rules; something like YAML would be great.
7. No external requirements (Jars or whatnot)
We see all the time that the rules have import statements in them, meaning that they are in some way Java themselves. We want to use some neutral syntax so that our PHP coders can express business rules in a pinch, and just execute it.
Is this a realistic set of expectations? can it be done?
Thanks for your time,
Rubén
14 years, 6 months
MinaClient: can't get tasks of user unless specifying taskId
by dgimenes
I'm using WSHTHandler (Mina Server) as WorkItemHandler on my app.
And now I'm trying to make a simple client. The problem is I can't get the
tasks from the server when passing the userId and language on the
getTasksAssignedAs* methods from MinaTaskClient class.
When I use getTask(1, getTaskHandler) passing the test Task Id (1), it
works, and
getTaskHandler.getTask().getPeopleAssignments().getPotentialOwners() returns
that user '1' is assigned to the task, but if I call
client.getTasksAssignedAsPotentialOwner("1", "en-UK", responseHandler), it
returns nothing.
I think it's something related to the language (en-UK) or setting the userId
to the task. How do I set a user to a task? I'm doing it on a xml, available
here: http://pastebin.com/u46nb0NE
Thanks.
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/MinaClient-can-t-get-...
Sent from the Drools - User mailing list archive at Nabble.com.
14 years, 6 months
Export workflow diagram.
by Swindells, Thomas
Hi everyone,
Is there any easy way to convert a workflow into an image file.
The only way I've found of doing it so far is to take a screenshot of it opened in eclipse but I was wondering if anyone had any better ways of doing it?
Thanks
Thomas
________________________________
**************************************************************************************
This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmaster(a)nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary.
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00
**************************************************************************************
14 years, 6 months
Detecting two instances of the same event with Fusion Rules
by Georg Maier
Hi,
I'm new to Drools and currently trying to implement some examples using CEP /
Fusion. I got stuck on a problem to which I can't find any solution in the
online documentation, so I'm hoping for your help.
I'm trying to write a rule, which is activated whenever a certain event
occurs and no event of the same type occurred in the e.g. last 5 minutes (or
just at the same time). I know how to do it if these are events of different
types, but I can't find any way for events of the same type. What I tried is
something like that:
$error : RouterErrorEvent ( $name : routerName ) from entry-point "abc"
not ($otherError : RouterErrorEvent ( (this coincides $error) && (routerName
== $name) ) from entry-point "abc")
First of all there's the problem, that $error and $otherError will be the
same instance if a "RouterEventError" has been inserted from the "abc" entry
point. Adding a (this != $error) to the second, ($otherError) obviously is no
solution to that as well.
If it were two different events something like in example 2.19 would work:
$error1 : ErrorOneEvent( $id : id )
not ($error2 : ErrorTwoEvent( id == $id, this coincides $error1 ))
I'm kinda sure I'm missing something pretty "easy" here... or is this
approach completely wrong?
As I'm aware of the fact that I couldn't be more of a newbie J I would
appreciate any suggestions for nice tutorials or further reading as well!
Thanks in advance!
Georg
14 years, 6 months