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
16 years, 7 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.
16 years, 7 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.
16 years, 7 months
Re: [rules-users] MySQL / Postgres With Human Task Process Sample
by Al ITF
Did anyone resolve this?
I've stumbled across the same issue trying to get "org.drools.task" working
with MS SqlServer.
Mauricio Salatino wrote:
>
> Take it easy man... I have here Drools Flow running with PostgreSQL I will
> try to package the project and then publish it in my blog.. I will send
> you
> the link when it's ready..
>
> 2009/7/24 JunckyUser <rafiuddin.mk(a)gmail.com>
>
>> I Don't think Drools Flow is used by this user-list group. I am searching
>> at wrong place. Can any one help me in getting a "link or sample on MySQL
>> or
>> Postgress with Human Task process"............
>>
>> JunckyUser wrote:
>> Hi, New to Drools, can any one provide a link or sample
>> on...<http://www.nabble.com/user/SendEmail.jtp?type=post&post=24639830&i=0>MySQL
>> Human Task process. Cristiano Gavião have you able to solve your
>> issues mentioned in this thread. Thanks in Advance...
>>
>> Cristiano Gavião wrote:
>> Hi, I was trying to change the persistence settings for human task
>> process
>> server for using MySQL instead of H2DB. I was following the Drools Flows
>> Documentation on chapter 5.1.3.: Configuring Persistence.(
>> https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/t...)
>> I read on docs that I should override the persistence.xml of the
>> drools-process-enterprise.jar, create the drools.session.conf with some
>> contents (i don`t undestand` what it is...) and put them on my project
>> META-INF directory... ok? I created the files as stated on docs but it
>> didn't work... My example runned ok, but using the H2DB and not my MYSQL.
>> //
>> Use persistence.xml configuration emf =
>> Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
>> taskService = new TaskService(emf); taskSession =
>> taskService.createSession(); server = new MinaTaskServer(taskService);
>> Thread thread = new Thread(server); thread.start(); Thread.sleep(500);
>> System.out.println("Server started ..."); After some investigation I
>> could
>> see that the example recommended by Mark Proctor (TaskLifeCycleTest.java,
>> and others that use MinaTaskServer) use that is setting on
>> drools-process-task.jar and not the "org.drools.persistence.jpa" on
>> drools-process-enterprise.jar as stated on documentation... First
>> question,
>> which one should I use for use the Drools Flows Server and Client? emf =
>> Persistence.createEntityManagerFactory( "org.drools.task" ); emf =
>> Persistence.createEntityManagerFactory("org.drools.persistence.jpa"); I
>> test
>> the first option. I changed the persistence.xml file and use the code
>> below:
>> // Use persistence.xml configuration emf =
>> Persistence.createEntityManagerFactory("org.drools.task"); taskService =
>> new
>> TaskService(emf); taskSession = taskService.createSession(); server = new
>> MinaTaskServer(taskService); Thread thread = new Thread(server);
>> thread.start(); Thread.sleep(500); System.out.println("Server started
>> ...");
>> Hummm.... It runs and connect well to my MySQL. but now it brings me a
>> error... java.lang.IllegalArgumentException: Named query not found:
>> UnescalatedDeadlines at org .hibernate .ejb .AbstractEntityManagerImpl
>> .createNamedQuery(AbstractEntityManagerImpl.java:108) at
>> org.drools.task.service.TaskService.(TaskService.java:84) at
>> org.drools.task.service.TaskService.(TaskService.java:68) It sounds like
>> it
>> was not possible to find orm.xml that is on META-INF of
>> drools-process-task.jar. But when I copy the orm.xml file to my project
>> META-INF it works ok.... Could someone give some ideas how can I solve
>> this
>> problem.. Thanks a lot Cristiano
>> _______________________________________________ rules-users mailing list
>> rules-users(a)lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>> ------------------------------
>> View this message in context: MySQL / Postgres With Human Task Process
>> Sample<http://www.nabble.com/Problems-setting-MySQL-for-the-human-task-process-s...>
>> Sent from the drools - user mailing list
>> archive<http://www.nabble.com/drools---user-f11823.html>at Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
>
> --
> - http://salaboy.wordpress.com
> - http://www.jbug.com.ar
> - Salatino "Salaboy" Mauricio -
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
View this message in context: http://www.nabble.com/Problems-setting-MySQL-for-the-human-task-process-s...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 7 months
Queries vs Rules with same LHS
by Dave McLoughlin
I'm looking for more information on how queries are handled/processed in
the Drools rule engine v. 4.0.7? I am specifically interested on a
computational cost of a query compared to a rule with the same LHS. As I
understand a rule will match on any single fact that fulfills LHS. On
the other hand a query will provide all facts that fulfill its LHS. How
much more does this cost?
Is there a best practice doc or article on this type of information?
Dave
16 years, 7 months
KnowledgeAgent Log Level
by Andrew Waterman
Hi,
I'm wondering if there is a way to manipulate the log level for the
KnowledgeAgent. Currently, I'm getting dumps to the console that I'd
like to control:
> [2009:09:253 17:09:371:info] KnowledgAgent applying ChangeSet
> [2009:09:253 17:09:371:debug] KnowledgeAgent subscribing to
> resource=[ClassPathResource path='mx/ecosur/multigame/impl/
> manantiales.drl']
> [2009:09:253 17:09:371:debug] ResourceChangeNotification subscribing
> listener=org.drools.agent.impl.KnowledgeAgentImpl@3ebfd8 to
> resource=[ClassPathResource path='mx/ecosur/multigame/impl/
> manantiales.drl']
> [2009:09:253 17:09:372:debug] KnowledgeAgent ChangeSet requires
> KnowledgeBuilder
> [2009:09:253 17:09:372:debug] KnowledgeAgent rebuilding
> KnowledgeBase using ChangeSet
> [2009:09:253 17:09:373:debug] KnowledgeAgent building
> resource=[ClassPathResource path='mx/ecosur/multigame/impl/
> manantiales.drl']
> [2009:09:253 17:09:420:info] KnowledgeAgent new KnowledgeBase now
> built and in use
Thanks!
best wishes,
Andrew
---------------------------------
Andrew Waterman
San Cristóbal de las Casas, Chiapas, Mexico
16 years, 7 months
Unable to map process variables into WorkItem.
by Stuart Grimshaw
-----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-----
16 years, 7 months
Drools and Eclipse 3.5
by J Michael Dean
Sorry because I am sure this has been answered, but cannot find.
Compelling reasons to switch to Eclipse 3.5 because of recent changes
to Mac OSX but documentation pretty clearly indicates 3.4 for Drools
5.0. Is Drools 5.0 compatible with Eclipse 3.5?
- Mike
16 years, 7 months
Problem with JPA session persistence in Drools Flow (5.0.1)
by Alan.Gairey@tessella.com
I'm currently using Drools Flow with JPA session persistence enabled as
described in section 5.1 of the User Guide.
As a process executes, session information is saved to the H2 database
correctly.
The problem comes if a process only executes part way through, and I then
try to finish the process by recreating a session using the code:
// recreate the session from database using the sessionId
ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( sessionId,
kbase, null, env );
This gives me a NullPointerException.
Having looked into the Drools Flow source code, I think the problem is in
the class
drools-persistence-jpa\src\main\java\org\drools\persistence\session\SingleSessionCommandService.java.
The 4th constructor of this class is called as part of the loading of a
knowledge session from the H2 database; this in turn leads to the
afterCompletion method of the inner class SynchronizationImpl being
called. The final two lines of this method are:
((JPAProcessInstanceManager) ((ReteooWorkingMemory)
session).getProcessInstanceManager()).clearProcessInstances();
((JPAWorkItemManager) ((ReteooWorkingMemory)
session).getWorkItemManager()).clearWorkItems();
However, when called via the route described above, the session member
variable of SingleSessionCommandService has not been set, thus causing the
NullPointerException.
(Interestingly, running the unit tests for drools-persistence-jpa does
result in the NullPointerException being thrown multiple times, although
the tests are still listed as having passed.)
I believe enclosing the above two lines as follows will fix the problem:
if (session != null) {
((JPAProcessInstanceManager) ((ReteooWorkingMemory)
session).getProcessInstanceManager()).clearProcessInstances();
((JPAWorkItemManager) ((ReteooWorkingMemory)
session).getWorkItemManager()).clearWorkItems();
}
Also, in the 4th constructor of SingleSessionCommandService, after the
session has been set, the following line needs to be added to ensure the
session id is the same as the session info id:
((ReteooStatefulSession) this.session).setId( this.sessionInfo.getId() );
(This line is present at the end of the 3rd constructor.)
It would be great if this fix could make it into the Drools 5.1 release.
Thanks.
16 years, 7 months