[rules-users] Question about drools-spring in a multi-treaded container (like tomcat).

Mattias Nilsson Grip mattias.nilsson.grip at redpill-linpro.com
Tue Nov 27 11:04:07 EST 2012


Hi Gurvinder,

knowledge sessions are not thread-safe so I believe your assumptions are correct. To be on the safe side you should change the ksession bean to have scope "prototype".

Regards,
Mattias

----- Original Message -----
> From: "Gurvinder Narula1" <gnarula1 at la-z-boy.com>
> To: rules-users at lists.jboss.org
> Sent: Tuesday, 27 November, 2012 3:08:18 PM
> Subject: [rules-users] Question about drools-spring in a multi-treaded container (like tomcat).
> 
> Hello all,
> 
> I've been reading up about drool-spring integration and have put
> together a simple project that wires together a KnowledgeBase and
> KnowledgeSession as follows :
> 
> 
> < drools:resource id = "GroupUnit" type = "DRL"
> source =
> "file:/Users/drools/drools-spring-test/src/Rules/drls/GroupUnit.drl"
> />
> 
> < drools:resource id = "GradeUnit" type = "DRL"
> source = "
> file:/Users/drools/drools-spring-test/src/Rules/drls/GradeUnit.drl"
> " />
> 
> < drools:resource id = "EvaluateUnit" type = "DRL"
> source = " file:/Users/drools/drools-spring-test/src/Rules/drls/
> EvaluateUnit .drl" " />
> 
> < drools:grid-node id = "node1" />
> < drools:kbase id = "kbase1" node = "node1" >
> < drools:resources >
> < drools:resource ref = "GroupUnit" />
> < drools:resource ref = "GradeUnit" />
> < drools:resource ref = "EvaluateUnit" />
> </ drools:resources >
> </ drools:kbase >
> 
> < drools:ksession id = "ksession" type = "stateful" kbase = "kbase1"
> node = "node1" />
> 
...
> 
> The main question that I have is that – is this solution thread-safe
> ? From what I understand of spring is that beans configured without
> any additional qualifiers are inherently singletons. And when
> deployed in a multi-theaded container like tomcat, Spring assumes
> that the beans being severed up a thread-safe. So from I have read
> is that KnowledeSessions are inherently not thread safe. So putting
> the 2 together, I leaning towards the assessment that this above
> solution is NOT thread safe and that if I do want it to be thread
> safe I should set the StatefulKnowledgeSession to 'prototype' and
> not leave it as a singleton.
> 
> Please let me know if I'm missing anything in my assessment here !
> 
> Thanks in advance,
> Gurvinder
> 
> This message is intended only for the individual or entity to which
> it is addressed. It may contain privileged, confidential information
> which is exempt from disclosure under applicable laws. If you are
> not the intended recipient, please note that you are strictly
> prohibited from disseminating or distributing this information
> (other than to the intended recipient) or copying this information.
> If you have received this communication in error, please notify us
> immediately by e-mail or by telephone at the above number. Thank
> you.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 



More information about the rules-users mailing list