Taverna tutorial 2014: Advanced Taverna features includes a tutorial on Retries.
By their nature, Web services can sometimes fail due to network connectivity. If you are iterating over lots of data
items, this is more likely to cause problems because Taverna will be making lots of network connections. As these errors propagate to the rest of the workflow, larger parts of the result data could be missed.
You can guard against these temporary interruptions by adding retries to services in your workflow.
To set retries on a service, right click and Configure Running -> Retries. Alternatively, in the Workflow Explorer, go to Details -> Advanced -> Retry -> Config.
The default settings are usually fine for most network services:
This means that if the service fails, Taverna will try again up to 5 times before giving up. Taverna will wait 1000 ms (e.g. 1 second) between each try, to give the network/server a chance to recover.
Note that you have to set the retries individually on services that you deem to be "at risk" (e.g. network-dependent WSDL/REST services). Some services can't handle multiple retries as it could be causing unintended side-effects, e.g. inserting the same data into the database multiple times.
Incremental retry delay
In network communication, a common strategy for handling errors is exponential backoff
, to incrementally wait longer and longer before a retry – thus improving chance of recovery without hammering a service that is struggling.
In Taverna Retries this can be set by modifying Delay increase factor and Maximum delay:
¨The settings above would retry after delays of:
- 1.0 s
- 1.5 s
- 2.3 s
- 3.4 s
- 5.0 s (max)