Returned mail: see transcript for details
by The Post Office
This message was not delivered due to the following reason(s):
Your message was not delivered because the destination server was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.
Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.
Your message was not delivered within 5 days:
Mail server 219.151.223.52 is not responding.
The following recipients did not receive this message:
<rules-dev(a)lists.jboss.org>
Please reply to postmaster(a)lists.jboss.org
if you feel this message to be in error.
16 years
Guvnor in hosted mode
by Mulcahy, Lawrence
Hope this is the right list for this question... A typical GWT application
can be brought up in 'hosted' mode for development with the command
ant hosted
Is there a way to do this for Drools Guvnor?
Thanks,
Larry
16 years
Issue with ResourceChangeScanner
by Steve Ronderos
Hello Dev List,
I encountered an issue today with my KnowledgeAgent removing resources
from its RuleBase shortly after creating it. I have the
ResourceChangeScanner running in my application.
I tracked the issue back to the scan() method in
ResourceChangeScannerImpl. It appears that the method is trying to
identify resources that are no longer available and remove them from both
the RuleBase and future scans. To do this it is checking lastModified on
the resource and on a result of 0 removing the resource. The resources
that I configured in my change-set definitely still exist, but due to URL
handler implementation provided by my classloader, getLastModified always
returns 0. (The resource I'm retrieving is coming from a jar that is in
my application's classpath and the URL handler implementation is
oracle.classloader.SharedCodeSourceURL)
Do you think it would be possible for the scan to identify unavailable
resources some other way than with the lastModified? and then if
lastModified is 0 maybe always or never update the resource? I'm not sure
what the best approach to that would be, but removing resources when their
lastModified is 0 seems incorrect to me.
Thanks,
Steve Ronderos
16 years
Re: [rules-dev] [rules-users] Better way to run each rule once?
by James Owen
Greetings:
I have watched this thread with interest as person after person had
another solution. Perhaps mine would be the simplest. If we stop to
think about what IS a rulebase and remember that it is part of the AI
approach and originally intended to solve extremely complex problems
then the answer (OK, the answer to me without sufficient information)
is that this is not a rulebase problem. The whole thing "sounds like"
a procedural problem where values are modified and rules are fired
only once. (Remember - I don't have the whole project requirements
nor what was really needed in front of me.) This is not a rulebase
(think AI, complex) problem at all. That, together with the
revelation that there are no Thing objects asserted on the RHS (and
probably not any objects at all) means that this is not a forward nor
backward chaining problem. It is procedural and should have been
solved with Java, C, C++ or something of that nature.
OK, preaching time is over. Back to work, Serfs!! :-)
One last thing. Considering that the quality of the October Rules
Fest went WAY up (the best, maybe, since the Dartmouth Conference in
1956) and the registrations went down, I get the feeling that geeks
either are not interested in this kind of thing OR that the geeks can
not get the money to go to a conference. The money for going to a
conference seems to go to the Marketing departments and Business
Analysts, not geeks. After all, we (the geeks, techies, IT guys,
whatever the nomenclature is in your particular company) are supposed
to learn this stuff on our own. In my opinion, it can be done that
way with 10 to 15 years devotion to the art and science of AI in
general and RBS in particular. Now, all that being said, maybe you
(the geek) need to take a weeks vacation, spend your own money and
come to ORF 2009. It could jolly well be the last one for a while.
So, like Woodstock, if you missed it, you missed it. There never was
another one of the quality and magnitude. And only those who were
there could talk about what happened and why it was so totally awesome.
SDG
James Owen
Founder October Rules Fest
Senior Consultant / Architect KBSC
http://www.kbsc.com
http://www.OctoberRulesFest.org
Twitter: OctRulesFest
Blogs:
http://JavaRules.blogspot.com [Rulebased Systems Blog]
http://ORF2009.blogspot.com [October Rules Fest Blog]
http://exscg.blogspot.com/ [Expert Systems Consulting Group Blog]
"If I have seen a little further it is by standing on the shoulders of
giants."
Sir Isaac Newton in a letter to Robert Hooke, 5 Feb 1676
Come to October Rules Fest and stand on the shoulders of the Giants of
the industry; if only for a week.
On Oct 9, 2009, at 4:46 PM, Dave Schweisguth wrote:
> Fellow Droolers,
>
> On Fri, Oct 09, 2009 at 09:33:38AM +0100, Anstis, Michael (M.) wrote:
>> From: Dave Schweisguth <dave(a)schweisguth.org>
>>> Each of our rules modifies the fact it matches. We'd like to run
>>> each of
>>> those rules exactly once, not reactivating them when a fact changes.
>>> [...]
>>
>> You could look into using a sequential RETE network
>>
>> http://blog.athico.com/2007/07/sequential-rete.html
>>
>> http://www.redhat.com/docs/manuals/jboss/jboss-soa-4.2/html/JBoss_Rules_
>> Manual/ch02s05s10.html
>>
>> But as Greg suggests, better understanding your use-case might
>> furnish
>> other ideas.
>
> First, SequentialOption seems to be exactly what I was looking for;
> many
> thanks. I set it and removed my AgendaFilter and my tests all pass,
> and
> faster.
>
> Nonetheless here's the use case for those interested: My principal
> facts are
> objects which I'll call Things which have an ID, a bunch of properties
> (unmodifiable fields), and a bunch of named numeric attributes which
> to keep
> things simple I'll treat as a Map<String, Long>. The goal of the
> rules is to
> calculate the attributes.
>
> A typical rule looks like
>
> when thing: Thing(description matches ".*leaves.*")
> then modify (thing) { attributes.green = 100 }
>
> Clearly one wants a rule like this to run only once. Since in a
> given rules
> session there are multiple rules like this, no-loop wasn't
> sufficient; after
> one rule fired it would activate another already-run rule on the
> same Thing,
> and then vice versa, forever. With all the rules in the same
> ruleflow group
> lock-on-active was too much in that it allowed only one rule to run.
> (It
> occurs to me now that I might have made each rule no-loop and run it
> in a
> new session; fortunately I don't seem to have to try that now.)
> SequentialOption seems to fit this use case perfectly. Of course
> I'll be
> interested if anyone has a still better way to address it.
>
> Side note: Wolfgang, you were wondering why my AgendaFilter needed the
> Identifiable interface. You can see from the above that if I wanted to
> prevent a rule from firing more than once on the same Thing, I'd
> need to
> recognize the Thing after the rule fired and its attributes (which
> affect
> .equals and .hashCode) changed. It occurs to me now that I could
> just have
> used object identity (==), since rules don't assert new Things. A
> form of
> equals which considered only Thing's ID would also have been more
> correct
> than my hashCode-like solution. Fortunately I no longer need this
> approach
> at all.
>
> Thanks all for your interest and support!
>
> Cheers,
>
> --
> | Dave Schweisguth http://schweisguth.org/~dave/
> |
> | Home: dave at schweisguth.org Work: http://www.nileguide.com/
> |
> | For compliance with the NJ Right to Know Act: Contents partially
> unknown |
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
16 years
Drools Flow Persisternce Stack Overflow Error
by premkumar
Hi
I am new to drools flow and trying to use the persistence using
JPAKnowledgeService. When i tried that got the stack overflow error in H2
db.
Can any one provide the guidance how to resolve this.
The exception trace is below
Hibernate: insert into SessionInfo (id, dirty, lastModificationDate,
rulesByteArray, startDate) values (null, ?, ?, ?, ?)
After the persistence Session @@@@@@
Oct 6, 2009 2:42:21 PM bitronix.tm.twopc.Preparer prepare
WARNING: executing transaction with 0 enlisted resource
Oct 6, 2009 2:42:21 PM bitronix.tm.twopc.Preparer prepare
WARNING: executing transaction with 0 enlisted resource
Oct 6, 2009 2:42:22 PM bitronix.tm.twopc.Preparer prepare
WARNING: executing transaction with 0 enlisted resource
Hibernate: insert into ProcessInstanceInfo (processInstanceId,
externalVariables, lastModificationDate, lastReadDate, processId,
processInstanceByteArray, startDate, state, OPTLOCK) values (null, ?, ?, ?,
?, ?, ?, ?, ?)
Hibernate: insert into WorkItemInfo (workItemId, creationDate, name,
processInstanceId, state, OPTLOCK, workItemByteArray) values (null, ?, ?, ?,
?, ?, ?)
Executing work item WorkItem 22 [name=Human Task, state=0,
processInstanceId=21, parameters{ActorId=Admin, Comment=Raise Tk Request,
Skippable=false, TaskName=Raise Tk Request}]
Hibernate: update ProcessInstanceInfo set externalVariables=?,
lastModificationDate=?, lastReadDate=?, processId=?,
processInstanceByteArray=?, startDate=?, state=?, OPTLOCK=? where
processInstanceId=? and OPTLOCK=?
Hibernate: insert into ProcessInstanceInfo_eventTypes
(ProcessInstanceInfo_processInstanceId, element) values (?, ?)
Hibernate: delete from WorkItemInfo where workItemId=? and OPTLOCK=?
Hibernate: update SessionInfo set dirty=?, lastModificationDate=?,
rulesByteArray=?, startDate=? where id=?
****** ut ******* a BitronixTransactionManager with 0 in-flight
transaction(s)
Oct 6, 2009 2:42:22 PM bitronix.tm.BitronixTransaction
fireBeforeCompletionEvent
WARNING: Synchronization.beforeCompletion() call failed for
org.hibernate.ejb.AbstractEntityManagerImpl$1@1824d2c, marking transaction
as rollback only
javax.persistence.PersistenceException: java.lang.RuntimeException:
java.lang.StackOverflowError
at
org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:516)
at
bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:366)
at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:142)
at
bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:258)
at
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.insert(CommandBasedStatefulKnowledgeSession.java:305)
at com.sample.POCTestClient.main(POCTestClient.java:57)
Caused by: java.lang.RuntimeException: java.lang.StackOverflowError
at org.hibernate.ejb.event.BeanCallback.invoke(BeanCallback.java:31)
at
org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:80)
at
org.hibernate.ejb.event.EntityCallbackHandler.preUpdate(EntityCallbackHandler.java:65)
at
org.hibernate.ejb.event.EJB3FlushEntityEventListener.invokeInterceptor(EJB3FlushEntityEventListener.java:41)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:330)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:270)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:151)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
at
org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)
... 6 more
Caused by: java.lang.StackOverflowError
thanks
Prem
--
View this message in context: http://www.nabble.com/Drools-Flow-Persisternce-Stack-Overflow-Error-tp257...
Sent from the drools - dev mailing list archive at Nabble.com.
16 years
compilation failure on trunk
by Geoffrey De Smet
When I try "mvn clean install -DskipTests", I get this (java version
"1.6.0_16"):
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Compilation failure
/home/ge0ffrey/projects/jboss/drools/drools-core/src/main/java/org/drools/concurrent/ExternalExecutorService.java:[31,7]
org.drools.concurrent.ExternalExecutorService is not abstract and does
not override abstract method <T>invokeAny(java.util.Collection<? extends
java.util.concurrent.Callable<T>>,long,java.util.concurrent.TimeUnit) in
java.util.concurrent.ExecutorService
/home/ge0ffrey/projects/jboss/drools/drools-core/src/main/java/org/drools/concurrent/ExternalExecutorService.java:[31,7]
org.drools.concurrent.ExternalExecutorService is not abstract and does
not override abstract method <T>invokeAny(java.util.Collection<? extends
java.util.concurrent.Callable<T>>,long,java.util.concurrent.TimeUnit) in
java.util.concurrent.ExecutorService
--
With kind regards,
Geoffrey De Smet
16 years