Dmitry_Kuzura
Nov 17, 2008Nimbostratus
need help with iRule that is using a piece of TCP payload for persistence
Guys,
need some help with the subject.
there is a communication going on between front-end and back-end servers.
communication consists of a number of separate TCP connections.
when initial connection goes from the front-end to the back-end server, the back-end servers gets picked up from the pool.
in reply the back-end server inserts its ID into a payload.
When fron-end servers initiates next TCP connection, it is inserting that ID into the payload. I'm using TCP::collect in order to catch that. and I'm able to see that ID. Means it is present and correct.
after i catch that ID i'm trying to send this connection to a specific back-end server..and i'm getting Tcl errors about address being in use.
tried using LB::detach before pool command - no luck.
any ideas?
when CLIENT_ACCEPTED {
TCP::collect 2 56
}
when CLIENT_DATA {
if {[TCP::payload 2] == "40" } {
pool member
log local0. "the ID value is [TCP::payload 2]
}
elseif {[TCP::payload 2] == "50" } {
pool member
log local0. "the ID value is [TCP::payload 2]
}
TCP::release
}
thx!