Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2176412 | 6u14 | Sean Coffey | P2 | Resolved | Fixed | b06 |
JDK-2172272 | 6u13-rev | Sean Coffey | P3 | Resolved | Fixed | b07 |
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://<tsm-srv>:1581/dsm.jar with proxy=HTTP @ <proxy-server>:8080
network: Connecting http://<tsm-srv>: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://<tsm-srv>:1581/dsm.jar with proxy=HTTP @ <proxy-server>:8080
with the following message associated:
network: Cache entry not found [url: http://<tsm-srv>: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://<tsm-srv>:1581/dsm.jar
--15:23:22-- http://<tsm-srv>: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.
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://<tsm-srv>:1581/dsm.jar with proxy=HTTP @ <proxy-server>:8080
network: Connecting http://<tsm-srv>: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://<tsm-srv>:1581/dsm.jar with proxy=HTTP @ <proxy-server>:8080
with the following message associated:
network: Cache entry not found [url: http://<tsm-srv>: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://<tsm-srv>:1581/dsm.jar
--15:23:22-- http://<tsm-srv>: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.
- backported by
-
JDK-2176412 IBM applet is very slow on JRE6 due to repeated JAR file downloads w/ no HTTP header 'last-modified'
-
- Resolved
-
-
JDK-2172272 IBM applet is very slow on JRE6 due to repeated JAR file downloads w/ no HTTP header 'last-modified'
-
- Resolved
-
- relates to
-
JDK-6842992 MultiJRE:(Regression) With 6u14 , 1.4.2 applets fails to load
-
- Resolved
-
-
JDK-4972238 Slow JAR file download when server doesn't return HTTP header last-modified
-
- Closed
-
-
JDK-6209058 Jar files not cached if web server doesn't return last-modified date
-
- Closed
-