Forum Discussion

rkruse777_16953's avatar
rkruse777_16953
Icon for Nimbostratus rankNimbostratus
Sep 16, 2014

Java Cache

We are in the process of upgrading our Oracle 10g servers (pool members) to 11g and slowly adding the 11g and removing the 10g servers one at a time. This breaks the application because the .jar file versions are different. If an end user hits a 10g server first then on a subsequent request gets an 11g server then it will error stating there the version is too old. Vise-versa going from 11g to 10g servers it errors on the cached .jar files being too new. We are running BIG-IP version 11.4.1 build 608.0

 

Is there a way the F5 can modify the URL portion of the java cache? This is strictly an internal application. The URL that is getting cached with the .jar files (viewing with a java cache viewer) is that of the F5 virtual server. One way I was thinking of was to use an iRule to modify the F5 URL to that of the Pool member serving the java .jar files. Would something like that work? if so, are there some examples we could go off of?

 

Another option, Does the no-cache feature of the HTTP profile on F5 work for java cache? I was wondering if this could be used so that no matter which pool member was responding (11g or 10g) during a session is would grab those .jar files each time so that they were downloaded each time.

 

If there are other suggestions/options I am willing to listen.

 

This would most likely be temporary until all 11g servers are put into place and the 10g servers are pulled out.

 

6 Replies

  • can't you use persistence to make sure the request end up at the same server?
  • Arie's avatar
    Arie
    Icon for Altostratus rankAltostratus

    Is it the URL that gets cached or is it the payload (file) that gets cached. If so, where does it get cached? Secondly, where does 'it' (file or URL) get cached?

     

  • mikeshimkus_111's avatar
    mikeshimkus_111
    Historic F5 Account

    Agree with boneyard here, you should be able to use the default cookie persistence profile to send each subsequent request back to the initial server where the client was load balanced.

     

  • Thanks for the responses, This is an iApp using the template of f5.oracle_as_10g and has a custom session cookie, which was created by the iApp (basically the only thing custom is the name, using the default session cookie persistence with cookie insert). The .jar files are basically pushed to the client java cache on first connection to the application. The files are cached within the Java Runtime (JRE). They persist in the client’s java cache. The files are cached based on the complete URL to the file. These files do not expire with the session.
  • mikeshimkus_111's avatar
    mikeshimkus_111
    Historic F5 Account
    Can you identify specific clients that need to hit a either the 10g or 11g servers? If so and if their real IPs are visible to the BIG-IP, you could create 2 pools (one for 10g and another for 11g) and use the pool command to forward traffic to the correct pool by client IP address.
  • unfortunately no, The users be hitting both 11g and 10g servers as eventually all of the 10g servers will be switched out to 11g. They are planning on switching them out one by one. The Java JRE caches based on the entire URL, I was thinking that I could have an iRule that would change the response URL to that of the pool member. I think that would break because the client would be requesting the site from the VS and when they receive a response from the URL of the pool member it would drop the response because it does not recognize that it sent a request to that server.