I could never get a 100% solution with only the persist command. Probably my flawed coding, but rather than spin my wheels I switched to the session flavor of persistence so I could store the serverIP. If I get a match, I send the connection directly to the pool member serverIP stored in the session table:
when HTTP_RESPONSE {
if { [HTTP::cookie exists "JSESSIONID"] } {
set trimID [lindex [split [HTTP::cookie "JSESSIONID"] "!" ] 0 ]
if { [session lookup uie $trimID] equals "" } {
session add uie $trimID [IP::server_addr] 1800
}
}
}
when HTTP_REQUEST {
if { [findstr [HTTP::uri] "jsessionid" 11 "!"] != ""} {
pool MyPool member [session lookup uie [findstr [HTTP::uri] "jsessionid" 11 "!"] ]
} else {
pool MyPool
}
}