Fwd: [rules-users] Guvnor Audit Logging
by David Sinclair
I am assuming this is incorrect. Michael, can u confirm?
---------- Forwarded message ----------
From: Anu@work <anupama.vaid(a)bluecasa.com>
Date: Mar 26, 2009 2:44 PM
Subject: Re: [rules-users] Guvnor Audit Logging
To: rules-users(a)lists.jboss.org
Thx Dave. That worked great.
Not sure you are the right person to address this to, but in the source code
I saw
session.execute(facts);
StatelessSessionResult ssr =
session.executeWithResults(facts);
I think we do not need the 'session.execute'
Thx,
Anu
dave sinclair wrote:
>
> You would have to modify the execution server source to get what u want.
>
>
>
>
--
View this message in context:
http://www.nabble.com/Guvnor-Audit-Logging-tp22690776p22728277.html
Sent from the drools - user mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
15 years, 8 months
Re: Trouble in stream mode
by Greg Barton
Sorry, I forgot to mention the drools version: current snapshot build, 5.0.0.20090403.045040-189
Thanks,
GreG
15 years, 8 months
Trouble in stream mode
by Greg Barton
I'm trying out stream mode and having some trouble. I'm setting drools.eventProcessingMode to stream and using an entry point for inserting some objects. Sometimes (but not all of the time) the rule that matches on objects from the entry point (currently the only rule in the ruleset) will get a null reference for the object retrieved from the entry point. Here's the drl:
declare Incoming
@role( event )
@expires( 15s )
end
rule "entry"
no-loop true
when
i: Incoming() from entry-point "Incoming";
e: Existing(matcher == i.matcher);
then
if(i == null) {
System.err.println("NULL MATCHED WITH " + e.getMatcher());
} else {
if(e.incorporate(i)) {
update(e);
System.out.println(e);
}
}
end
Sometimes (not not all of the time) I get these in stderr:
NULL MATCHED WITH Matcher1
NULL MATCHED WITH Matcher12
NULL MATCHED WITH Matcher3
NULL MATCHED WITH Matcher9
The Incoming objects are added at a high rate (sometimes thousands per second) so my guess was that they weren't being processed fast enough and were being expired before the rule action could fire. I changed their @expires value to "1d" and then got one of the two exceptions below when I ran the application.
Some more details: I use WorkingMemoryEntryPoint.insert() to add the Incoming objects. The StatefulKnowledgeSession runs in a separate thread, blocking on fireUntilHalt().
Here are the exceptions I often incur on calling WorkingMemoryEntryPoint.insert() with the long expiration. Rule execution halts after the exception:
Exception in thread "Thread-5" java.lang.NullPointerException
at org.drools.util.RightTupleList.matches(RightTupleList.java:167)
at org.drools.util.RightTupleIndexHashTable.get(RightTupleIndexHashTable.java:292)
at org.drools.util.RightTupleIndexHashTable.getFirst(RightTupleIndexHashTable.java:87)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:112)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:175)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at org.drools.reteoo.PropagationQueuingNode$AssertAction.execute(PropagationQueuingNode.java:326)
at org.drools.reteoo.PropagationQueuingNode.propagateActions(PropagationQueuingNode.java:221)
at org.drools.reteoo.PropagationQueuingNode$PropagateAction.execute(PropagationQueuingNode.java:394)
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1464)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:156)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:120)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:78)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:26)
at org.gregcode.stuff.analysis.Analyzer.add(Analyzer.java:108)
at org.gregcode.stuff.Simulator$1.run(Simulator.java:69)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-3" java.lang.NullPointerException
at org.drools.util.LeftTupleList.add(LeftTupleList.java:48)
at org.drools.reteoo.RuleTerminalNode.assertLeftTuple(RuleTerminalNode.java:245)
at org.drools.reteoo.RuleTerminalNode.assertLeftTuple(RuleTerminalNode.java:165)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:116)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:175)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at org.drools.reteoo.PropagationQueuingNode$AssertAction.execute(PropagationQueuingNode.java:326)
at org.drools.reteoo.PropagationQueuingNode.propagateActions(PropagationQueuingNode.java:221)
at org.drools.reteoo.PropagationQueuingNode$PropagateAction.execute(PropagationQueuingNode.java:394)
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1464)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:156)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:120)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:78)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:26)
at org.gregcode.stuff.analysis.Analyzer.add(Analyzer.java:108)
at org.gregcode.stuff.Simulator$1.run(Simulator.java:69)
at java.lang.Thread.run(Thread.java:619)
Thanks!
GreG
15 years, 8 months
idea for heat maps indicating usage
by Mark Proctor
If someone wanted some fun with AOP here is a nice idea. Each node can
track which rule and which part of the rule it was originaly from. Use
AOP to log the number of propations in a node and then produce a heat
map output, intially as a scale, you can click on a colour and it shows
the rules in that range. Further to that the rules themsleves should
have the patterns and even the indivual constraints annotated with a
background constraint indicating their usage rate. If anyone gives this
a go, please do use SWT so we can embed it in Eclipse, but a GWT
equivalent would be good too :)
This could be extrapolated further with drill downs, recording the
heatmap over time, and with a break down for which fact or field changes
causes what usage rates.
Mark
15 years, 9 months
Session schedule change
by Mark Proctor
I've been requested to move the technical "Advanced Engine" session to
the last day, so that the user target sessions are consecutive, as
people who attend monday's primer probably want to attend the 'Domain
Specific Workflow", but not the "Advanced Engine".
So I'm going to swap "Drools 5.0 Domain Specific Workflow" which is on
the thursday to the Wednesday and "Drools 5.0 Advanced Engine" will move
to the Thursday.
Do other people think that's ok, any objections? That means the talks
would now look as follows:
Drools 5.0 Primer : Monday 1st of June 10.00 to 13.00
* The new features in Drools 5.0 will be covered at an end user
level. This includes all the drools projects, Guvnor, Flow, Fusion
and Expert. This is suitable for anyone with minimal previous
Drools experience who just want to know "what's new".
Community Lightening Talks : Monday 1st of June 13.30 to 14.30
* 20 minute community lightening talks about their experiences with
drools.
o Sun will talk about Drools in their Desktop Configurator
<http://www.sun.com/products/dc/>
Drools 5.0 Guvnor Internals : Tuesday 10.00 to 12.00
* The internals of Guvnor will be discussed and how all the parts
come together and current issues and directions we wish to take
the project. This is suitable for anyone with minimal previous
Drools experience, but ideally you should be aware of GWT, JCR and
Guvnor in general. This is targetted at people who wish to extend
Guvnor with new features or re-use/embed existing aspects of Guvnor.
Drools 5.0 Domain Specific Workflow : Wednesday 10.00 to 12.00
* We will show how Drools Flow can be extended for domain specific
workflow, with a focus on the pluggable Work Items and Eclipse. We
will also cover the pluggable workflow framework for customised
execution behaviour, such as is used to provide OSWorkflow
compatability. This is suitable for anyone with a java and eclipse
background, ideally you should have some understanding of what
Drools and especially Drools Flow is.
Drools 5.0 Advanced Engine : Thursday 10.00 to 13.00
* This will be a deep dive for the technical on Rete enhancements.
We will cover the asymmetrical Rete implementation, as compared to
the traditional symmetrical approach, and how we enhanced it for
event processing and workflow. This is targetted at experienced
people, who already have an understanding of Rete and wish to
understand the latest research and innovations - not for the feint
hearted.
Mark
15 years, 9 months
Drools Boot Camp Ligtning Talks and Registration Page
by Mark Proctor
Due to demand the Drools team are introducing lightning talks to the
Boot Camp, following the Drools 5.0 primer on the Monday. Each company
will be given 20 minutes to present, more time can be requested if you
need it. The Desktop Configuration team,
http://www.sun.com/products/dc/, from Sun are the first to volunteer to
present. If you wish to present, please contact me asap.
The Drools Boot Camp registration page
<http://www.jboss.org/community/docs/DOC-13468> is now open. If you are
hoping to attend, please put your details there and send me an email, so
that we can estimate and manage attendance. We only have spaces for
about 20 or so people, so please do hurry. Registration wiki page can be
found here <http://www.jboss.org/community/docs/DOC-13468>,
http://www.jboss.org/community/docs/DOC-13468, you will need to login to
edit the page.
The event time tabled schedule is now as follows:
Drools 5.0 Primer : Monday 1st of June 10.00 to 13.00
* The new features in Drools 5.0 will be covered at an end user
level. This includes all the drools projects, Guvnor, Flow, Fusion
and Expert. This is suitable for anyone with minimal previous
Drools experience who just want to know "what's new".
Community Lightning Talks : Monday 1st of June 13.30 to 14.30
* 20 minute community lightning talks about their experiences with
drools.
o Sun will talk about Drools in their Desktop Configurator
<http://www.sun.com/products/dc/>
Drools 5.0 Guvnor Internals : Tuesday 10.00 to 12.00
* The internals of Guvnor will be discussed and how all the parts
come together and current issues and directions we wish to take
the project. This is suitable for anyone with minimal previous
Drools experience, but ideally you should be aware of GWT, JCR and
Guvnor in general. This is targetted at people who wish to extend
Guvnor with new features or re-use/embed existing aspects of Guvnor.
Drools 5.0 Advanced Engine : Wednesday 10.00 to 13.00
* This will be a deep dive for the technical on Rete enhancements.
We will cover the asymmetrical Rete implementation, as compared to
the traditional symmetrical approach, and how we enhanced it for
event processing and workflow. This is targetted at experienced
people, who already have an understanding of Rete and wish to
understand the latest research and innovations - not for the feint
hearted.
Drools 5.0 Domain Specific Workflow : Thursday 10.00 to 12.00
We will show how Drools Flow can be extended for domain specific
workflow, with a focus on the pluggable Work Items and Eclipse. We will
also cover the pluggable workflow framework for customised execution
behaviour, such as is used to provide OSWorkflow compatability. This is
suitable for anyone with a java and eclipse background, ideally you
should have some understanding of what Drools and especially Drools Flow is.
15 years, 9 months