Forum Discussion

CraigM_17826's avatar
CraigM_17826
Icon for Altocumulus rankAltocumulus
Jun 18, 2010

This is driving me nuts...TCL error being reported in ltm log

Hi all,

 

 

I have an issue that apparently has just started and I can't seem to work out what is going on. Having a bad case of flu does not help the cause much either.

 

 

When the iRule for one of our VIPS is executed I am seeing this error in the ltm logfile.

 

 

Jun 18 13:49:29 local/tmm err tmm[2487]: 01220001:3: TCL error: WebSphere_MST_HTTPS - Illegal value (line 1) invoked from within "persist add uie [HTTP::cookie "JSESSIONID"] 1800"

 

 

Here is the iRule in it's entirity. This used to work as of a day or so ago and no one is putting up their hand to have made any changes. I've checked the iRule for any non printable characters and removed all tabs and replaced them with white spaces, not that that should have been the issue but I was clutching at straws. I am sure it's not a code issue per'se as I use the same code in other rules which are not generating these errors.

 

 

 


 Bare bones iRule for websphere application server master environment
when CLIENT_ACCEPTED {
 set add_persist 1
}
when HTTP_RESPONSE {

 Check if there is a jsessionid cookie in the response.
if { [HTTP::cookie exists "JSESSIONID"] and $add_persist } {
      persist add uie [HTTP::cookie "JSESSIONID"] 1800
      set add_persist 0  
   }
if { [HTTP::is_redirect] } {
      if { [HTTP::header Location] contains "hostname:10040" } {
      HTTP::header replace Location [string map -nocase {hostname:10400 hostname} [HTTP::header value Location]]
     return    
   }
  }   
}
when HTTP_REQUEST {
HTTP::header replace "Accept-Encoding" "" 
if { [HTTP::cookie exists "JSESSIONID"] } {
      persist uie [HTTP::cookie "JSESSIONID"] 1800
   } else {
      set jsess [findstr [string tolower [HTTP::uri]] "jsessionid=" 11 ";"]
      if { $jsess != "" } {
         persist uie $jsess 1800
      }
   }
pool WPS6_MST 
}

 

 

Any suggestions?

 

 

Regards,

 

 

Craig

 

 

 

  • hoolio's avatar
    hoolio
    Icon for Cirrostratus rankCirrostratus
    Can you add checks to see if the jsessionid is not null before trying to persist on it? Also, you shouldn't need to set the pool in the iRule if you have it set on the VS.

    Aaron

    
    when CLIENT_ACCEPTED {
       set add_persist 1
    }
    
    when HTTP_RESPONSE {
    
       
        Check if there is a jsessionid cookie in the response.
       
       if { [HTTP::cookie value "JSESSIONID"] ne "" and $add_persist } {
          persist add uie [HTTP::cookie "JSESSIONID"] 1800
          set add_persist 0 
       }
    
       if { [HTTP::is_redirect] } {
          if { [HTTP::header Location] contains "hostname:10040" } {
             HTTP::header replace Location [string map -nocase {hostname:10400 hostname} [HTTP::header value Location]]
             return   
          }
      }  
    }
    
    when HTTP_REQUEST {
    
       HTTP::header replace "Accept-Encoding" ""
    
       if { [HTTP::cookie value "JSESSIONID" ne ""] } {
          persist uie [HTTP::cookie "JSESSIONID"] 1800
       } else {
          set jsess [findstr [string tolower [HTTP::uri]] "jsessionid=" 11 ";"]
          if { $jsess != "" } {
             persist uie $jsess 1800
          }
       }
    }