Forum Discussion
Error Message in Irule while setting up Exchange 2010
Oct 31 07:54:28 local/tmm1 err tmm1[7417]: 01220001:3: TCL error: vs_Exchange_2010_OWA_INT_single_Persist_IRule_irule - Operation not supported (line 3) invoked from within "CACHE::disable" ("/ews*" arm line 10) invoked from within "switch -glob -- [string tolower [HTTP::path]] { "/microsoft-server-activesync" { ActiveSync. if { [HTTP::header ex..."
Oct 31 07:54:28 local/tmm err tmm[7416]: 01220001:3: TCL error: vs_Exchange_2010_OWA_INT_single_Persist_IRule_irule - Operation not supported (line 1) invoked from within "CACHE::disable" ("/ews*" arm line 10) invoked from within "switch -glob -- [string tolower [HTTP::path]] { "/microsoft-server-activesync" { ActiveSync. if { [HTTP::header ex..."
This is the Irule that seems to be causing the issue.
iRule to select pool and persistence method when all Exchange
Client Access services are accessed through the same BIG-IP
virtual server.
when HTTP_REQUEST {
switch -glob [HTTP::path] {
"/Microsoft-Server-ActiveSync*" {
Direct all ActiveSync clients to a common pool; use
HTTP cookie persistence
persist cookie
pool vs_Exchange_2010_OWA_EXT_single_as_pool
HTTP::class disable
}
"/rpc/rpcproxy.dll" {
Grab all requests for Outlook Anywhere; the following
checks assign correct persistence methods.
switch -glob [HTTP::header "User-Agent"] {
"MSRPC" {
This User-Agent section matches most versions of
Outlook and Windows using Outlook Anywhere.
The OutlookSession cookie is new to Outlook 2010.
if { [HTTP::cookie exists "OutlookSession"] } {
persist uie [HTTP::header "OutlookSession"] 3600
}
else {
persist uie [HTTP::header "Authorization"] 3600
}
}
"*Microsoft Office*" {
This section matches some versions of
Outlook 2007 on Windows XP
persist uie [HTTP::header "Authorization"] 3600
}
default {
This section catches all other requests for
Outlook Anywhere, and sets a persistence method
that does not require the client to support
HTTP cookies
persist source_addr
}
}
Finally, this assigns the Outlook Anywhere pool and turns
off full HTTP parsing and compression. If the preceding
clients should be sent to separate pools, the pool statement
should be removed here, and a separate pool statement
placed in each of the preceding logic branches.
Other modules (APM, ASM, etc.) should be disabled here
as well, if active for other traffic though this virtual
server.
pool vs_Exchange_2010_OWA_EXT_single_oa_pool
HTTP::disable
COMPRESS::disable
HTTP::class disable
}
"/xml/autodiscover.aspx" {
Requests for Autodiscovery information. The selected pool
might be unique, or might be the same as e.g. your pool
for OWA or ActiveSync. In this example, we use the same
pool that receives ActiveSync traffic.
persist cookie
pool vs_Exchange_2010_OWA_EXT_single_ad_pool
HTTP::class disable
}
default {
This final section takes all traffic that has not
otherwise been accounted for and sends it to the
pool for Outlook Web App
persist cookie
pool vs_Exchange_2010_OWA_EXT_single_owa_pool
If using the Web Accelerator module, uncomment the
following line and change the name to that of
your WA class.
HTTP::class select vs_Exchange_2010_OWA_EXT_single_wa_http_class
}
}
}
Is this a case of another Irule being used before this irule is called ? If someone can explain the error message to me that would be great.
Thanks
Shawn
5 Replies
- What_Lies_Bene1
Cirrostratus
It doesn't look like the error relates to the iRule you've listed. The error message states the iRule is called: vs_Exchange_2010_OWA_INT_single_Persist_IRule_irule and the one you've listed doesn't appear to contain the text "if { [HTTP::header ex..." as listed near the end of the error message. - shawn306_84070
Nimbostratus
My mistake. Here is the right one..
iRule to select pool and persistence method when all Exchange Client
Access HTTP-based services are accessed through the same BIG-IP virtual
server. This iRule will use an HTTP header inserted by a BIG-IP Edge
Gateway for persistence (if that header is present); otherwise it will
set persistence according to traditional methods.
CHANGE ALL POOL NAMES TO MATCH THOSE IN YOUR ENVIRONMENT.
when HTTP_REQUEST {
Offline Address Book and Autodiscover do not require persistence.
switch -glob -- [string tolower [HTTP::path]] {
"/microsoft-server-activesync" {
ActiveSync.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} elseif { [HTTP::header exists "Authorization"] } {
persist uie [HTTP::header "Authorization"] 7200
} else {
persist source_addr
}
pool vs_EXCHANGE_2010_OWA_single_as_pool
COMPRESS::disable
CACHE::disable
return
}
"/owa*" {
Outlook Web Access
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist cookie insert
}
pool vs_Exchange_2010_OWA_INT_single_owa_pool
return
}
"/ecp*" {
Exchange Control Panel.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist cookie insert
}
pool vs_Exchange_2010_OWA_INT_single_owa_pool
return
}
"/ews*" {
Exchange Web Services.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist source_addr
}
pool vs_Exchange_2010_OWA_INT_single_owa_pool
COMPRESS::disable
CACHE::disable
return
}
"/oab*" {
Offline Address Book.
pool vs_Exchange_2010_OWA_INT_single_owa_pool
return
}
"/autodiscover*" {
Autodiscover.
pool vs_Exchange_2010_OWA_INT_single_ad_pool
return
}
default {
This final section takes all traffic that has not otherwise
been accounted for and sends it to the pool for Outlook Web App
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist source_addr
}
pool vs_EXCHANGE_2010_OWA_single_owa_pool
}
}
}
when HTTP_RESPONSE {
if { [string tolower [HTTP::header values "WWW-Authenticate"]] contains "negotiate"} {
ONECONNECT::reuse disable
ONECONNECT::detach disable
this command disables NTLM conn pool for connections where OneConnect has been disabled
NTLM::disable
}
this command rechunks encoded responses
if {[HTTP::header exists "Transfer-Encoding"]} {
HTTP::payload rechunk
}
} - What_Lies_Bene1
Cirrostratus
The iRule looks good. Can you comment out the CACHE::disable commands and see if the error persists. Do you have a relevant profile assigned to the VS that enables caching? - hoolio
Cirrostratus
Do you have caching enabled on the HTTP profile? Did you use the iApp to deploy this?
Aaron - shawn306_84070
Nimbostratus
Ok I commented out the following lines and the messages stopped.
CACHE::disable
Aaron: I used the template to create everything. There is an http proflie where the compression is enabled and the Cache is disabled.
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
