I have a route assertion configured as below
As per my understanding, if the connection to the target server times out , CA would retry 3 more times and if fails then returns an Timed Out error. So logically I should get a timeout response after 40000 ms.
But when i tested, Policy returned me the timeout error at 10256 ms. So I doubt is the retry is really happening.
The Connection Timeout defines the maximum time (in milliseconds) the Gateway attempts to establish a TCP connection. If exceeded, the routing fails (or failover).
The Read Timeout defines the maximum time (in milliseconds) allowed for response data (not necessarily the complete response) to be read for the outbound request. If exceeded, the routing fails (or failover).
The Maximum Retries defines the maximum number of attempts, in addition to the initial attempt, to establish a TCP connection. For example, Maximum Retries = 3 means there are 4 attempts: the initial attempt and 3 retry attempts
How are you measuring the time used for the complete transaction?
If you increase the retries, to say 20, do you see a difference?
As per my understanding A TCP retry is an explicit process built into the Gateway application: A series of packets sent at a particular rate over a period of 20 seconds. If that twenty seconds goes by without a response then that completes one TCP connection attempt (and consumes one TCP retry). This process will continue until the number of TCP retries is met.
The amount of time a request will take to fail is not equal to the number of retries times the connection timeout. The maximum amount of time a request will take to fail is either:1. The number of hosts in the list multiplied by the connection timeout setting2. The number of hosts in the list multiplied by the retry setting multiplied by 20 seconds.
I am not clear on this. I think your explanation is when we have multiple URL's listed for the route. However I would like to understand the retry behavior in case of a single URL.
Also regarding the point "A series of packets sent at a particular rate over a period of 20 seconds." , Is this value 20 seconds defined in any of the system/cluster wide properties? or Can I see the retry attempts made by enabling any of the logs?