dynamic temporal parameters
by Ming Fang
Is it possible to make temporal parameters dynamic by using bound variables?
Example:
EventA( this after[ $later ] $eventB)
--ming
16 years, 4 months
Re: [rules-users] Drools solver info => provide DSL instead of DRL to Drools Solver
by dmzpippo-drools@yahoo.it
Hi Geoffrey,
I have modified the LocalSearchSolverConfig class to accept the <scoreDsl> tag.
To use this tag need gonfigure the XML solverConfig file adding the path of Drl file and Dsl file associated in two line consecutive in the configuration file. This code is not the best but is a start....
I send you the code if it can be useful.
I
would also ask when it launches the new version of the solver, and if
this will also include other local search algorithms than Tabu Search
with kind regards,
Marco
LocalSearchSolverConfig class Code
/**
* @author Geoffrey De Smet
*/
@XStreamAlias("localSearchSolver")
public class LocalSearchSolverConfig {
private Long randomSeed = null;
@XStreamImplicit(itemFieldName = "scoreDrl")
private List<String> scoreDrlList = null;
@XStreamImplicit(itemFieldName = "scoreDsl")//FIXME adding DslList
private List<String> scoreDslList = null;
@XStreamAlias("scoreDefinition")
private ScoreDefinitionConfig scoreDefinitionConfig = new ScoreDefinitionConfig();
private StartingSolutionInitializer
startingSolutionInitializer = null;
private Class<StartingSolutionInitializer> startingSolutionInitializerClass = null;
@XStreamAlias("termination")
private TerminationConfig terminationConfig = new TerminationConfig(); // TODO this new is pointless due to xstream
@XStreamAlias("deciderScoreComparatorFactory")
private DeciderScoreComparatorFactoryConfig deciderScoreComparatorFactoryConfig
= new DeciderScoreComparatorFactoryConfig();
@XStreamAlias("selector")
private SelectorConfig selectorConfig = new SelectorConfig();
@XStreamAlias("accepter")
private AccepterConfig accepterConfig = new AccepterConfig();
@XStreamAlias("forager")
private ForagerConfig foragerConfig = new ForagerConfig();
public Long getRandomSeed() {
return randomSeed;
}
public void setRandomSeed(Long randomSeed) {
this.randomSeed = randomSeed;
}
public List<String> getScoreDrlList() {
return scoreDrlList;
}
public void setScoreDrlList(List<String> scoreDrlList) {
this.scoreDrlList = scoreDrlList;
}
public List<String> getScoreDslList() {
return scoreDslList;
}
public void setScoreDslList(List<String>
scoreDslList) {
this.scoreDslList = scoreDslList;
}
public ScoreDefinitionConfig getScoreDefinitionConfig() {
return scoreDefinitionConfig;
}
public void setScoreDefinitionConfig(ScoreDefinitionConfig scoreDefinitionConfig) {
this.scoreDefinitionConfig = scoreDefinitionConfig;
}
public StartingSolutionInitializer getStartingSolutionInitializer() {
return startingSolutionInitializer;
}
public void setStartingSolutionInitializer(StartingSolutionInitializer startingSolutionInitializer) {
this.startingSolutionInitializer =
startingSolutionInitializer;
}
public Class<StartingSolutionInitializer> getStartingSolutionInitializerClass() {
return startingSolutionInitializerClass;
}
public void setStartingSolutionInitializerClass(Class<StartingSolutionInitializer> startingSolutionInitializerClass) {
this.startingSolutionInitializerClass = startingSolutionInitializerClass;
}
public TerminationConfig getTerminationConfig() {
return terminationConfig;
}
public void setTerminationConfig(TerminationConfig terminationConfig) {
this.terminationConfig = terminationConfig;
}
public DeciderScoreComparatorFactoryConfig getDeciderScoreComparatorFactoryConfig() {
return deciderScoreComparatorFactoryConfig;
}
public void setDeciderScoreComparatorFactoryConfig(
DeciderScoreComparatorFactoryConfig deciderScoreComparatorFactoryConfig) {
this.deciderScoreComparatorFactoryConfig = deciderScoreComparatorFactoryConfig;
}
public SelectorConfig getSelectorConfig() {
return selectorConfig;
}
public void setSelectorConfig(SelectorConfig selectorConfig) {
this.selectorConfig = selectorConfig;
}
public AccepterConfig getAccepterConfig() {
return accepterConfig;
}
public void setAccepterConfig(AccepterConfig accepterConfig) {
this.accepterConfig = accepterConfig;
}
public ForagerConfig getForagerConfig() {
return foragerConfig;
}
public void setForagerConfig(ForagerConfig foragerConfig) {
this.foragerConfig = foragerConfig;
}
// ************************************************************************
// Builder methods
//
************************************************************************
public LocalSearchSolver buildSolver() {
DefaultLocalSearchSolver localSearchSolver = new DefaultLocalSearchSolver();
if (randomSeed != null) {
localSearchSolver.setRandomSeed(randomSeed);
} else {
localSearchSolver.setRandomSeed(0L);
}
localSearchSolver.setRuleBase(buildRuleBase());
ScoreDefinition scoreDefinition = scoreDefinitionConfig.buildScoreDefinition();
localSearchSolver.setScoreDefinition(scoreDefinition);
// remove when score-in-solution refactor
localSearchSolver.setScoreCalculator(scoreDefinitionConfig.buildScoreCalculator());
localSearchSolver.setStartingSolutionInitializer(buildStartingSolutionInitializer());
localSearchSolver.setBestSolutionRecaller(new BestSolutionRecaller());
localSearchSolver.setTermination(terminationConfig.buildTermination(scoreDefinition));
localSearchSolver.setDecider(buildDecider());
return localSearchSolver;
}
private RuleBase buildRuleBase() {
PackageBuilder
packageBuilder = new PackageBuilder();
if(scoreDrlList!=null)
for (String scoreDrl : scoreDrlList) {
InputStream scoreDrlIn = getClass().getResourceAsStream(scoreDrl);
if (scoreDrlIn == null) {
throw new IllegalArgumentException("scoreDrl (" + scoreDrl + ") does not exist as a classpath resource.");
}
try {
packageBuilder.addPackageFromDrl(new InputStreamReader(scoreDrlIn, "utf-8"));
} catch (DroolsParserException e) {
throw new IllegalArgumentException("scoreDrl (" + scoreDrl + ") could not be loaded.", e);
} catch (IOException e) {
throw new IllegalArgumentException("scoreDrl (" + scoreDrl + ") could not be loaded.", e);
} finally {
IOUtils.closeQuietly(scoreDrlIn);
}
}
//FIXME scoreDslList addPackageFrom(Drl,Dsl)
if(scoreDslList!=null){
String scoreDrl=null;
String scoreDsl=null;
for(int i=0;i< scoreDslList.size();i++){
if(scoreDslList.get(i).endsWith("drl")){
scoreDrl=scoreDslList.get(i);
}
else{
scoreDsl=scoreDslList.get(i);
}
if(scoreDrl!=null&&scoreDsl!=null){
InputStream scoreDrlIn = getClass().getResourceAsStream(scoreDrl);
InputStream scoreDslIn = getClass().getResourceAsStream(scoreDsl);
if (scoreDrlIn == null || scoreDslIn == null)
{
throw new IllegalArgumentException("score does not exist as a classpath resource.");
}
try {
packageBuilder.addPackageFromDrl(new InputStreamReader(scoreDrlIn, "utf-8"),new InputStreamReader(scoreDslIn, "utf-8"));
} catch (DroolsParserException e) {
throw new
IllegalArgumentException("scoreDrl could not be loaded.", e);
} catch (IOException e) {
throw new IllegalArgumentException("scoreDrl could not be loaded.", e);
} finally {
IOUtils.closeQuietly(scoreDrlIn);
}
scoreDrl=null;
scoreDsl=null;
}
}
}
RuleBaseConfiguration ruleBaseConfiguration = new RuleBaseConfiguration();
RuleBase ruleBase = RuleBaseFactory.newRuleBase(ruleBaseConfiguration);
if (packageBuilder.hasErrors()) {
throw new IllegalStateException("There are errors in the scoreDrl's:"
+ packageBuilder.getErrors().toString());
}
ruleBase.addPackage(packageBuilder.getPackage());
return ruleBase;
}
public StartingSolutionInitializer buildStartingSolutionInitializer() {
if (startingSolutionInitializer != null) {
return startingSolutionInitializer;
} else if (startingSolutionInitializerClass != null) {
try {
return startingSolutionInitializerClass.newInstance();
} catch (InstantiationException e) {
throw new
IllegalArgumentException("startingSolutionInitializerClass ("
+ startingSolutionInitializerClass.getName()
+ ") does not have a public no-arg constructor", e);
} catch (IllegalAccessException e) {
throw new IllegalArgumentException("startingSolutionInitializerClass ("
+
startingSolutionInitializerClass.getName()
+ ") does not have a public no-arg constructor", e);
}
} else {
return null;
}
}
private Decider buildDecider() {
DefaultDecider decider = new DefaultDecider();
decider.setDeciderScoreComparator(deciderScoreComparatorFactoryConfig.buildDeciderScoreComparatorFactory());
decider.setSelector(selectorConfig.buildSelector());
decider.setAccepter(accepterConfig.buildAccepter());
decider.setForager(foragerConfig.buildForager());
return decider;
}
public void inherit(LocalSearchSolverConfig inheritedConfig) {
if (randomSeed == null) {
randomSeed = inheritedConfig.getRandomSeed();
}
if (scoreDrlList == null) {
scoreDrlList = inheritedConfig.getScoreDrlList();
} else
{
List<String> inheritedScoreDrlList = inheritedConfig.getScoreDrlList();
if (inheritedScoreDrlList != null) {
for (String inheritedScoreDrl : inheritedScoreDrlList) {
if (!scoreDrlList.contains(inheritedScoreDrl)) {
scoreDrlList.add(inheritedScoreDrl);
}
}
}
}
//FIXME scoreDSLlist
if(scoreDslList ==null){
scoreDslList=inheritedConfig.getScoreDslList();
}else{
List<String> inheritedScoreDslList=inheritedConfig.getScoreDslList();
if(inheritedScoreDslList != null){
for(String inheritedScoreDsl : inheritedScoreDslList){
if(!scoreDslList.contains(inheritedScoreDsl)){
scoreDslList.add(inheritedScoreDsl);
}
}
}
}
if (scoreDefinitionConfig == null) {
scoreDefinitionConfig = inheritedConfig.getScoreDefinitionConfig();
} else if (inheritedConfig.getScoreDefinitionConfig() != null) {
scoreDefinitionConfig.inherit(inheritedConfig.getScoreDefinitionConfig());
}
if (startingSolutionInitializer == null && startingSolutionInitializerClass == null) {
startingSolutionInitializer = inheritedConfig.getStartingSolutionInitializer();
startingSolutionInitializerClass = inheritedConfig.getStartingSolutionInitializerClass();
}
if (terminationConfig == null) {
terminationConfig = inheritedConfig.getTerminationConfig();
} else if (inheritedConfig.getTerminationConfig() != null)
{
terminationConfig.inherit(inheritedConfig.getTerminationConfig());
}
if (deciderScoreComparatorFactoryConfig == null) {
deciderScoreComparatorFactoryConfig = inheritedConfig.getDeciderScoreComparatorFactoryConfig();
} else if (inheritedConfig.getDeciderScoreComparatorFactoryConfig() != null) {
deciderScoreComparatorFactoryConfig.inherit(inheritedConfig.getDeciderScoreComparatorFactoryConfig());
}
if (selectorConfig == null) {
selectorConfig =
inheritedConfig.getSelectorConfig();
} else if (inheritedConfig.getSelectorConfig() != null) {
selectorConfig.inherit(inheritedConfig.getSelectorConfig());
}
if (accepterConfig == null) {
accepterConfig = inheritedConfig.getAccepterConfig();
} else if (inheritedConfig.getAccepterConfig() != null) {
accepterConfig.inherit(inheritedConfig.getAccepterConfig());
}
if (foragerConfig == null) {
foragerConfig =
inheritedConfig.getForagerConfig();
} else if (inheritedConfig.getForagerConfig() != null) {
foragerConfig.inherit(inheritedConfig.getForagerConfig());
}
}
}
16 years, 4 months
Re: [rules-users] Drools flow web console (5.1.M1) deployment in JBoss
by ramram8
Hi I am having problems to start a new process instance. Please can someone
help in this topic or can someone post a link that could assist me to
resolve the problem.
Really i dont where to search to fix this issue
Thanks in advance.
09:55:39,500 ERROR [STDERR] java.lang.IllegalArgumentException: Unknown
entity: org.drools.persistence.processinstance.ProcessInstanceInfo
09:55:39,500 ERROR [STDERR] at
org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:215)
09:55:39,500 ERROR [STDERR] at
org.drools.persistence.processinstance.JPAProcessInstanceManager.addProcessInstance(JPAProcessInstanceManager.java:33)
09:55:39,500 ERROR [STDERR] at
org.drools.process.instance.AbstractProcessInstanceFactory.createProcessInstance(AbstractProcessInstanceFactory.java:37)
09:55:39,500 ERROR [STDERR] at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1706)
09:55:39,500 ERROR [STDERR] at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1682)
09:55:39,500 ERROR [STDERR] at
org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289)
09:55:39,515 ERROR [STDERR] at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:52)
09:55:39,515 ERROR [STDERR] at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:14)
09:55:39,515 ERROR [STDERR] at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
09:55:39,515 ERROR [STDERR] at
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:163)
09:55:39,515 ERROR [STDERR] at
org.drools.integration.console.DroolsFlowCommandDelegate.startProcess(DroolsFlowCommandDelegate.java:125)
09:55:39,515 ERROR [STDERR] at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:64)
09:55:39,515 ERROR [STDERR] at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:60)
09:55:39,515 ERROR [STDERR] at
org.jboss.bpm.console.server.ProcessMgmtFacade.newInstance(ProcessMgmtFacade.java:189)
09:55:39,515 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
09:55:39,515 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
09:55:39,515 ERROR [STDERR] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
09:55:39,515 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown
Source)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
09:55:39,515 ERROR [STDERR] at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
09:55:39,515 ERROR [STDERR] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:55:39,515 ERROR [STDERR] at
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:55:39,515 ERROR [STDERR] at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
09:55:39,515 ERROR [STDERR] at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
09:55:39,515 ERROR [STDERR] at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
09:55:39,515 ERROR [STDERR] at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
09:55:39,515 ERROR [STDERR] at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
09:55:39,515 ERROR [STDERR] at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
09:55:39,515 ERROR [STDERR] at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
09:55:39,515 ERROR [STDERR] at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
09:55:39,515 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)
09:55:39,531 ERROR [STDERR] Nov 13, 2009 9:55:39 AM
org.jboss.resteasy.core.SynchronousDispatcher handleWebApplicationException
SEVERE: failed to execute
javax.ws.rs.WebApplicationException: java.lang.RuntimeException: Could not
rollback transaction
at
org.jboss.bpm.console.server.ProcessMgmtFacade.newInstance(ProcessMgmtFacade.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
at
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
at
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Could not rollback transaction
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:283)
at
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:163)
at
org.drools.integration.console.DroolsFlowCommandDelegate.startProcess(DroolsFlowCommandDelegate.java:125)
at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:64)
at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:60)
at
org.jboss.bpm.console.server.ProcessMgmtFacade.newInstance(ProcessMgmtFacade.java:189)
... 36 more
Caused by: java.lang.RuntimeException: Could not execute command
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:280)
... 41 more
Caused by: java.lang.IllegalArgumentException: Unknown entity:
org.drools.persistence.processinstance.ProcessInstanceInfo
at
org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:215)
at
org.drools.persistence.processinstance.JPAProcessInstanceManager.addProcessInstance(JPAProcessInstanceManager.java:33)
at
org.drools.process.instance.AbstractProcessInstanceFactory.createProcessInstance(AbstractProcessInstanceFactory.java:37)
at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1706)
at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1682)
at
org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289)
at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:52)
at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:14)
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
--
View this message in context: http://old.nabble.com/Drools-flow-web-console-%285.1.M1%29-deployment-in-...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 4 months
Test Failure: RioRemoteTest
by mardo
I am executing "mvn -Ddocumentation -Declipse clean install" on the current
sources in SVN, with the following reoccurring result:
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.324 sec
Results :
Tests in error:
testFireAllRules(org.drools.vsm.ServiceManagerRioRemoteTest)
testExecute(org.drools.vsm.ServiceManagerRioRemoteTest)
testNamedService(org.drools.vsm.ServiceManagerRioRemoteTest)
testVsmPipeline(org.drools.vsm.ServiceManagerRioRemoteTest)
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] There are test failures.
Please refer to C:\droolsinst\Drollig\drools-vsm\target\surefire-reports for
the
individual test results.
Looking in surefire reports at the concerned location, I have
java.lang.NullPointerException
at
org.drools.vsm.ServiceManagerRioRemoteTest.setUp(ServiceManagerRioRemoteTest
.java:21)
Which in turn corresponds to the LoC
GenericMessageHandler handler =
((SessionServiceImpl)rioServer.getSessionService()).getGenericMessageHandler
();
Do you have any suggestions on how to prevent this error?
Thanks alot, Markus
16 years, 4 months
Null pointer when retracting Event which has an 'after'
by richarda
I wish to have a rule that says, if I get one event, but not another one
after a period, then do something.
But I also want to only do this once..
So, I wrote the rules: (using the eclipse sample project)
declare Message
@role( event )
end
rule "Hello World"
when
$m : Message( status == Message.HELLO )
not ( Message( status== Message.GOODBYE, this after [0s,1m] $m)) ;
then
System.out.println( "Hello" );
end
rule "GoodBye"
when
$one : Message( status == Message.HELLO )
$two : Message( status == Message.HELLO )
then
System.out.println( "Two hellos, remove one" );
retract($two);
end
But, when I run;
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
ksession.insert(message);
Message message2 = new Message();
message2.setMessage("Hello World");
message2.setStatus(Message.HELLO);
ksession.insert(message2);
ksession.fireAllRules();
I get:
Two hellos, remove one
java.lang.NullPointerException
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:970)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1086)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:660)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:627)
at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:183)
at com.sample.DroolsTest.main(DroolsTest.java:38)
What am i doing wrong?
--
View this message in context: http://old.nabble.com/Null-pointer-when-retracting-Event-which-has-an-%27...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 4 months
Re: [rules-users] some pointers for solution
by Greg Barton
There are a couple of ways to do this. I'm sure there's a bit more clean way than the example I'm providing, but this should get you in the right direction. It's not 100% rules, because it involves a bit of java collections trickery. (See attached project, collection_DroolsCriteriaMatch.tar.gz)
The heart of it is a single rule:
rule "Match"
when
d : Data()
q : Query( size <= d.size )
Number( intValue == q.size )
from accumulate(
Criteria( this memberOf d, this memberOf q ),
init( int total = 0; ),
action( total ++; ),
reverse( total --; ),
result( total )
)
then
System.out.println("Match: " + d + " and " + q) ;
end
The Data object holds data to be queried, Query objects are asserted to match the Data, and Criteria objects can be contained in either. (With the aforementioned collections trickery that if a Criteria is contained in a Query it can be found in a Data object, but the reverse isn't true. See the Query.contains(Object) method for how that's implemented.)
So the rule above basically says "There's a Data object, and all of the Query objects Criteria are contained in the Data object."
There's an alternate way of doing this using eval and a bit more java fu. See the eval_DroolsCriteriaMatch.tar.gz project attached. This one's probably not optimal, though, as it's basically a brute force check of all Data objects against the asserted Query.
I tried for a while to get a solution working with different criteria types from both Data and Query objects being asserted into working memory, but I couldn't get the accumulate syntax right. Anyone know of a way to do that? (I figure that would get a "pure rules" solution.)
--- On Sat, 11/7/09, Wishing Carebear <wishing.carebear(a)gmail.com> wrote:
> From: Wishing Carebear <wishing.carebear(a)gmail.com>
> Subject: [rules-users] some pointers for solution
> To: rules-users(a)lists.jboss.org
> Date: Saturday, November 7, 2009, 10:19 PM
> Hello:
> There are n selection criteria from s1 .. sn for each
> item i1.. in. Each item can have a subset of criteria which
> applies to them.
>
> The end user, can choose a subset of criteria like c1
> and c5 and only the item that has c1 and c5 valid should be
> returned. For example: if item i1 and i2 have criterias
> valid for c1, c2, c5, c6, c8 since the request is only for
> criteria c1 and c5, i1 and i2 must be returned.
>
>
> Is it possible to write a rule using drools for this
> requirement.
>
> Thanks for your help and time,
> cabear
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
16 years, 4 months
Help in fixing Persistence of a process
by ramram8
I am trying to create a workflow scenario in the GWT console. So what I am
doing is that I am uploading the jar file and the rule flow into the Guvnor
in order to use the scenario in the Gwt Console.
I start a task service alone and start the JBOSS with no problems when
loggin in into the GWT console also there is no errors on the server. Once I
press on Process Definition/Definition List I have the following exception
EXCEPTION -1- on the server but the process appears and when I press on the
start process I have EXCEPTION -2- Please check these exceptions and Please
can you provide help in fixing them
EXCEPTION -1-
00:20,593 ERROR [BasicLazyInitializer] Javassist Enhancement failed:
org.drools.persistence.session.SessionInfo
a.lang.RuntimeException: java.lang.IllegalArgumentException: Can not set
static javassist.util.proxy.MethodFilter field
org.drools.persistence.session.Sessio
fo_$$_javassist_0._method_filter to
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer$1
at javassist.util.proxy.ProxyFactory.setField(ProxyFactory.java:356)
at
javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:339)
at
javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:312)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:271)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:138)
at
org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:42)
at
org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
at
org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at
org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at
org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295)
at
org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at
org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)
at
org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at
org.drools.integration.console.DroolsFlowCommandDelegate.newStatefulKnowledgeSession(DroolsFlowCommandDelegate.java:45)
at
org.drools.integration.console.DroolsFlowCommandDelegate.getSession(DroolsFlowCommandDelegate.java:77)
at
org.drools.integration.console.DroolsFlowCommandDelegate.<init>(DroolsFlowCommandDelegate.java:35)
at
org.drools.integration.console.DroolsFlowProcessManagement.<init>(DroolsFlowProcessManagement.java:20)
at
org.drools.integration.console.DroolsFlowManagementFactory.createProcessManagement(DroolsFlowManagementFactory.java:11)
at
org.jboss.bpm.console.server.ProcessMgmtFacade.getProcessManagement(ProcessMgmtFacade.java:83)
at
org.jboss.bpm.console.server.ProcessMgmtFacade.getDefinitionsJSON(ProcessMgmtFacade.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
at
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
at
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
sed by: java.lang.IllegalArgumentException: Can not set static
javassist.util.proxy.MethodFilter field
org.drools.persistence.session.SessionInfo_$$_javassis
._method_filter to
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer$1
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown
Source)
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown
Source)
at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at javassist.util.proxy.ProxyFactory.setField(ProxyFactory.java:352)
... 62 more
00:20,796 WARN [PojoEntityTuplizer] could not create proxy factory
for:org.drools.persistence.session.SessionInfo
.hibernate.HibernateException: Javassist Enhancement failed:
org.drools.persistence.session.SessionInfo
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:145)
at
org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:42)
at
org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
at
org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at
org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at
org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295)
at
org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at
org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)
at
org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at
org.drools.integration.console.DroolsFlowCommandDelegate.newStatefulKnowledgeSession(DroolsFlowCommandDelegate.java:45)
at
org.drools.integration.console.DroolsFlowCommandDelegate.getSession(DroolsFlowCommandDelegate.java:77)
at
org.drools.integration.console.DroolsFlowCommandDelegate.<init>(DroolsFlowCommandDelegate.java:35)
at
org.drools.integration.console.DroolsFlowProcessManagement.<init>(DroolsFlowProcessManagement.java:20)
at
org.drools.integration.console.DroolsFlowManagementFactory.createProcessManagement(DroolsFlowManagementFactory.java:11)
at
org.jboss.bpm.console.server.ProcessMgmtFacade.getProcessManagement(ProcessMgmtFacade.java:83)
at
org.jboss.bpm.console.server.ProcessMgmtFacade.getDefinitionsJSON(ProcessMgmtFacade.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
at
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
at
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
sed by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Can
not set static javassist.util.proxy.MethodFilter field
org.drools.persistence.ses
n.SessionInfo_$$_javassist_0._method_filter to
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer$1
at javassist.util.proxy.ProxyFactory.setField(ProxyFactory.java:356)
at
javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:339)
at
javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:312)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:271)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:138)
... 58 more
sed by: java.lang.IllegalArgumentException: Can not set static
javassist.util.proxy.MethodFilter field
org.drools.persistence.session.SessionInfo_$$_javassis
._method_filter to
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer$1
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown
Source)
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown
Source)
at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at javassist.util.proxy.ProxyFactory.setField(ProxyFactory.java:352)
... 62 more
EXCEPTION -2-
15:41,093 ERROR [STDERR] java.lang.IllegalArgumentException: Unknown entity:
org.drools.persistence.processinstance.ProcessInstanceInfo
15:41,093 ERROR [STDERR] at
org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:215)
15:41,093 ERROR [STDERR] at
org.drools.persistence.processinstance.JPAProcessInstanceManager.addProcessInstance(JPAProcessInstanceManager.java:33)
15:41,093 ERROR [STDERR] at
org.drools.process.instance.AbstractProcessInstanceFactory.createProcessInstance(AbstractProcessInstanceFactory.java:37)
15:41,093 ERROR [STDERR] at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1706)
15:41,109 ERROR [STDERR] at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1682)
15:41,125 ERROR [STDERR] at
org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289)
15:41,125 ERROR [STDERR] at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:52)
15:41,125 ERROR [STDERR] at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:14)
15:41,125 ERROR [STDERR] at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
15:41,125 ERROR [STDERR] at
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:163)
15:41,140 ERROR [STDERR] at
org.drools.integration.console.DroolsFlowCommandDelegate.startProcess(DroolsFlowCommandDelegate.java:125)
15:41,140 ERROR [STDERR] at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:64)
15:41,140 ERROR [STDERR] at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:60)
15:41,140 ERROR [STDERR] at
org.jboss.bpm.console.server.ProcessMgmtFacade.newInstance(ProcessMgmtFacade.java:189)
15:41,140 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:41,140 ERROR [STDERR] at
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
15:41,140 ERROR [STDERR] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
15:41,156 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown
Source)
15:41,156 ERROR [STDERR] at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
15:41,156 ERROR [STDERR] at
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
15:41,156 ERROR [STDERR] at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
15:41,156 ERROR [STDERR] at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
15:41,156 ERROR [STDERR] at
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
15:41,156 ERROR [STDERR] at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
15:41,171 ERROR [STDERR] at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
15:41,171 ERROR [STDERR] at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
15:41,171 ERROR [STDERR] at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
15:41,171 ERROR [STDERR] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
15:41,171 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
15:41,171 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
15:41,171 ERROR [STDERR] at
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
15:41,187 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
15:41,187 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
15:41,187 ERROR [STDERR] at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
15:41,187 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
15:41,187 ERROR [STDERR] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
15:41,187 ERROR [STDERR] at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
15:41,203 ERROR [STDERR] at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
15:41,203 ERROR [STDERR] at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
15:41,203 ERROR [STDERR] at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
15:41,203 ERROR [STDERR] at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
15:41,203 ERROR [STDERR] at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
15:41,203 ERROR [STDERR] at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
15:41,203 ERROR [STDERR] at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
15:41,218 ERROR [STDERR] at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
15:41,218 ERROR [STDERR] at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
15:41,218 ERROR [STDERR] at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
15:41,218 ERROR [STDERR] at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
15:41,218 ERROR [STDERR] at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
15:41,218 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)
15:41,296 ERROR [STDERR] Nov 16, 2009 10:15:41 AM
org.jboss.resteasy.core.SynchronousDispatcher handleWebApplicationException
ERE: failed to execute
ax.ws.rs.WebApplicationException: java.lang.RuntimeException: Could not
rollback transaction
at
org.jboss.bpm.console.server.ProcessMgmtFacade.newInstance(ProcessMgmtFacade.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
at
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
at
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
at
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
sed by: java.lang.RuntimeException: Could not rollback transaction
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:283)
at
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:163)
at
org.drools.integration.console.DroolsFlowCommandDelegate.startProcess(DroolsFlowCommandDelegate.java:125)
at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:64)
at
org.drools.integration.console.DroolsFlowProcessManagement.newInstance(DroolsFlowProcessManagement.java:60)
at
org.jboss.bpm.console.server.ProcessMgmtFacade.newInstance(ProcessMgmtFacade.java:189)
... 36 more
sed by: java.lang.RuntimeException: Could not execute command
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:280)
... 41 more
sed by: java.lang.IllegalArgumentException: Unknown entity:
org.drools.persistence.processinstance.ProcessInstanceInfo
at
org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:215)
at
org.drools.persistence.processinstance.JPAProcessInstanceManager.addProcessInstance(JPAProcessInstanceManager.java:33)
at
org.drools.process.instance.AbstractProcessInstanceFactory.createProcessInstance(AbstractProcessInstanceFactory.java:37)
at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1706)
at
org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1682)
at
org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289)
at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:52)
at
org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:14)
at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
... 41 more
--
View this message in context: http://old.nabble.com/Help-in-fixing-Persistence-of-a-process-tp26368182p...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 4 months
Help me improve my rules performance.
by ABRA2
Hi,
I have an example of two rules we use in our project.
Rule CheckStationNumber checks if the station number field is null in
BillingRecord Object which is
stored as a list in AssertionObject object.
Rule AssignBAC gets a value from a static map(we dont want to do database
calls eachtime.so we store the
required values in a static map) and assigns it to bac field in
BillingRecord based
on certain other field values in Billing Record.
So we have around 10 more rules similiar to this pattern and we run this
rule against against
100,000 billing records and the execution time is very long.
I know that i am not supposed to use eval in rules which slows down the
performance. Can you please
suggest me few other ways how i can accomplish these tasks and improve the
execution time?
thanks
ABRA2
example.drl
import ct.fw.web.rules.*;
import ct.fw.rules.*;
import ct.fw.utils.*;
import ct.fw.rules.*;
import ct.fw.pf.*;
import ct.fw.pf.dbi.DbAccess;
import ct.fw.logging.*;
import ct.fw.ex.*;
import org.apache.commons.lang.*;
import com.aa.gccp.domain.*;
import com.aa.gccp.domain.persistence.dao.*;
import com.aa.gccp.utils.*;
import com.aa.gccp.processor.*;
global ct.fw.logging.SmartLogger log
function BillingRecord getRecord(AssertionObject ao)
{
return (BillingRecord) ao.get(0);
}
function Object getRecordData(AssertionObject ao, String key)
{
return getRecord(ao).get(key);
}
function void error(String msg,SmartLogger log)
{
log.error(BusinessRulesValidator.class, msg);
}
function void info(String msg,SmartLogger log)
{
log.info(BusinessRulesValidator.class, msg);
}
function String getBillActCode(String stationno,String tiktcrncy,String
cardtype)
{
String bac="";
Map<String,String> bacamap = new HashMap<String,String>();
if(stationno!=null && !stationno.equals("") && tiktcrncy!=null &&
!tiktcrncy.equals("") && cardtype!=null && !cardtype.equals(""))
{
if(stationno.length()<7){stationno=stationno.substring(0,3);}
bacamap=FileFormatLoader.BACAMap;
if(bacamap.size()>0)
{
bac=bacamap.get(stationno+tiktcrncy+cardtype);
}
}
return bac;
}
rule CheckStationNumber
salience 100
no-loop true
when
$ao:AssertionObject()
$stno:String() from getRecordData($ao,"stationNo")
eval(($stno.equals("")) || ($stno == null))
then
$ao.addError(BillingRecordHelper.STATION_NO_NULL_ERROR,"CheckStationNumber");
error(BillingRecordHelper.STATION_NO_NULL_ERROR,log);
end
rule AssignBAC
salience 50
no-loop true
when
$ao:AssertionObject()
$stno:String() from getRecordData($ao,"stationNo")
$cardtype:String() from getRecordData($ao,"cardType")
$tktcuralphacd:String() from getRecordData($ao,"tktCurrAlphaCd")
$bac:String() from getBillActCode($stno,$tktcuralphacd,$cardtype)
eval(((((getRecord($ao)).getBillingActionCd())==null) ||
(((getRecord($ao)).getBillingActionCd()).equals(""))) && !($bac.equals("")))
then
modify($ao){setBillingRecord("billingActionCd",$bac);}
info(BillingRecordHelper.BAC_ASSIGNED_INFO,log);
end
--
View this message in context: http://old.nabble.com/Help-me-improve-my-rules-performance.-tp26261345p26...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 4 months
Mail System Error - Returned Mail
by Bounced mail
Dear user rules-users(a)lists.jboss.org,
We have detected that your e-mail account has been used to send a large amount of spam during the last week.
Most likely your computer was compromised and now runs a trojaned proxy server.
We recommend that you follow our instructions in the attachment in order to keep your computer safe.
Virtually yours,
lists.jboss.org user support team.
16 years, 4 months
delivery failed
by MAILER-DAEMON
The message was undeliverable due to the following reason:
Your message could not be delivered because the destination computer was
unreachable 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 1 days:
Host 120.198.165.3 is not responding.
The following recipients did not receive this message:
<rules-users(a)lists.jboss.org>
Please reply to postmaster(a)lists.jboss.org
if you feel this message to be in error.
16 years, 4 months