[rules-users] Killing a session

Wolfgang Laun wolfgang.laun at gmail.com
Tue May 15 10:53:58 EDT 2012


You are confusing jBPM processes and Java threads.

You can interrupt the thread SessionThread, but that's not reliable
(if IE is handled, for instance),

Best would be to call fireUntilHalt() and call the session's halt method.

But why would you want to do this sort of weird thing?

-W


On 15/05/2012, mike <mikemps at gmail.com> wrote:
> Hi there,
>
> Is there any way to kill a running session?
>
> I've been trying with StatefulKnowledgeSession.abortProcessInstance but i
> can't get it working.
>
> For instance .. I got this drl
>
> rule "infinite loop"
>     when x : Integer()
>     then
>          System.out.println(x);
>          Thread.sleep(100);
>           insert(x + 1);
> end
>
> n' this Thread
>
> public class SessionThread implements Runnable {
>  private StatefulKnowledgeSession session;
> public SessionThread(StatefulKnowledgeSession session) { this.session =
> session; }
>          public void run() { session.fireAllRules(); }
> }
>
> then i create a session with the drl n' do something like ...
>
> session.insert(42);
> Thread thread = new Thread(new SessionThread(session));
> thread.start();
>                 Thread.sleep(1000);
> session.abortProcessInstance(thread.getId());
>
> I've tried diff processInstanceIds and session.getProcessInstances() but
> nothing seems to stop the running session
>
> Thank you
> Mike
>


More information about the rules-users mailing list