Here is what I have developed so far as way to persist based on the issued JSESSIONID:
rule WeblogicJSessionPersist {
when HTTP_RESPONSE {
set key [HTTP::cookie "JSESSIONID"]
set value [IP::server_addr]:[TCP::server_port]
if {$key != ""} {
log local0. "Adding jsess of: $key, value of: $value"
session add uie $key $value
set value2 [session lookup uie $key]
log local0. "Re-looking up key: $key, provides value: $value2"
}
}
when HTTP_REQUEST {
set jsess [findstr [HTTP::uri] "jsessionid" 11 ;]
log local0. "Entering REQUEST, jsess is: $jsess"
if { $jsess != "" } {
set server [session lookup uie $jsess]
log local0. "Server IP is: $server"
if { $server != "" } {
pool Weblogic_HTTP_Pool member $server
}
}
}
}
I know it's not the most efficient way of doing the job, but the limited testing I have done so far seems to indicate that it's a good start. Any suggestions for making this work in a more streamlined manner would be much appreciated.