Forum Discussion
abeny_894
Nimbostratus
Dec 17, 2008Questions for calculate concurrent session
Dear all,
I would like to ask how can I user iRules to check the HTTP session, and calculate the accumlate HTTP session, if the total HTTP session is reach the MAX concurre...
hoolio
Cirrostratus
Dec 19, 2008There isn't a way from an iRule to get a count of sessions stored in the session table. There is an existing CR (CR61210) requesting this functionality. You could open a case with F5 Support to ask them to build this feature in a future release.
That said, there is a work around for this.
You can add a session table entry by using the iRule session command:
Generate a new 8 digit client ID
set client_id "client_id_[format "%08d" [expr { int(100000000 * rand())}]]"
Insert a cookie with the client ID
HTTP::cookie insert name $::session_cookie_name value $client_id
Add the client ID to the session table with a session timeout (in seconds). The value of "1" isn't used for anything.
session add uie $client_id "1" $::session_timeout
The session timeout will be enforced by TMM so that old session table entries are removed after the timeout expires. Using a shell script, you can get a count of the session table entries from the command line by running 'bigpipe persist':
session_count=`b persist mode universal show all|grep -c client_id`
You can then update a datagroup with the current count using the 'bigpipe class' command:
b class current_sessions_count_class $session_count
You can then reference the current_sessions_count_class from your iRule:
set ::available_sessions [expr $::max_session_count_class - $::current_sessions_count_class]
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
