Forum Discussion

Anna_Novikova_1's avatar
Anna_Novikova_1
Icon for Nimbostratus rankNimbostratus
Oct 19, 2015

Configuring Virtual Service to retry requests on timeout

Hi all, I want to configure the following behaviour: if one server has not answered on http request in e.g. 1 second, the request will be resent to another server. Is it possible?

 

  • You can configure your the pool attached to your Virtual Server to re-select a new pool member by changing the "Reselect Tries" to a value higher than 0. It will re-select a new pool member as many times as you configure there.

     

    • G_C_33937's avatar
      G_C_33937
      Icon for Nimbostratus rankNimbostratus
      Thanks, Brad! Based on https://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm_configuration_guide_10_1/ltm_pools.html, Reselect Tries - Specifies the number of times that the system tries to contact a new pool member after a passive failure. 1 question: what means passive failure? 2 question: there is no possibility to specify the time out, am i right?
    • Brad_Parker's avatar
      Brad_Parker
      Icon for Cirrus rankCirrus
      There is no timeout configured, a handshake failure would result in pool re-selection.
  • You can configure your the pool attached to your Virtual Server to re-select a new pool member by changing the "Reselect Tries" to a value higher than 0. It will re-select a new pool member as many times as you configure there.

     

    • G_C_33937's avatar
      G_C_33937
      Icon for Nimbostratus rankNimbostratus
      Thanks, Brad! Based on https://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm_configuration_guide_10_1/ltm_pools.html, Reselect Tries - Specifies the number of times that the system tries to contact a new pool member after a passive failure. 1 question: what means passive failure? 2 question: there is no possibility to specify the time out, am i right?
    • Brad_Parker_139's avatar
      Brad_Parker_139
      Icon for Nacreous rankNacreous
      There is no timeout configured, a handshake failure would result in pool re-selection.
    • Brad_Parker_139's avatar
      Brad_Parker_139
      Icon for Nacreous rankNacreous
      This previous post suggests the failure to receive data timeout would most likely be configured using the SYN retransmission in your server-side TCP profile. https://devcentral.f5.com/s/feed/0D51T00006kHGNOSA4 . I'm inclined to agree.
  • You can use the irule for doing this.

    Sample irule is below.

    when LB_FAILED {
       if { [active_members [LB::server pool]] > 0 } {
          catch { LB::down }
          LB::mode rr
          LB::reselect
       }
    }
    

    This iRule allows a client-side connection to remain open after a pool member has become unresponsive.

    -Jinshu

  • I found following: A passive failure consists of a server-connect failure or a failure to receive a data response within a user-specified interval. That exactly what I need. But what is "user-specified interval" and how it can be adjusted?