<font size=2 face="sans-serif">Hi All</font>
<br>
<br><font size=2 face="sans-serif">I am new to drools and i am trying to
install Guvnor in Jboss5.0.1 GA &nbsp;.I got the below error</font>
<br><font size=2 face="sans-serif"><b>DEPLOYMENTS IN ERROR:</b></font>
<br><font size=2 face="sans-serif"><b>&nbsp; Deployment &quot;persistence.unit:unitName=#ACL&quot;
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</b></font>
<br>
<br>
<br><font size=2 face="sans-serif">I removed the jars mentioned as per
the link below but still the error remains the same.</font>
<br><a href="https://jira.jboss.org/jira/browse/JBRULES-2034"><font size=2 face="sans-serif"><b>https://jira.jboss.org/jira/browse/JBRULES-2034</b></font></a>
<br>
<br><font size=2 face="sans-serif">Can someone plz point me to the permanent
solution to this problem.</font>
<br><font size=2 face="sans-serif">Same error is there if I try to deploy
Guvnow war file in Weblogic.Is Gunor deployable on Weblogic.</font>
<br>
<br><font size=2 face="sans-serif">Thanks,</font>
<br><font size=2 face="sans-serif"><br>
Nilima Rajendra Raichandani<br>
Tata Consultancy Services<br>
Mailto: nilima.r@tcs.com<br>
Website: </font><a href=http://www.tcs.com/><font size=2 face="sans-serif">http://www.tcs.com</font></a><font size=2 face="sans-serif"><br>
____________________________________________<br>
Experience certainty. &nbsp; &nbsp; &nbsp; &nbsp;IT Services<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;Business Solutions<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;Outsourcing<br>
____________________________________________</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">rules-users-request@lists.jboss.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">rules-users@lists.jboss.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">09/11/2009 05:38 PM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">rules-users Digest, Vol 34, Issue 38</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Sent by:</font>
<td><font size=1 face="sans-serif">rules-users-bounces@lists.jboss.org</font></table>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>Send rules-users mailing list submissions to<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
rules-users@lists.jboss.org<br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2><br>
or, via email, send a message with subject or body 'help' to<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
rules-users-request@lists.jboss.org<br>
<br>
You can reach the person managing the list at<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
rules-users-owner@lists.jboss.org<br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of rules-users digest...&quot;<br>
<br>
<br>
Today's Topics:<br>
<br>
 &nbsp; 1. Re: Thread-deadlock when Negation Was Used and<br>
 &nbsp; &nbsp; &nbsp;NullPointerException in Drools 5.0.1 (Andreas Kohn)<br>
 &nbsp; 2. Re: Unable to map process variables into WorkItem.<br>
 &nbsp; &nbsp; &nbsp;(Kris Verlaenen)<br>
 &nbsp; 3. Re: Memory error when inserting facts &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; instatefulsession<br>
 &nbsp; &nbsp; &nbsp;(Costigliola Joel (EXT))<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Fri, 11 Sep 2009 13:35:12 +0200<br>
