Forum Discussion

Jason_Hook_4092's avatar
Icon for Nimbostratus rankNimbostratus
Apr 25, 2012

Help? Production PERSIST iRule not playing nice in production

I have the following iRule behind a universal persist profile. It's been tested in a non-prod environment without any reported issues, but I have problem with it in production. It also is double assigned...2 VIPs use it and both work in non-prod but only 1 works correct in production.


I've checked all the VIP settings to match other others and I still am stumped.




Can somone offer suggestions as to what might be wrong? What I see with the logging is that it appears it's either not creating a persist record or not using the one that was created.



non-prod unit: 3600 with LTM 10.2.1


prod unit: 6900 with LTM 10.2.1






Look for existing pool cookie otherwise determine where to go based on


a lookup of client IP in the WFA Price Server addresses datalist



Created 6/30/2011 by JHook



set to 1 to enable LTM logging, 0 to disable LTM logging


set debugRAPS 1


init flag whether to run iRule or just exit


set ShouldExitRAPS 0



set PersistKeyRAPS [HTTP::header value "ConnectionId"]



if {[string tolower [HTTP::path]] starts_with "/streamer" || [string tolower [HTTP::path]] contains "sso.aspx?env" } {


} else {


stop running the iRule since PERSIST profile will pick up /streamer calls


set ShouldExitRAPS 1







switch [HTTP::cookie "TFPoolId"] {




"2" { set PoolIdRAPS "WSI_WEB_STREAMER" }


default { set PoolIdRAPS "BLTCP_WEB_STREAMER" }




pool $PoolIdRAPS


if {$debugRAPS}{log "Cookie Pooling [IP::client_addr] to $PoolIdRAPS"}



if { $PersistKeyRAPS ne ""} {


if {$debugRAPS}{log "2- Found sticky header key > $PersistKeyRAPS"}


persist uie $PersistKeyRAPS 3600


if {[persist lookup uie $PersistKeyRAPS] ne "" } {


if {$debugRAPS}{log "3- Persist lookup Key: $PersistKeyRAPS > Value: [persist lookup uie $PersistKeyRAPS]"}


} else {


if {$debugRAPS}{log "3- Persist lookup > No Record Found"}




} else {


if {$debugRAPS}{log "2- No sticky header key"}










Insert header with responding server IP


HTTP::header replace "serverIP" [IP::server_addr]







if {$ShouldExitRAPS} { return }


if {$debugRAPS}{log "4- Key: $PersistKeyRAPS > LB to: [LB::server addr]"}




1 Reply

  • Hi Jason,


    Not sure if this helps.. but can you try to create a Source Address Afinity Persistence profile and enable the option to "Match across virtual servers".


    Then remove the irule on both the VS and use the above created persistence profile to both the VS. ?