AnsweredAssumed Answered

Multi server environment

Question asked by einszwo on Apr 27, 2015
Latest reply on Apr 28, 2015 by jbarrez
Hi everyone,

I have a question about using activiti in an environment where my application is deployed redundant on more than one server to ensure availability for the users.
All applications pointing on the same database ( So only one db exists).
My embedded process engine of course is part of the application so it is also deployed on more than one server.

I want to know how activiti is able to handle this.
For example if a message is caught which starts my business process on server A, but the next task would be a user task which is claimed and completed on server B. I think this would not be a problem.
If the next task (Service Task) throws an exception on server B is Server A able to execute it again?
So I try to to define my question more precisely.
If a business process which only consists of service tasks is started on Server A can be finished on this server, because the server has any problem, is Server B able to finish it when pointing on the same db?
Of course I also hope that not both server will concurrently execute for example service task 1.

I integrated the process engine in an spring context. So I use springs transaction management. In my imagination, when an Exception occurs in one part of the business process, all data written to the db will be rolled back so the task is still not executed and an other server could execute it again. I hope this managed automatically by the process engine?

An other question is whats about atomic steps in activiti.
For example when my process models 10 service tasks which all must be executed without an error or everything must be rolled back.
Is this possible with activiti? Do I have to model the process to deal with it for example with boundary exception events on sub processes which should be atomic?

Best regards,

Markus

Outcomes