From: Andreas Kohn &lt;andreas.kohn@fredhopper.com&gt;<br>
Subject: Re: [rules-users] Thread-deadlock when Negation Was Used and<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
NullPointerException in Drools 5.0.1<br>
To: Rules Users List &lt;rules-users@lists.jboss.org&gt;<br>
Cc: Rules Users List &lt;rules-users@lists.jboss.org&gt;<br>
Message-ID: &lt;15B97BB9-424F-4CD5-B1D8-7C8568B38FB9@fredhopper.com&gt;<br>
Content-Type: text/plain; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; charset=us-ascii; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; format=flowed; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delsp=yes<br>
<br>
<br>
<br>
On Sep 11, 2009, at 9:21, Greg Barton &lt;greg_barton@yahoo.com&gt; wrote:<br>
<br>
&gt; Well, looking at CompositeClassLoader, it's already not completely
&nbsp;<br>
&gt; threadsafe even with the loadClass method synchronized. (This is &nbsp;<br>
&gt; because loadClass calls fastFindClass, which iterates over the &nbsp;<br>
&gt; classLoader ArrayList, which could be concurrently modified.) &nbsp;So
&nbsp;<br>
&gt; the classLoader data strucure should be concurrent, and it's my &nbsp;<br>
&gt; guess that removing the synchronization from &nbsp;<br>
&gt; CompositeClassLoader.loadClass will be fine as long as the sub &nbsp;<br>
&gt; ClassLoaders that actually do loading are threadsafe.<br>
&gt;<br>
<br>
This is exactly the approach I used in JBRULES-2225, because not just &nbsp;<br>
was the locking broken, it also produced measurable contention in our &nbsp;<br>
application.<br>
The fixed version behaved considerably better.<br>
<br>
--<br>
Andreas<br>
<br>
&gt; --- On Thu, 9/10/09, Dave McLoughlin &lt;Dave.McLoughlin@openlogic.com&gt;
&nbsp;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt; From: Dave McLoughlin &lt;Dave.McLoughlin@openlogic.com&gt;<br>
&gt;&gt; Subject: [rules-users] Thread-deadlock when Negation Was Used
and &nbsp;<br>
&gt;&gt; NullPointerException in Drools 5.0.1<br>
&gt;&gt; To: rules-users@lists.jboss.org<br>
&gt;&gt; Date: Thursday, September 10, 2009, 6:56 PM<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Thread-deadlock when Negation Was Used and<br>
&gt;&gt; NullPointerException in Drools 5.0.1<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; We have a couple of issues we've<br>
&gt;&gt; submitted to the issue tracker.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; JBRULES-2276 &lt;</font></tt><a href="https://jira.jboss.org/jira/browse/JBRULES-2276"><tt><font size=2>https://jira.jboss.org/jira/browse/JBRULES-2276</font></tt></a><tt><font size=2>&gt;<br>
&gt;&gt;<br>
&gt;&gt; JBRULES-2267 &lt;</font></tt><a href="https://jira.jboss.org/jira/browse/JBRULES-2267"><tt><font size=2>https://jira.jboss.org/jira/browse/JBRULES-2267</font></tt></a><tt><font size=2>&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; While we are waiting for the core team to take a look we<br>
&gt;&gt; wanted to see if anyone else has run into these issues and<br>
&gt;&gt; has any advice for us.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; We have provided both our diagnosis of the issues and<br>
&gt;&gt; fixes. &nbsp;Our concern is whether we've taken the<br>
&gt;&gt; right approach to the fixes and what the long term<br>
&gt;&gt; ramifications are of the solutions.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Any and all advice is welcome,<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Dave<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; -----Inline Attachment Follows-----<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; rules-users mailing list<br>
&gt;&gt; rules-users@lists.jboss.org<br>
&gt;&gt; </font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; rules-users@lists.jboss.org<br>
&gt; </font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2><br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Fri, 11 Sep 2009 13:24:49 +0200<br>
From: Kris Verlaenen &lt;kris.verlaenen@cs.kuleuven.be&gt;<br>
Subject: Re: [rules-users] Unable to map process variables into<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
WorkItem.<br>
To: Rules Users List &lt;rules-users@lists.jboss.org&gt;, &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Stuart Grimshaw<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&lt;sgrimshaw@plus.net&gt;<br>
Message-ID: &lt;1252668289.4aaa33819a23b@webmail1.kuleuven.be&gt;<br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
Have you also defined the &quot;fact&quot; process variable? You can do
this by<br>
clicking on the background of you process in the editor and updating the<br>
variables parameter, or in the header in xml:<br>
<br>
&lt;header&gt;<br>
 &nbsp;&lt;variables&gt;<br>
 &nbsp; &nbsp;&lt;variable name=&quot;fact&quot; &gt;<br>
 &nbsp; &nbsp; &nbsp;&lt;type name=&quot;org.drools.process.core.datatype.impl.type.ObjectDataType&quot;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;className=&quot;org.drools.ProvFact&quot;
/&gt;<br>
 &nbsp; &nbsp;&lt;/variable&gt;<br>
 &nbsp;&lt;/variables&gt;<br>
