Forum Discussion

Ray_Ebersole_13's avatar
Ray_Ebersole_13
Icon for Nimbostratus rankNimbostratus
Jun 06, 2015

iRule in Exchange VS throwing error

Hi,

I asm receiving an error every second for the same iRule over the last few days, and understand where it is being triggered, but not seeing a solution. I would appreciate any type of direction or ideas to help stop this error. Thanks in advance.....Ray

Error:

TCL error: /Common/Exchange_CAS.app/Exchange_CAS_apm_combined_pool_irule7 - attempt to use empty persistence key (line 2) invoked from within "persist uie $sessionid 7200" ("/owa" arm line 4) invoked from within "switch -glob -- [string tolower [HTTP::path]] { "/microsoft-server-activesync" { pool Exchange_CAS_as_pool7 persist u..."

iRule:

when ACCESS_ACL_ALLOWED { set sessionid [ACCESS::session data get "session.user.sessionid"] switch -glob -- [string tolower [HTTP::path]] { "/microsoft-server-activesync" { pool Exchange_CAS_as_pool7 persist uie $sessionid 7200 COMPRESS::disable CACHE::disable return } "/owa" {

        pool Exchange_CAS_owa_pool7
        persist uie $sessionid 7200
        return
    }
    "/ews*" {
        pool Exchange_CAS_oa_pool7
        persist uie $sessionid 7200
        COMPRESS::disable
        CACHE::disable
        return
    }
    "/ecp*" {

        pool Exchange_CAS_owa_pool7
        persist uie $sessionid 7200
        return
    }
    "/oab*" {
        pool Exchange_CAS_oa_pool7
        persist none
        return
    }
    "/rpc/rpcproxy.dll*" {
        pool Exchange_CAS_oa_pool7
        COMPRESS::disable
        CACHE::disable
        persist uie $sessionid 7200
        return
    }
    "/autodiscover*" {
        pool Exchange_CAS_ad_pool7
        persist none
        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
        pool Exchange_CAS_owa_pool7
        persist uie $sessionid 7200
    }
}

} when HTTP_RESPONSE { if { [string tolower [HTTP::header values "WWW-Authenticate"]] contains "negotiate"} { ONECONNECT::reuse disable ONECONNECT::detach disable NTLM::disable } if {[HTTP::header exists "Transfer-Encoding"]} { HTTP::payload rechunk } }

  • giltjr's avatar
    giltjr
    Icon for Nimbostratus rankNimbostratus

    Is it possible that session.user.sessionid is empty/null? Try logging what the value of session.user.sessionid or sessionid is before you enter the switch to make sure it has a value.

     

  • mikeshimkus_111's avatar
    mikeshimkus_111
    Historic F5 Account

    Agree with giltjr here, the $sessionid variable comes directly from your APM session. Did you use the iApp to set this up, and if so, which version? Which version of BIG-IP is this?

     

    thanks