users@glassfish.java.net

Re: How can improve the ACC performance

From: <glassfish_at_javadesktop.org>
Date: Wed, 12 Sep 2007 07:34:48 PDT

Wendyru,

Thanks for posting the log. I can't be sure exactly what part of the start-up is taking all that time. The log messages would seem to implicate the IIOP code but that may not be the only work going on between the "IIOP endpoints" message and the "Load Application Class" message.

As you may know, during deployment the server creates a generated app client JAR file. This is the file that is downloaded by Java Web Start and which also should be used during launches with the appclient script. This file contains not only the developer-written app client but also any library JAR files that are part of your EAR, as well as copies of EJB modules that are part of the EAR.

(The Java EE spec requires that library JARs be available to all application components, including clients. Before the explicit statements about library support appeared in the spec, GlassFish and its predecessor, as a convenience feature, include any EJB submodule contents in the generated app client JAR as well.)

The app client container must expand the generated app client JAR into a temporary directory before it can work with the contents of that JAR. The time it takes to do this depends, naturally, on the size of the generated app client JAR file being expanded. This is what Steve was referring to in his reply to your note.

If your generated app client JAR is large this expansion work could account for at least part of the slow start-up time.

As I said, I'm not positive this is exactly the cause but it's certainly possible.

As for Steve's question about an improvement in the expansion behavior in the GlassFish V2 timeframe, nothing will happen for V2 (app server 9.1) since that release is pretty well locked down now. Realistically, I don't think there is much change of improvement in the planned update release either. It's not that we think this is unimportant, but (1) the changes required are extensive enough to fall outside the range we'd normally do during an update release, and (2) removing the EJB submodules from the generated JAR - which would help your situation greatly - would break backward compatibility. Things could change, but it will probably be V3 when this is really addressed.

- Tim
[Message sent by forum member 'tjquinn' (tjquinn)]

http://forums.java.net/jive/thread.jspa?messageID=235057