&lt;/header&gt;<br>
<br>
Otherwise the process won't know where to find the &quot;fact&quot; variable<br>
(because you could have multiple, nested variable scopes if you start<br>
using composite nodes).<br>
<br>
Kris<br>
<br>
Quoting Stuart Grimshaw &lt;sgrimshaw@plus.net&gt;:<br>
<br>
&gt; -----BEGIN PGP SIGNED MESSAGE-----<br>
&gt; Hash: SHA1<br>
&gt; <br>
&gt; I'm trying to access the fact object from within my WorkItemHandler,<br>
&gt; but<br>
&gt; I'm struggling.<br>
&gt; <br>
&gt; See </font></tt><a href=http://pastie.org/613312><tt><font size=2>http://pastie.org/613312</font></tt></a><tt><font size=2>
for the various bits of code, but my<br>
&gt; problem is that when I set a breakpoint in the WorkItemHandler and<br>
&gt; call<br>
&gt; workItem.getParameters(), the result is empty.<br>
&gt; <br>
&gt; I think I'm creating the Map correctly and inserting it into the<br>
&gt; process<br>
&gt; scope, but maybe someone can spot what I'm doing wrong?<br>
&gt; <br>
&gt; <br>
&gt; - --<br>
&gt; +<br>
&gt; | Stuart Grimshaw &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Broadband Solutions<br>
&gt; for<br>
&gt; | Lead Developer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;Home &amp; Business<br>
&gt; @<br>
&gt; | Plusnet Plc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; <br>
&gt; </font></tt><a href=www.plus.net><tt><font size=2>www.plus.net</font></tt></a><tt><font size=2><br>
&gt; | Registered Office: Internet House, 2 Tenter Street, Sheffield, S1<br>
&gt; 4BY<br>
&gt; | Registered in England no: 3279013<br>
&gt; + --------------- Plusnet - ISPA Best Consumer ISP 2008<br>
&gt; ---------------<br>
&gt; <br>
&gt; -----BEGIN PGP SIGNATURE-----<br>
&gt; Version: GnuPG v1.4.9 (GNU/Linux)<br>
&gt; Comment: Using GnuPG with Mozilla - </font></tt><a href=http://enigmail.mozdev.org/><tt><font size=2>http://enigmail.mozdev.org</font></tt></a><tt><font size=2><br>
&gt; <br>
&gt; iEYEARECAAYFAkqqJ1YACgkQKVVpabZzO7mqlACfQp9MinLoBCH6b5o4cShcZI/T<br>
&gt; /tQAniNgBnWVMw/2Ka7w1jJvwYZtMLVi<br>
&gt; =5RJV<br>
&gt; -----END PGP SIGNATURE-----<br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; rules-users@lists.jboss.org<br>
&gt; </font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2><br>
&gt; <br>
<br>
<br>
<br>
<br>
Disclaimer: </font></tt><a href=http://www.kuleuven.be/cwis/email_disclaimer.htm><tt><font size=2>http://www.kuleuven.be/cwis/email_disclaimer.htm</font></tt></a><tt><font size=2><br>
<br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Fri, 11 Sep 2009 14:04:29 +0200<br>
From: &quot;Costigliola Joel \(EXT\)&quot; &lt;joel.costigliola-ext@natixis.com&gt;<br>
Subject: Re: [rules-users] Memory error when inserting facts<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
instatefulsession<br>
To: &quot;'Rules Users List'&quot; &lt;rules-users@lists.jboss.org&gt;<br>
Message-ID:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&lt;201216F96E6D724F9296BFACF6DB54641E34E61254@MSEUMAIL03.cib.net&gt;<br>
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
<br>
Mike and Wolfgang, things are clearer now, I will definitely try to your
suggestions.<br>
<br>
Thanks for the help,<br>
<br>
Joel<br>
________________________________<br>
De : rules-users-bounces@lists.jboss.org [</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>]
De la part de Wolfgang Laun<br>
Envoy? : vendredi 11 septembre 2009 12:42<br>
? : Rules Users List<br>
Objet : Re: [rules-users] Memory error when inserting facts in statefulsession<br>
<br>
Hello Joel,<br>
<br>
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.<br>
<br>
So, trying to get rid of the eval's would be worthwhile.<br>
<br>
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.<br>
<br>
rule addCollector<br>
when<br>
 &nbsp; &nbsp;$deal: MarketDealModel()<br>
 &nbsp; not (Collector( deal == $deal )<br>
then<br>
 &nbsp; insert( new Collector( ?deal ) );<br>
end<br>
<br>
When there is a matching Collector and a BTExecutionBookingRuleModel matches
the deal:<br>
then<br>
 modify the collector by incrementing the count and storing the matched
booking rule<br>
<br>
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.)<br>
<br>
HTH<br>
Wolfgang<br>
<br>
<br>
<br>
2009/9/11 Costigliola Joel (EXT) &lt;joel.costigliola-ext@natixis.com&lt;</font></tt><a href="mailto:joel.costigliola-ext@natixis.com"><tt><font size=2>mailto:joel.costigliola-ext@natixis.com</font></tt></a><tt><font size=2>&gt;&gt;<br>
<br>
Hi Mike,<br>
<br>
<br>
<br>
Quick reply, thanks !<br>
<br>
<br>
<br>
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)).<br>
<br>
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 ...<br>
<br>
<br>
<br>
Hope you get the idea.<br>
<br>
<br>
<br>
The matchXXX function compare the XXX criterion of a booking rule (ex Trader)
with the corresponding Deal attribute (ex Trader).<br>
<br>
Here's the implementation for comparing trader criterion, note that if
a booking rule does not specify a criterion it is considered as matched.<br>
<br>
<br>
<br>
 &nbsp;private static boolean matchCriterion(NorthIdEntity&lt;?&gt; ruleCriterionModel,
NorthIdEntity&lt;?&gt; model) {<br>
<br>
 &nbsp; &nbsp;if (ruleCriterionModel == null) {<br>
<br>
 &nbsp; &nbsp; &nbsp;// no criterion =&gt; matching ok<br>
<br>
 &nbsp; &nbsp; &nbsp;return true;<br>
<br>
 &nbsp; &nbsp;}<br>
<br>
 &nbsp; &nbsp;return ruleCriterionModel.equals(model);<br>
<br>
 &nbsp;}<br>
