128 Geac System21 commerce.connect: Implementation on the iSeries Server
If you have addressed most other performance issues, then you may want to try this
technique. At V5R1, the JIT compiler was greatly enhanced, although the benefit may not be
significant. Although some improvement in application startup may still be achieved.
Refer to Chapter 3, “Installing and setting up call.connect” on page 19, and Chapter 4,
“Installing and setting up vendor.connect” on page 73, for the names and locations of the JAR
files used by the application. These include ones that are described as “deployed” JAR files
that contain the EJB classes, “logic” JAR files that contain the application logic used by the
EJBs, and some utility JAR files.
You can check whether these JAR files already have a static program attached by using the
Display Java Program (DSPJVAPGM) command as shown in this example:
DSPJVAPGM CLSF('/OrderManagement/Deployed/roseao_deployed.jar')
Then you see the Display Java Program Information display (Figure 5-20). If you receive the
message “No Java program associated with the file”, then there is no hidden static
program and JIT compilation is used.
If some data is displayed, then look at the Optimization level. The highest level is 40. Also look
at the value for the Classes without current Java programs parameter.
Figure 5-20 The DSPJVAPGM command used with a compiled JAR file
If there is no static program, the optimization level is less than 40, or some classes do not
have Java programs, then the compile may be worth trying. Compilation is performed using
the CRTJVAPGM command as shown in this example:
CRTJVAPGM CLSF('/OrderManagement/Deployed/roseao_deployed.jar') OPTIMIZE(40)
This command can be slow, especially for large JAR files, and you may want to submit it to
batch. Repeat this command for all JAR files used by the application. You can use generic
names, for example, *.jar at the end of the path. If you compile all the JAR files in the
application directory at one time, then it will be very slow so then you certainly submit them to
batch. Check the job log periodically. You will see a message each time it completes a JAR
file so you can check the progress.
You can also apply this to individual class files but none that are used by call.connect or
vendor.connect at the moment.
Outside of WebSphere, this program would be detected and used with no further effort.
Unfortunately, WebSphere adds a complication. It may use its own
custom class loader in