You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by Igor Vorobiov <ig...@gmail.com> on 2016/02/05 13:43:36 UTC

Process execution timeout

Can we configure process execution timeout?
I noticed that there is mex.timeout property but it is used for sync
processes to reply with failure response but process still executing after
that. We need to terminate process execution after timeout is reached for
sync and async processes.
There is following reason to terminate process:
  Our product allows different users to develop and deploy processes that
are running on the same application server. There are situations when user
developed process and there is some condition causes infinite loop. If this
process is called once it will never be ended. Even when customer understood
his mistake and redeployed fixed process we need to restart server in this
case any way. We have also onDemand environments where there are a lot of
users that deploy their process apps and there is no guaranty that some of
them will not make a mistake. This timeout can be configured by customers
according to their needs. If they know that there is some long running
process(it is not recommended) then they can increase timeout. And if
process fails due to timeout error it will be in the log and we can easily
detect this process and fix it. In this case we don't need to restart
server. 



--
View this message in context: http://apache-ode.996305.n3.nabble.com/Process-execution-timeout-tp18072.html
Sent from the Apache Ode Dev mailing list archive at Nabble.com.

Re: Process execution timeout

Posted by Sathwik B P <sa...@gmail.com>.
Igor,

I had been travelling and could not answer your question earlier.

Process author has the control to define the timeout within the process
using the onAlarm in EventHandler or Pick activities. Processes can be long
running without a time bound Async processes.

Sync processes are expected to return a response and hence the engine uses
the mex.timeout which defaults to 2minutes and this is configurable.

In what scenario is the process continue executing after a failure and what
failure is it? One scenario that comes to my mind is this could happen when
the transport channel in the IL will timeout (probably due to the
SO_TIMEOUT) but since the mex.timeout is 2min the process will continue.

In case if the customer has deployed a process with infinite loop, one
could use the PMAPI terminate(kill) or suspend function to kill or
temporarily suspend the execution of that instance, there is no need for
restarting the server.

There is also a check for processes which continue processing for a long
time at one go

https://github.com/apache/ode/blob/ode-1.3.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java#L977

Seems like _maxReductionTimeMs is not configurable. We can make it
configurable.

regards,
sathwik

On Fri, Feb 5, 2016 at 6:13 PM, Igor Vorobiov <ig...@gmail.com>
wrote:

> Can we configure process execution timeout?
> I noticed that there is mex.timeout property but it is used for sync
> processes to reply with failure response but process still executing after
> that. We need to terminate process execution after timeout is reached for
> sync and async processes.
> There is following reason to terminate process:
>   Our product allows different users to develop and deploy processes that
> are running on the same application server. There are situations when user
> developed process and there is some condition causes infinite loop. If this
> process is called once it will never be ended. Even when customer
> understood
> his mistake and redeployed fixed process we need to restart server in this
> case any way. We have also onDemand environments where there are a lot of
> users that deploy their process apps and there is no guaranty that some of
> them will not make a mistake. This timeout can be configured by customers
> according to their needs. If they know that there is some long running
> process(it is not recommended) then they can increase timeout. And if
> process fails due to timeout error it will be in the log and we can easily
> detect this process and fix it. In this case we don't need to restart
> server.
>
>
>
> --
> View this message in context:
> http://apache-ode.996305.n3.nabble.com/Process-execution-timeout-tp18072.html
> Sent from the Apache Ode Dev mailing list archive at Nabble.com.
>