<br>
<br>
<br>
I have read that eval is not performant but I thought it was only when
executing rules not at facts insertion phase.<br>
<br>
Is this coorect or is eval impacting negatively facts insertion ?<br>
<br>
<br>
<br>
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 ?<br>
<br>
<br>
<br>
To finish I forgot to give informations on my environment, it may be useful
:<br>
<br>
- Drools version 5.01<br>
<br>
- java 6<br>
<br>
- launching my server with following memory options : -Xms256m -Xmx1024m<br>
<br>
<br>
<br>
<br>
<br>
Thanks again for your thought,<br>
<br>
<br>
<br>
Joel<br>
<br>
<br>
<br>
________________________________<br>
<br>
De : rules-users-bounces@lists.jboss.org&lt;</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>&gt;
[</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>&lt;</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>&gt;]
De la part de Anstis, Michael (M.)<br>
Envoy? : vendredi 11 septembre 2009 10:35<br>
? : Rules Users List<br>
Objet : Re: [rules-users] Memory error when inserting facts in stateful
session<br>
<br>
<br>
<br>
Hi,<br>
<br>
<br>
<br>
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 &quot;exists&quot;
instead of the &quot;ArrayList( size == 1) from collect...&quot; - 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 &quot;matchXXX&quot;
functions do? Could you investigate removing the &quot;evals&quot;?<br>
<br>
<br>
<br>
I don't have any knowledge of your domain - we're all newbies at some time
or other.<br>
<br>
<br>
<br>
With kind regards,<br>
<br>
<br>
<br>
Mike<br>
<br>
<br>
<br>
________________________________<br>
<br>
From: rules-users-bounces@lists.jboss.org&lt;</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>&gt;
[</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>&lt;</font></tt><a href="mailto:rules-users-bounces@lists.jboss.org"><tt><font size=2>mailto:rules-users-bounces@lists.jboss.org</font></tt></a><tt><font size=2>&gt;]
On Behalf Of Costigliola Joel (EXT)<br>
Sent: 11 September 2009 09:21<br>
To: rules-users@lists.jboss.org&lt;</font></tt><a href="mailto:rules-users@lists.jboss.org"><tt><font size=2>mailto:rules-users@lists.jboss.org</font></tt></a><tt><font size=2>&gt;<br>
Subject: [rules-users] Memory error when inserting facts in stateful session<br>
<br>
Hello,<br>
<br>
To be short I'm facing some performance/memory problems with Drools which
leads to the error : java.lang.OutOfMemoryError: Java heap space.<br>
<br>
That was for the short story, let me now give you more details.<br>
<br>
First, I'm a Drools newbie so I certainly have made some &quot;bad&quot;
choice.<br>
<br>
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).<br>
<br>
I have written 4 rules, a rule-flow and start the deals classifying process
with a stateful session.<br>
<br>
I have successfully (unit) tested different scenarios, so everything is
ok on a functionnal point of view.<br>
<br>
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).<br>
<br>
Number of facts I have tried to insert in my statefull session :<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp; 222 booking rule (POJO expressing classification
criteria)<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp; 750 product index<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp; 750 deals<br>
<br>
What drools does here is to find the correct booking rule to apply for
each deal (we need some product index for that).<br>
<br>
Can you tell me if those numbers seems unrealistic ?<br>
<br>
What can I do to avoid the memory errors ?<br>
<br>
To be complete, I show you the drools rules :<br>
<br>
rule &quot;Find and apply level 1 booking rule&quot;<br>
<br>
 &nbsp; &nbsp; &nbsp;lock-on-active true<br>
<br>
 &nbsp; &nbsp; &nbsp;ruleflow-group &quot;Level 1 booking rule group&quot;<br>
<br>
 &nbsp; &nbsp; &nbsp;when<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dealModel : MarketDealModel(
$dealPortfolio : portfolio, $dealTrader : trader, $dealProduct : product)<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// retrieve the ProductRelatedIndexes
corresponding to the deal product (only one by product)<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;productRelatedIndexes : ProductRelatedIndexes(
product.internalCode == $dealProduct.internalCode, $dealProductIndexes
: relatedIndexes)<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// try to find one and only one
level 1 matching rule (level 1 &lt;=&gt; all matching criteria are defined).<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bookingRuleModels : ArrayList(
size == 1 ) from collect (<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BTExecutionBookingRuleModel(<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;priority == BTExecutionBookingRuleModel.LEVEL_1<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;&amp;&amp; eval(matchTraderCriterion(traderCriterion, $dealTrader))<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;&amp;&amp; eval(matchPortfolioCriterion(portfolioCriterion,
$dealPortfolio))<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;&amp;&amp; eval(matchIndexCriterion(listedIndexCriterion,
$dealProductIndexes))<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;&amp;&amp; eval(matchProductTypeCriterion(productTypeStringCriterion,
$dealProduct))<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)<br>
<br>
 &nbsp; &nbsp; &nbsp;then<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Logger log = LoggerFactory.getLogger(&quot;BOOKING
RULE ENGINE LOGGER&quot;);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// get the unique collected bookingRuleModel.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BTExecutionBookingRuleModel effectiveBookingRuleModel
= (BTExecutionBookingRuleModel) bookingRuleModels.get(0);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// log.info&lt;</font></tt><a href=http://log.info/><tt><font size=2>http://log.info</font></tt></a><tt><font size=2>&gt;(&quot;Found
matching level 1 booking rule --&gt; &quot; + effectiveBookingRuleModel);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;effectiveBookingRuleModel.applyRuleOnDeal(dealModel);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;retract( dealModel ); &nbsp;//
only needed in use of stateful session to avoid processing this deal again.<br>
<br>
end<br>
<br>
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.<br>
<br>
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).<br>
<br>
I also put some logs showing that inserting deals fact takes longer and
longer :<br>
<br>
- the 222 booking rule are inserted in 16ms<br>
<br>
- the 750 booking rule are inserted in 46ms<br>
<br>
- 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.<br>
<br>
2009-09-11 09:46:50 134 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
658 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:50 244 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
659 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:50 369 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
660 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:51 197 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
661 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:51 306 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
662 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:51 540 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
663 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:51 650 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
664 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:51 775 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
665 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:51 884 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
666 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:52 009 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
667 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:52 134 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
668 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:52 243 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
669 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:46:52 368 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
670 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:32 784 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
671 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 003 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
672 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 128 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
673 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 253 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
674 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 362 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
675 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 487 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
676 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 596 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
677 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 721 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
678 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 831 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
679 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:33 956 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
680 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:34 128 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
681 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 218 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
682 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 374 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
683 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 483 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
684 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 608 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
685 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 733 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
686 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 858 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
687 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:56 968 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
688 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:57 093 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
689 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:57 218 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
690 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:47:57 421 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
691 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:05 404 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
692 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:05 529 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
693 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:05 654 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
694 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:05 763 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
695 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:05 888 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
696 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:05 998 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
697 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:06 123 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
698 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:06 357 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
699 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:14 184 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
700 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:14 293 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
701 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:14 418 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
702 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:14 543 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
703 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:14 668 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
704 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:14 856 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
705 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:22 761 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
706 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:22 886 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
707 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:22 995 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
708 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:23 120 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
709 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:23 323 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
710 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:32 166 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
711 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:32 290 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
712 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:32 400 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
713 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:32 634 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
714 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:40 570 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
715 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:40 695 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
716 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:40 899 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
717 MarketDealModel inserted in Drools session<br>
</font></tt>
<br><tt><font size=2>2009-09-11 09:48:48 850 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
718 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:48 975 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
719 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:49 272 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
720 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:57 209 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
721 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:48:57 505 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
722 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:49:05 598 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
723 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:49:13 722 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
724 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:49:21 752 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
725 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:49:29 813 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
726 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:49:37 921 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
727 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:49:53 809 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
728 MarketDealModel inserted in Drools session<br>
<br>
2009-09-11 09:50:26 507 INFO &nbsp;[booking.impl.DealBookingProcessorImpl]
729 MarketDealModel inserted in Drools session<br>
<br>
Exception in thread &quot;Timer-0&quot; java.lang.OutOfMemoryError: Java
heap space<br>
<br>
 &nbsp; &nbsp; &nbsp;at java.lang.Object.clone(Native Method)<br>
