Jason_Hook_4092
Apr 25, 2012Nimbostratus
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
when HTTP_REQUEST {
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
return
}
switch [HTTP::cookie "TFPoolId"] {
"1" { set PoolIdRAPS "BLTCP_WEB_STREAMER" }
"2" { set PoolIdRAPS "WSI_WEB_STREAMER" }
default { set PoolIdRAPS "BLTCP_WEB_STREAMER" }
}
pool $PoolIdRAPS
if {$debugRAPS}{log local0.info "Cookie Pooling [IP::client_addr] to $PoolIdRAPS"}
if { $PersistKeyRAPS ne ""} {
if {$debugRAPS}{log local0.info "2- Found sticky header key > $PersistKeyRAPS"}
persist uie $PersistKeyRAPS 3600
if {[persist lookup uie $PersistKeyRAPS] ne "" } {
if {$debugRAPS}{log local0.info "3- Persist lookup Key: $PersistKeyRAPS > Value: [persist lookup uie $PersistKeyRAPS]"}
} else {
if {$debugRAPS}{log local0.info "3- Persist lookup > No Record Found"}
}
} else {
if {$debugRAPS}{log local0.info "2- No sticky header key"}
}
}
when HTTP_RESPONSE {
Insert header with responding server IP
HTTP::header replace "serverIP" [IP::server_addr]
}
when LB_SELECTED {
if {$ShouldExitRAPS} { return }
if {$debugRAPS}{log local0.info "4- Key: $PersistKeyRAPS > LB to: [LB::server addr]"}
}