Layer7 API Management

  • 1.  How to ensure if the Maximum Retry specified in Route Via HTTPS assertion is working?

    Posted Jun 08, 2017 05:49 AM

    I have a route assertion configured as below

    •    Connection Timeout       : 10000 ms
    •    Read Timeout                 : 30000 ms
    •    Maximum Retry              : 3

          

    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.



  • 2.  Re: How to ensure if the Maximum Retry specified in Route Via HTTPS assertion is working?

    Posted Jun 09, 2017 09:36 AM

    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?

     

    Regards

    Seenu Mathew



  • 3.  Re: How to ensure if the Maximum Retry specified in Route Via HTTPS assertion is working?
    Best Answer

    Posted Jun 11, 2017 03:41 AM

    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 setting
    2. The number of hosts in the list multiplied by the retry setting multiplied by 20 seconds.



  • 4.  Re: How to ensure if the Maximum Retry specified in Route Via HTTPS assertion is working?

    Posted Jun 15, 2017 07:58 AM

    Hi ,

    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?