<br>
 &nbsp; &nbsp; &nbsp;at java.util.LinkedList.clone(LinkedList.java:830)<br>
<br>
 &nbsp; &nbsp; &nbsp;at com.mchange.v2.resourcepool.BasicResourcePool.cloneOfUnused(BasicResourcePool.java:1661)<br>
<br>
 &nbsp; &nbsp; &nbsp;at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1450)<br>
<br>
 &nbsp; &nbsp; &nbsp;at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)<br>
<br>
 &nbsp; &nbsp; &nbsp;at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)<br>
<br>
 &nbsp; &nbsp; &nbsp;at java.util.TimerThread.mainLoop(Timer.java:512)<br>
<br>
 &nbsp; &nbsp; &nbsp;at java.util.TimerThread.run(Timer.java:462)<br>
<br>
Exception in thread &quot;Ice.ThreadPool.Server-1&quot; java.lang.OutOfMemoryError:
Java heap space<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.mvel2.integration.impl.ClassImportResolverFactory.&lt;init&gt;(ClassImportResolverFactory.java:49)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.mvel2.MVEL.executeExpression(MVEL.java:978)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:75)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.rule.PredicateConstraint.isAllowedCachedLeft(PredicateConstraint.java:295)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.common.SingleBetaConstraints.isAllowedCachedLeft(SingleBetaConstraints.java:138)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:114)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:57)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)<br>
<br>
 &nbsp; &nbsp; &nbsp;at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:216)<br>
<br>
 &nbsp; &nbsp; &nbsp;at north.stardust2.services.trading.booking.impl.DealBookingProcessorImpl.insertDealFacts(DealBookingProcessorImpl.java:200)<br>
<br>
So to summarize my questions :<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp; how can I fix the facts insertion ?<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp; is there some newbie mistakes in my approach
?<br>
<br>
Thanks in advance for your help,<br>
<br>
Regards,<br>
<br>
Jo?l Costigliola<br>
<br>
________________________________<br>
<br>
<br>
<br>
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.<br>
<br>
<br>
<br>
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.<br>
<br>
________________________________<br>
________________________________<br>
<br>
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.<br>
<br>
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.<br>
________________________________<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
rules-users@lists.jboss.org&lt;</font></tt><a href="mailto:rules-users@lists.jboss.org"><tt><font size=2>mailto:rules-users@lists.jboss.org</font></tt></a><tt><font size=2>&gt;<br>
</font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2>
<br>
<br>
--------------------------------------------------------<br>
<br>
 <br>
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.<br>
 <br>
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.<br>
--------------------------------------------------------<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: </font></tt><a href="http://lists.jboss.org/pipermail/rules-users/attachments/20090911/48120565/attachment.html"><tt><font size=2>http://lists.jboss.org/pipermail/rules-users/attachments/20090911/48120565/attachment.html</font></tt></a><tt><font size=2>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
rules-users@lists.jboss.org<br>
</font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2><br>
<br>
<br>
End of rules-users Digest, Vol 34, Issue 38<br>
*******************************************<br>
</font></tt><br>
<br>
<br><pre>=====-----=====-----=====
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


</pre>