Forum Discussion

jcarlson_45169's avatar
jcarlson_45169
Icon for Nimbostratus rankNimbostratus
Aug 28, 2007

Persistence at the Pool Level

I'm currently migrating from 4.6.X to 9.x. I've run into an issue with the way the 9.x Environment handles Persistence. In 4.X persistence was maintainable on the Pool Level. It appears in 9.X persistence is now held at the Virtual Server level. The irule I'm using is a simple HTTP_Request where based on what the URL starts with they are pushed to a a designated pool. (the persistence mode is simple) Here's a sample:

when HTTP_REQUEST {
  if { [HTTP::host] starts_with "81aarp"  } {
      pool wl81prod-aarp
  }
  else { [HTTP::host] starts_with "aarp-crm"  } {
      pool wl81prod-aarp1
  }
}

What appears to be happening is since the persistence is held at the server level,

When users get redirected to a second pool within the persistence window, big-IP wants to push them back to the original pool and everything appears to hang.

Any ideas how we can configure 9.X to process the same as 4.X?

  • hoolio's avatar
    hoolio
    Icon for Cirrostratus rankCirrostratus
    You can specify a different persistence profile in each condition in the rule, along with the pool.

    
    when HTTP_REQUEST {
       if {[string tolower [HTTP::host]] starts_with "81aarp"}{
           pool wl81prod-aarp
           persist source_addr 255.255.255.0 300
       } elseif {[string tolower [HTTP::host]] starts_with "aarp-crm"}{
          pool wl81prod-aarp1
          persist none
       } else {
           take some default action
       }
    }

    Check this post (Click here)

    and the wiki page for the persist command (Click here) for more info.

    Aaron