Forum Discussion
How many HTTP request can access IRules?
How many HTTP request can access IRules? If more than 1 HTTP request
can access a set of IRules associated with a VS, then do they have their own set of variables or do they share a static variable? ".... own set of variables..." meaning each HTTP request variable X can be any value at any point in time. "... share a static variable..." meaning each HTTP request will share 1 variable X value and if it changes then it changes for ALL.
ex) If 2 HTTP request access IRules at the same time and manipulates X variable.
1) HTTP Request 1 changes variable X to "1" in HTTP REQUEST EVENT.
2) Then HTTP Request 2 changes variable X to "2" in HTTP REQUEST EVENT.
3) HTTP Request 2 uses variable X in the HTTP RESPONSE EVENT.
Is HTTP Request 2 variable X equal to "1" or "2"?
Thanks in advance.
TRX
6 Replies
- hoolio
Cirrostratus
Hi TRX,
Local variables are accessible for the life of the client connection. So X would be equal to 2. See these posts and its links for more info:
http://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/50/aft/1172260/showtab/groupforums/Default.aspxc
Aaron - The link you listed is not working properly.
So when you say X is equal to "2", I'm assuming you're implying more than 1 HTTP Request can access IRules, correct? - hoolio
Cirrostratus
I had an extra letter on the end of the URL. Can you try this:
http://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/50/aft/1172260/showtab/groupforums/Default.aspx1172986
If you have an iRule enabled with code in an HTTP_REQUEST event, the HTTP_REQUEST event will be triggered on each HTTP request. Local variables created or updated at any point during a client's connection to the virtual server will still be available until the connection is closed.
Aaron - Thanks. I will check it out.
With your example above, does the 2nd HTTP request wait for the 1st HTTP request (HTTP_RESPONSE event) to go out back to the client before the
it enters the HTTP_REQUEST event?
TRX - hoolio
Cirrostratus
Clients can pipeline requests with HTTP so that request one and request two are sent before a reply comes back for the first request. I'm not sure how TMM handles that. By default, pipelining is enabled on the HTTP profile. But I think OneConnect does not support pipelining.
I'll try testing and let you know what I find.
Aaron - L4L7_53191
Nimbostratus
Trx: for 'normal' variables set in iRules (as opposed to static::, globals, tables or data groups), they are scoped locally per connection. A connection hits the VIP, then instantiates the iRule and the variables are uniquely scoped to that flow. So connection 1 will only ever see connection 1's variables; ditto connection 2...
In that way an iRule is almost like an "object" that is born when the rule is executed. Without being explicitly global, variables are local.
--Matt Cauthorn
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* 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
