See below for name references.
The JSession persistence appears not to work unless I add Source Address Affinity as a fallback. I check the persistence table before adding and no entry was made for "cce-jsession-http". Furthermore, I checked the pool members and one attempt to the url is spreading traffic across all pool members. After adding cce-jsession-addre-http I see an entry in the persistence table and one attempt to the url is being sent to one member in the pool.
Is this correct behavior?
Below I've included the ip header with the JsessionID and the configuration I’m using.
Any help would be greatly appreciated.
--------
GET /cce-presentation-kiosk-tg/branding/tg/client/Production/css/pleaseWait.css;jsessionid=zytPJpxV0TnpssqZZRLBgsVMLhGS6M2ZNMZ622yCNvpv0gkpTwzn!956498630 HTTP/1.1
Accept: */*
Referer: http://selfservice-uat.sita.aero/cce-presentation-kiosk-tg/entryUpdate.do
Accept-Language: en-us
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 2.0.50727)
Host: selfservice-uat.sita.aero
Connection: Keep-Alive
Cookie: JSESSIONID=zytPJpxV0TnpssqZZRLBgsVMLhGS6M2ZNMZ622yCNvpv0gkpTwzn!956498630
---------
virtual VS-CCE_QA_http {
fallback persist cce-jsession-addre-http
destination 10.9.16.34:http
ip protocol tcp
rules cce-direct-http
profiles
http
oneconnect
tcp
persist cce-jsession-http
}
profile persist cce-jsession-http {
defaults from universal
mode universal
timeout 180
rule cce-presist-http
}
rule cce-presist-http {
when HTTP_REQUEST {
if { [HTTP::cookie exists "JSessionID"] } {
persist uie [HTTP::cookie "JSessionID"]
} else {
set jsess [findstr [HTTP::uri] "JSessionID" 11 ";"]
if { $jsess != "" } {
persist uie $jsess
}
}
}
when HTTP_RESPONSE {
if { [HTTP::cookie exists "JSessionID"] } {
persist add uie [HTTP::cookie "JSessionID"]
}
}
}
profile persist cce-jsession-addre-http {
defaults from source_addr
mode source addr
timeout 30
}
rule cce-direct-http {
when HTTP_REQUEST {
if { [HTTP::uri] starts_with "/cce-presentation-kiosk-a3/"} {
pool CCE_A3_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-fv/"} {
pool CCE_FV_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-fv/"} {
pool CCE_FV_WCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-ma/"} {
pool CCE_MA_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-ma/"} {
pool CCE_MA_WCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-mh/"} {
pool CCE_MH_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-mh/"} {
pool CCE_MH_WCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-lg/"} {
pool CCE_LG_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-lg/"} {
pool CCE_LG_WCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-lx/"} {
pool CCE_LX_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-lx/"} {
pool CCE_LX_WCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-sp/"} {
pool CCE_SP_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-sp/"} {
pool CCE_SP_WCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-tg/"} {
pool CCE_TG_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-kiosk-un/"} {
pool CCE_UN_KCI
} elseif { [HTTP::uri] starts_with "/cce-presentation-web-un/"} {
pool CCE_UN_WCI
} else {
log local0. "URI doesn't match; rejecting connection http://[HTTP::host][HTTP::uri]"
reject
}
}
}
--------
Thanks,
Christopher G Davis
Sr. Network Engineer
SITA Atlanta Data Center