ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sathwik B P <sathwik...@gmail.com>
Subject Re: Process execution timeout
Date Wed, 10 Feb 2016 06:23:01 GMT
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 <igorvorobiov88@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.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message