Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6688675

IBM applet is very slow on JRE6 due to repeated JAR file downloads w/ no HTTP header 'last-modified'

XMLWordPrintable

        IBM's Tivoli Storage Manager (TSM) client software is very slow due to
        repeated JAR file downloads when the server does not provide HTTP header
        'last-modified'.
        With TSM there is a native client and a web client provided. The web
        client is a Java applet, which consists of only one jar file "dsm.jar".
        This applet is having the problem.


        1. behavior
        -----------
        I used TSM web client Version 5, Release 4, Level 1.0.

        1.1 JRE 1.4.2 or JRE 1.5.0
        ---------------------------
        Using the TSM web client on JRE 1.4.2_16 or on 1.5.0_15 shows repeated
        downloads of its jar file of "dsm.jar". For only launching the applet,
        16, resp, 17 attempts were counted, resulting in a message about not
        caching the file each time:

        network: Connecting http://&lt;tsm-srv&gt;:1581/dsm.jar with proxy=HTTP @ <proxy-server>:8080
        network: Connecting http://&lt;tsm-srv&gt;:1581/dsm.jar with cookie "SUN_ID=<wiped>:52987908580279"
        basic: Last modified time and/or expiration value is not available. Jar file will not be cached.


        1.2 JRE 1.6.0
        --------------
        On JRE 1.6.0 the file "dsm.jar" is reported to be downloaded 18 times:

        network: Connecting http://&lt;tsm-srv&gt;:1581/dsm.jar with proxy=HTTP @ <proxy-server>:8080

        with the following message associated:

        network: Cache entry not found [url: http://&lt;tsm-srv&gt;:1581/dsm.jar, version: null]


        1.3 Performance
        ----------------
         It was measured the time from invoking a GUI function until
         the GUI fully responded by entirely having popped up the
         appropriate window.

         The cache was switched off by:
         1.5.0: Java (TM) Control Panel -> General -> Settings
          -> View Applets -> Options -> uncheck "Enable Caching"

         1.6.0: Java Control Panel -> General -> Settings
          uncheck "Keep temporary files on my computer"


         1.5.0_15 / time [sec] w/o cache w/ cache
         Launch of applet 10 20
         File->Connection Information 1 2
         Restore button 4 20
         1.6.0_06 / time [sec] w/o cache w/ cache
         Launch of applet 12 146 (= 2:26 min)
         File->Connection Information 2 7
         Restore button 3 404 (= 6:44 min)

         So, there is factor 7 (146/20) for only launching the applet,
         and factor 20 (404/20) for popping up a dialogue window for
         one of the applet's basic functions.


        1.4 TSM Web Server
        -------------------
        1.4.1 HTTP/1.0
        --------------
         The TSM Web Server appears to be sending HTTP/1.0:

        % telnet <tsm-srv> 1581
        Trying [wiped]...
        Connected to <tsm-srv>.
        Escape character is '^]'.
        HEAD / HTTP/1.1

        HTTP/1.0 501 Not Implemented
        Server: TSM_HTTP/0.1
        Content-type: text/html
        [ ... ]

        1.4.2 no 'last-modified' header
        -------------------------------
        % wget -S --server-response http://&lt;tsm-srv&gt;:1581/dsm.jar
        --15:23:22-- http://&lt;tsm-srv&gt;:1581/dsm.jar
                   => `dsm.jar'
        Resolving <proxy-server>... [wiped], [wiped]
        Connecting to <proxy-server>|[wiped]|:8080... connected.
        Proxy request sent, awaiting response...
          HTTP/1.1 200 OK
          Date: Mon, 14 Apr 2008 13:23:22 GMT
          Content-length: 2102631
          Server: TSM_HTTP/0.1
          Via: 1.0 proxy-proxy
          Proxy-agent: Sun-Java-System-Web-Proxy-Server/4.0
          Connection: close
        Length: 2,102,631 (2.0M)

        100%[======================================================================>] 2,102,631 355.64K/s ETA 00:00

        15:23:29 (323.94 KB/s) - `dsm.jar' saved [2102631/2102631]

        %
        1.5 dependency on http proxy server
        -----------------------------------
        It was not clear from the description so far, that the issue is not only
        dependent on the JRE but also on the http proxy server.

        I used three different http proxy servers and compared these against the
        use of no proxy server.

        I measured TSM applet download time in seconds from URL
        http://10.16.50.171:1581/
        depending on JRE and depending on http proxy server.
        IE 6 mit Classic Plug-in auf JRE 1.4.2_08
        -----------------------------------------
         proxy / time [sec] cache enabled cache disabled
         no proxy 34-34 34-34
         uk 37-38 35-35
         central 44-61 41-42
         sfbay 59-59 45-45


        IE 6 mit Classic Plug-in auf JRE 1.5.0_17
        -----------------------------------------
         proxy / time [sec] cache enabled cache disabled
         no proxy 35-36 33-36
         uk 39-40 36-37
         central 55-55 41-43
         sfbay 60-63 45-46


        IE 6 mit Classic Plug-in auf JRE 1.6.0_07
        -----------------------------------------
         proxy / time [sec] cache enabled cache disabled
         no proxy 38-40 33-35
         uk 61-65 36-36
         uk 61-62 36-36
         central 186-187 42-42
         sfbay 214-215 45-45


         We can see the following:
         - The use of a http proxy server has an effect on start-up time regardless
           if cache was enabled or not.
         - The effect is more visible when cache is enabled compared to cache
           disabled.
         - The effect of use of a http proxy server is very prominent, when using
           JRE 1.6 and having cache enabled.

              herrick Andy Herrick (Inactive)
              thlenz Thomas Lenz (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: