Progress Monitors?
by Raffi Khatchadourian
Any plans to support eclipse progress monitors in the drools API?
16 years, 7 months
Generics?
by Raffi Khatchadourian
Any plans to incorporate generics into the drools API?
16 years, 7 months
Inserting (asserting) objects during LHS evaluation - side effects?
by Lance Arlaus
All-
What are the potential side effects of asserting objects during LHS
evaluation, specifically a FROM clause?
For example, using the example from the docs, let's assume that the
zipcode property is in fact a field that's calculated via business
rules. So, I'd like to perform just-in-time insertion of the person's
address and perhaps other objects as well necessary to the calculation.
In other words, I'd like to implicitly assert objects on-demand as
they're needed. For the curious, this is something that's possible in
Blaze Advisor using their is-needed rules, and for which I'm attempting
to find a corresponding capability in Drools.
I guess it comes down to the question of whether insertObject() is
reentrant. Anybody have a clue? Or another way of approaching this?
For reference, here's the documentation example using the from clause:
rule "validate zipcode"
when
Person( $personAddress : address )
Address( zipcode == "23920W") from $personAddress
then
# zip code is ok
end
16 years, 7 months
Compiling .drl files to .pkg files
by WebDev Freak
Hi, I am looking to compile my .drl files into .pkg file to store in a
database. I was wondering if there are ant scripts availble to do this. I
looked quite a lot but didn't find any that specifically did this. Thanks
for any help.
16 years, 7 months
RuleAgent DOES NOT connect to the JBRMS....WHYYY?????? :-(
by mmquelo massi
Hi there,
First of all I have got to say that I tried the following :
Jboss 4.0.5
Jboss 4.2.2
jbrms 4.0.2
jbrms 4.0.3
jbrms 4.0.4
jbrms 4.0.x (SVN first days of march)
I tried all the possible combinations between those above.
Then let me show u my scenario.
I have got a client which sends a "contract id" to a queue.
Then an MDB is invoked to pass that "id" to an deserializer which builds up
a "contract object".
Once I have got the "contract object" I pass it to Drools in order
to perform some reasoning over it and to get back a reply from
the engine.
*Let me show you how my application "Uses drools":*
*public* *static* *synchronized* *final* WorkingMemoryEventManager
getSession(*boolean* statefull) {
*log*.info("Getting Agent Singleton from: "+Thread.*currentThread*
().getName());
*if* ( *ruleagent* == *null* ) {
*try* {
*ruleagent* = *BRMS_RuleAgent*();
} *catch* (Exception e) {
e.printStackTrace();
}
}
*if* (statefull){
*rulebase* = *ruleagent*.getRuleBase();
*session* = *rulebase*.newStatefulSession();
}
*else* {
*rulebase* = *ruleagent*.getRuleBase();
*session* = *rulebase*.newStatelessSession();
}
*log*.info("Releasing Agent Singleton from: "+Thread.*currentThread*
().getName());
*return* *session*;
}
As You can see I can get either a statefull session or a stateless one in a
thread-safe way.
Let's say i always get a stateless one.
*The Ruleagent is used as follows:*
*private* *static* RuleAgent BRMS_RuleAgent() *throws* Exception {
RuleAgent agent = RuleAgent.*newRuleAgent*("/brmsdeployedrules.properties");
//add the package to a rulebase (deploy the rule package).
*return* agent;
}
*I configured the ruleagent to "newInstance=true", with a refresh of 5 secs
and localcachedir=.*
So, everytime the contract comes to be evaluated i call a *getSession*() in
order
to load the rulebase.
In EVERY AServer and with EACH JBRMS version, the the RuleAgent seems can't
connect
to the rulebase and so it simply loads the rules from the cache.
Furthermore if I change the jbrms rules, the RuleAgent really DOES NOT CARE
about it and we know that after 5 seconds it should AUTOMATICALLY refresh
the
rulebase but at the end IT DOES NOT DO ANYTHING!
*After a while I also get back the following error message:*
*11:17:06,219 ERROR [[/drools-jbrms]] Exception while dispatching incoming
RPC call
11:17:09,997 ERROR [[GWTRemotingServlet]] Servlet.service() for servlet
GWTRemotingServlet threw exc
eption
java.lang.OutOfMemoryError: PermGen space
11:17:10,005 INFO [Log4jService$URLWatchTimerTask] Configuring from URL:
resource:jboss-log4j.xml
11:17:10,890 ERROR [CoyoteAdapter] An exception or error occurred in the
container during the reques
t processing*
*And after it the AS REALLY CRASHES and one more of my hairs BECOMES WHITE
!!!! :( :(*
*To be more clear let me show you what happens if I execute drools*
*with jboss 405 and jbrms 404, without the ruleagent cache activated:*
*11:50:18,275 INFO [DroolsServiceProvider] Getting Agent Singleton from:
JMS SessionPool Worker-0
11:50:18,331 ERROR [STDERR] RuleAgent(RuleAgentMassi) INFO (Sat Aug 04
11:50:18 CEST 2007): Configuring with newInstance=true, secondsToRefresh=5
11:50:18,336 ERROR [STDERR] RuleAgent(RuleAgentMassi) INFO (Sat Aug 04
11:50:18 CEST 2007): Configuring package provider : URLScanner monitoring
URLs: **http://127.0.0.1:8080/drools-jbrms/org.drools.br*<http://127.0.0.1:8080/drools-jbrms/org.drools.brms.JBRMS/package/com.spyd...>
*ms.JBRMS/package/com.spyd.rules.initAction/initAction<http://127.0.0.1:8080/drools-jbrms/org.drools.br>
**http://127.0.0.1:8080/drools-jbrms/org.drools*<http://127.0.0.1:8080/drools-jbrms/org.drools>
*.
brms.JBRMS/package/com.spyd.rules.ConsolidateData/ConsolidateData **
http://127.0.0.1:8080/droolsjbrms*<http://127.0.0.1:8080/droolsjbrms/org.drools.brms.JBRMS/package/com.spyd....>
*
/org.drools.brms.JBRMS/package/com.spyd.rules.DetermineConnection/DetermineConnection<http://127.0.0.1:8080/drools-jbrms>
11:50:19,840 INFO [STDOUT] PackageName: com.spyd.rules.initAction
11:50:19,841 INFO [STDOUT] PackageVersion: initAction
11:50:19,841 INFO [STDOUT] PackageIsLatest: false
11:50:20,559 ERROR [STDERR] RuleAgent(RuleAgentMassi) EXCEPTION (Sat Aug 04
11:50:20 CEST 2007): org
.drools.base.dataproviders.MVELDataProvider; local class incompatible:
stream classdesc serialVersio
nUID = 6980593313545470049, local class serialVersionUID =
1901006343031798173. Stack trace should f
ollow.11:50:20,563 ERROR [STDERR] java.io.InvalidClassException:
org.drools.base.dataproviders.MVELDataPro
vider; local class incompatible: stream classdesc serialVersionUID =
6980593313545470049, local class serialVersionUID = 1901006343031798173
11:50:20,564 ERROR [STDERR] at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
11:50:20,565 ERROR [STDERR] at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
11:50:20,566 ERROR [STDERR] at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
...
11:50:20,581 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:20,583 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:20,583 ERROR [STDERR] at
java.util.HashMap.readObject(HashMap.java:1029)
11:50:20,584 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:50:20,584 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
11:50:20,585 ERROR [STDERR] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
11:50:20,586 ERROR [STDERR] at
java.lang.reflect.Method.invoke(Method.java:597)
11:50:20,587 ERROR [STDERR] at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
11:50:20,588 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
11:50:20,589 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
...
11:50:20,604 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:20,605 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:20,605 ERROR [STDERR] at
java.util.HashMap.readObject(HashMap.java:1029)
11:50:20,606 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:50:20,606 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
11:50:20,607 ERROR [STDERR] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
11:50:20,608 ERROR [STDERR] at
java.lang.reflect.Method.invoke(Method.java:597)
11:50:20,609 ERROR [STDERR] at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
11:50:20,610 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
11:50:20,611 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:20,612 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:20,613 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:20,614 ERROR [STDERR] at
org.drools.rule.Package.readExternal(Package.java:194)
11:50:20,615 ERROR [STDERR] at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
11:50:20,616 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
11:50:20,617 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:20,618 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:20,618 ERROR [STDERR] at
org.drools.agent.HttpClientImpl.fetchPackage(HttpClientImpl.java:54)
11:50:20,619 ERROR [STDERR] at
org.drools.agent.URLScanner.readPackage(URLScanner.java:137)
11:50:20,620 ERROR [STDERR] at
org.drools.agent.URLScanner.getChangeSet(URLScanner.java:109)
11:50:20,621 ERROR [STDERR] at
org.drools.agent.URLScanner.loadPackageChanges(URLScanner.java:88)
11:50:20,622 ERROR [STDERR] at
org.drools.agent.RuleAgent.checkForChanges(RuleAgent.java:330)
11:50:20,622 ERROR [STDERR] at
org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:298)
11:50:20,623 ERROR [STDERR] at
org.drools.agent.RuleAgent.configure(RuleAgent.java:284)
11:50:20,623 ERROR [STDERR] at
org.drools.agent.RuleAgent.init(RuleAgent.java:208)
11:50:20,624 ERROR [STDERR] at
org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:176)
11:50:20,624 ERROR [STDERR] at
org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:148)
11:50:20,625 ERROR [STDERR] at
org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:216)
11:50:20,626 ERROR [STDERR] at
com.spyd.ruleEngine.DroolsServiceProvider.BRMS_RuleAgent(DroolsServiceProvider.java:75)
11:50:20,627 ERROR [STDERR] at
com.spyd.ruleEngine.DroolsServiceProvider.getSession(DroolsServiceProvider.java:48)
11:50:20,628 ERROR [STDERR] at
com.spyd.ruleEngine.DroolsService.executeRules(DroolsService.java:29)
11:50:20,629 ERROR [STDERR] at
com.spyd.ruleEngine.RuleServiceManager.executeRules(RuleServiceManager.java:13)
...
11:50:20,649 ERROR [STDERR] at
org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:987)
11:50:20,650 ERROR [STDERR] at
org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1287)
11:50:20,652 ERROR [STDERR] at
org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266)
11:50:20,653 ERROR [STDERR] at
org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:905)
11:50:20,654 ERROR [STDERR] at
org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
11:50:20,655 ERROR [STDERR] at
org.jboss.mq.SpySession.run(SpySession.java:323)
11:50:20,655 ERROR [STDERR] at
org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)*
*11:50:20,657 ERROR [STDERR] at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
11:50:20,658 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
11:50:20,679 INFO [DroolsServiceProvider] Releasing Agent Singleton from:
JMS SessionPool Worker-0
11:50:20,793 INFO [SPYDBusinessController] [BENCH]RULE-SERVICE REPLIED**
11:50:20,813 INFO [SPYDBusinessMDB] [BENCH]SPYDBusinessController returned
- ok
11:50:20,942 WARN [JDBCExceptionReporter] SQL Error: 1400, SQLState: 23000
**11:50:21,985 WARN [DLQHandler] Message resent too many times; sending it
to DLQ; message id=ID:5-11862210130371
11:50:25,784 INFO [STDOUT] PackageName: com.spyd.rules.ConsolidateData
11:50:25,784 INFO [STDOUT] PackageVersion: ConsolidateData
11:50:25,785 INFO [STDOUT] PackageIsLatest: false
11:50:26,008 ERROR [STDERR] RuleAgent(RuleAgentMassi) EXCEPTION (Sat Aug 04
11:50:26 CEST 2007): org
.drools.base.dataproviders.MVELDataProvider; local class incompatible:
stream classdesc serialVersio
nUID = 6980593313545470049, local class serialVersionUID =
1901006343031798173. Stack trace should follow.
11:50:26,010 ERROR [STDERR] java.io.InvalidClassException:
org.drools.base.dataproviders.MVELDataPro
vider; local class incompatible: stream classdesc serialVersionUID =
6980593313545470049, local clas
s serialVersionUID = 1901006343031798173
11:50:26,012 ERROR [STDERR] at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
11:50:26,014 ERROR [STDERR] at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
11:50:26,014 ERROR [STDERR] at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
...
11:50:26,038 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:26,039 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:26,040 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
...
11:50:26,054 ERROR [STDERR] at
org.drools.rule.Package.readExternal(Package.java:176)
11:50:26,055 ERROR [STDERR] at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
11:50:26,056 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
11:50:26,057 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:26,058 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:26,059 ERROR [STDERR] at
org.drools.agent.HttpClientImpl.fetchPackage(HttpClientImpl.java:54)
11:50:26,060 ERROR [STDERR] at
org.drools.agent.URLScanner.readPackage(URLScanner.java:137)
11:50:26,060 ERROR [STDERR] at
org.drools.agent.URLScanner.getChangeSet(URLScanner.java:109)
11:50:26,061 ERROR [STDERR] at
org.drools.agent.URLScanner.loadPackageChanges(URLScanner.java:88)
11:50:26,062 ERROR [STDERR] at
org.drools.agent.RuleAgent.checkForChanges(RuleAgent.java:330)
11:50:26,063 ERROR [STDERR] at
org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:298)
11:50:26,063 ERROR [STDERR] at
org.drools.agent.RuleAgent$2.run(RuleAgent.java:438)
11:50:26,064 ERROR [STDERR] at
java.util.TimerThread.mainLoop(Timer.java:512)
11:50:26,064 ERROR [STDERR] at java.util.TimerThread.run(Timer.java:462)
11:50:30,781 INFO [STDOUT] PackageName: com.spyd.rules.DetermineConnection
11:50:30,781 INFO [STDOUT] PackageVersion: DetermineConnection
11:50:30,782 INFO [STDOUT] PackageIsLatest: false
11:50:30,903 ERROR [STDERR] RuleAgent(RuleAgentMassi) EXCEPTION (Sat Aug 04
11:50:30 CEST 2007): org
.drools.base.dataproviders.MVELDataProvider; local class incompatible:
stream classdesc serialVersio
nUID = 6980593313545470049, local class serialVersionUID =
1901006343031798173. Stack trace should follow.
11:50:30,905 ERROR [STDERR] java.io.InvalidClassException:
org.drools.base.dataproviders.MVELDataPro
vider; local class incompatible: stream classdesc serialVersionUID =
6980593313545470049, local clas
s serialVersionUID = 1901006343031798173
11:50:30,908 ERROR [STDERR] at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
11:50:30,909 ERROR [STDERR] at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
11:50:30,910 ERROR [STDERR] at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
11:50:30,911 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
11:50:30,912 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,913 ERROR [STDERR] at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
11:50:30,915 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
11:50:30,917 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:30,918 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,919 ERROR [STDERR] at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
11:50:30,920 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
11:50:30,921 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:30,922 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,923 ERROR [STDERR] at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
11:50:30,924 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
11:50:30,926 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:30,927 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,928 ERROR [STDERR] at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
11:50:30,928 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
11:50:30,930 ERROR [STDERR] at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
11:50:30,931 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
11:50:30,932 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:30,933 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,934 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:30,935 ERROR [STDERR] at
java.util.HashMap.readObject(HashMap.java:1029)
11:50:30,935 ERROR [STDERR] at
sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
11:50:30,936 ERROR [STDERR] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
11:50:30,937 ERROR [STDERR] at
java.lang.reflect.Method.invoke(Method.java:597)
11:50:30,937 ERROR [STDERR] at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
11:50:30,938 ERROR [STDERR] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
11:50:30,939 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
11:50:30,941 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,942 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:30,942 ERROR [STDERR] at
org.drools.rule.PackageCompilationData.readExternal(PackageCompilationData.java:149)
11:50:30,943 ERROR [STDERR] at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
11:50:30,944 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
11:50:30,946 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,947 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:30,947 ERROR [STDERR] at
org.drools.rule.Package.readExternal(Package.java:176)
11:50:30,948 ERROR [STDERR] at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
11:50:30,949 ERROR [STDERR] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
11:50:30,950 ERROR [STDERR] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
11:50:30,951 ERROR [STDERR] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
11:50:30,952 ERROR [STDERR] at
org.drools.agent.HttpClientImpl.fetchPackage(HttpClientImpl.java:54)
11:50:30,953 ERROR [STDERR] at
org.drools.agent.URLScanner.readPackage(URLScanner.java:137)
11:50:30,953 ERROR [STDERR] at
org.drools.agent.URLScanner.getChangeSet(URLScanner.java:109)
11:50:30,954 ERROR [STDERR] at
org.drools.agent.URLScanner.loadPackageChanges(URLScanner.java:88)
11:50:30,955 ERROR [STDERR] at
org.drools.agent.RuleAgent.checkForChanges(RuleAgent.java:330)
11:50:30,955 ERROR [STDERR] at
org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:298)
11:50:30,956 ERROR [STDERR] at
org.drools.agent.RuleAgent$2.run(RuleAgent.java:438)
11:50:30,957 ERROR [STDERR] at
java.util.TimerThread.mainLoop(Timer.java:512)
11:50:30,957 ERROR [STDERR] at java.util.TimerThread.run(Timer.java:462)
11:50:47,012 INFO [STDOUT] ERROR 04-08 11:50:47,009
(Log4JLogger.java:error:119) Servlet.service() for servlet default
threw exception
java.lang.IllegalStateException: Cannot create a session after the response
has been committed
at
org.apache.catalina.connector.Request.doGetSession(Request.java:2214)
at
org.apache.catalina.connector.Request.getSession(Request.java:2024)
at
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:831)
at
org.jboss.seam.servlet.ServletRequestSessionMap.put(ServletRequestSessionMap.java:87)
at
org.jboss.seam.servlet.ServletRequestSessionMap.put(ServletRequestSessionMap.java:25)
at org.jboss.seam.contexts.BasicContext.set(BasicContext.java:80)
at org.jboss.seam.Component.newInstance(Component.java:1980)
at org.jboss.seam.Component.getInstance(Component.java:1878)
at org.jboss.seam.Component.getInstance(Component.java:1857)
at org.jboss.seam.Component.getInstance(Component.java:1834)
at org.jboss.seam.web.Session.getInstance(Session.java:122)
at
org.jboss.seam.contexts.Contexts.flushAndDestroyContexts(Contexts.java:375)
at org.jboss.seam.contexts.Lifecycle.endRequest(Lifecycle.java:132)
at
org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:65)
at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
*
* at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
*
* at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
** at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:619) could not discover
transaction status
*
**
Why DO I get the "*MVELDataProvider*" issue?
The horrible thing is that until 1 week ago It WORKED!
*I also HAD a BACKUP version where I copied all the Jboss directory!*
*The crazy thing is that if I just restore the Backup dir and i use "As it
was"*
*it DOES NOT WORK!!! I mean, it is the exact copy which worked perfectly
until*
*last week.....Why the hell it does not work now???*
I have always got the same OS (VISTA) and i did not update any
sensible component of my pc.
What Heppened then? Did I get the first drools virus ever? :(
Please help me. I really feel defeated.
ThankYou anyway.
Massi
16 years, 7 months
rules-users] guided rule editor
by Christine
hi,
just out of curiosity, and because one of our customers wants to use it, I
tried to open a rule file in the guided rule editor. I get an error:
"content not allowed in prolog". I opened the default rule file that you
get in a new project. I didn't know Drools has anything to do with prolog?
Christine
16 years, 7 months
"could not discover transaction status" with JBossAS 4.2.1-GA and Drools 4.0.4 BRMS
by janne@gofore.com
(hope I am not double posting too many times, I tried a few times from
Nabble but it looks like my message did not end up in the mailing list
after all)
Using the latest stable releases of JBoss AS and Drools BRMS seems to
bring problems.
1. Install JBoss 4.2.1-GA
2. Drop in drools-jbrms.war
I get this in the logs:
13:33:06,093 INFO [Server] JBoss (MX MicroKernel) [4.2.1.GA (build:
SVNTag=JBoss_4_2_1_GA date=200707131605)] Started i
n 29s:468ms
13:33:44,000 INFO [TomcatDeployer] deploy, ctxPath=/drools-jbrms,
warUrl=.../tmp/deploy/tmp58253drools-jbrms-exp.war/
13:34:15,406 INFO [STDOUT] Setting up the repository, registering node
types etc.
13:34:15,468 INFO [STDOUT] DEBUG 18-04 13:34:15,453
(JackrabbitRepositoryConfigurator.java:registerNodeTypesFromCndFile
:127) Attempting to regsiter node type named:
{http://www.jboss.org/drools-repository/1.0}categoryNodeType
13:34:15,531 INFO [STDOUT] DEBUG 18-04 13:34:15,531
(JackrabbitRepositoryConfigurator.java:registerNodeTypesFromCndFile
:127) Attempting to regsiter node type named:
{http://www.jboss.org/drools-repository/1.0}stateNodeType
13:34:15,546 INFO [STDOUT] DEBUG 18-04 13:34:15,546
(JackrabbitRepositoryConfigurator.java:registerNodeTypesFromCndFile
:127) Attempting to regsiter node type named:
{http://www.jboss.org/drools-repository/1.0}versionableNodeType
13:34:16,468 INFO [STDOUT] DEBUG 18-04 13:34:16,468
(JackrabbitRepositoryConfigurator.java:registerNodeTypesFromCndFile
:127) Attempting to regsiter node type named:
{http://www.jboss.org/drools-repository/1.0}versionableAssetFolder
13:34:16,515 INFO [STDOUT] DEBUG 18-04 13:34:16,515
(JackrabbitRepositoryConfigurator.java:registerNodeTypesFromCndFile
:127) Attempting to regsiter node type named:
{http://www.jboss.org/drools-repository/1.0}assetNodeType
13:34:16,937 INFO [STDOUT] DEBUG 18-04 13:34:16,828
(JackrabbitRepositoryConfigurator.java:registerNodeTypesFromCndFile
:127) Attempting to regsiter node type named:
{http://www.jboss.org/drools-repository/1.0}packageNodeType
13:34:17,078 INFO [STDOUT] DEBUG 18-04 13:34:17,078
(RulesRepository.java:addNodeIfNew:131) Adding new node of type
: nt:folder named: drools:repository to parent node named
13:34:17,078 INFO [STDOUT] DEBUG 18-04 13:34:17,078
(RulesRepository.java:addNodeIfNew:131) Adding new node of type
: nt:folder named: drools:package_area to parent node named drools:repository
13:34:17,078 INFO [STDOUT] DEBUG 18-04 13:34:17,078
(RulesRepository.java:addNodeIfNew:131) Adding new node of type
: nt:folder named: drools:packagesnapshot_area to parent node named
drools:repository
13:34:17,078 INFO [STDOUT] DEBUG 18-04 13:34:17,078
(RulesRepository.java:addNodeIfNew:131) Adding new node of type
: nt:folder named: drools:tag_area to parent node named drools:repository
13:34:17,093 INFO [STDOUT] DEBUG 18-04 13:34:17,078
(RulesRepository.java:addNodeIfNew:131) Adding new node of type
: nt:folder named: drools:state_area to parent node named drools:repository
13:34:17,093 INFO [STDOUT] DEBUG 18-04 13:34:17,093
(RulesRepository.java:addNodeIfNew:131) Adding new node of type
: drools:stateNodeType named: Draft to parent node named drools:state_area
13:34:23,890 INFO [STDOUT] ERROR 18-04 13:34:23,890
(Contexts.java:flushAndDestroyContexts:335) could not discover
transaction status
13:34:23,921 INFO [STDOUT] ERROR 18-04 13:34:23,921
(Contexts.java:flushAndDestroyContexts:335) could not discover
transaction status
The could not discover transaction status -error keeps repeating.
Is this a serious problem? From a quick look the webapp seems to work. One
thread
http://www.nabble.com/Drools-4.0.4-and-Jboss-4.2.2-GA-td16113554.html#a16...
suggested commenting out parts of web.xml, this just broke my webapp
completely. What's the logic behind the commenting-out, anyway?
16 years, 7 months
Software Licensing Question Related to Bundled Eclipse Jarfile, "core-3.2.3.v_686_R32x.jar"?
by WILLIAMS Kerry
Hello!
My apologies in advance if this isn't the correct list for this
question! I'm evaluating the possibility integrating Drools into an
project that I'm working on. I see from the packaging that Drools itself
uses the Apache License v2.0 which is fine for my purposes. The question
I have though is with Drools 4.0.4/4.0.5 Java-like rules language
plugin. To use the Java lang for the .drl file I'm required to include
an eclipse jar (core-3.2.3.v_686_R32x.jar) in my distribution. Which
license applies to that eclipse .jar? Is it the Eclipse license or the
Drools adoption of Apache 2.0?
Thanks for your time!
-Kerry
16 years, 7 months
Why double rule activation?
by Bagwell, Allen F
I've encountered rule engine behavior I'm knocking my head against the wall trying to figure out. I'm a Drools newbie, so please forgive if this I am doing something bone-headed wrong.
Basically I'm inserting an object into my working memory. The object itself has a default setting of 0.0 for a brightness value, and this setting matches the LHS condition for my first rule. The problem is the rule activates twice for a single object insertion as described in the audit log. It consequently executes twice when I fire all rules. Then whenever I change the value in question, any single update to the same object also causes double rule activation and execution.
The rules I've written are not complex. Here's my drl file:
package dimmerie;
#list any import classes here.
import knowledgebase.*;
import NipcLogger;
#declare any global variables here
global NipcLogger IELogger;
rule "Light is off"
when
$brightness : MyVariable(uniqueName == "ds1@brightness", currentValue == 0.0)
then
IELogger.info("DimmerSwitch1 has no brightness value");
end
rule "Light Below 50%"
when
$brightness : MyVariable(uniqueName == "ds1@brightness", currentValue < 0.50, currentValue > 0.0)
then
IELogger.info("DimmerSwitch1 is below 50% brightness");
end
rule "Light 50% or Above"
when
$brightness : MyVariable(uniqueName == "ds1@brightness", currentValue >= 0.5)
then
IELogger.info("DimmerSwitch1 is at or above 50% brightness");
end
I'm hoping I've described enough without having to post additional code. Can anyone suggest why this is happening?
Thanks,
Allen
16 years, 7 months
To insert facts or use the find clause?
by Raffi Khatchadourian
I would like to use Drools to reason about a graph structure using
queries. The graph consists of a collection of nodes, which in turn each
have a collection of edges to nodes. Currently, I have a single fact in
the Drools working memory, the graph. My queries then use the "from"
clause to obtain information about the nodes and edges within the graph.
I was wondering if it would be better to instead traverse the entire
structure adding each node and edge as facts into the working memory.
Any ideas? Thanks!
16 years, 7 months