|
Problem(Abstract) |
Basic debugging options for the Just In Time (JIT)
compiler using the variable, JITC_COMPILEOPT, for the Java™ SDK that is
installed with WebSphere® Application Server. |
|
|
|
Cause |
You can disable the JIT and interpret the bytecode to
resolve multiple problems with the JIT compiler. |
|
|
Resolving the
problem |
The JIT compiler provides a comprehensive set of
conditional code points that you can switch in and out by using
environment variables. These variables are called the JIT compile options.
All these options take the following form:
JITC_COMPILEOPT=value
You can set a value to disable a specific part of the JIT.
You can set the environment variable, JITC_COMPILEOPT, on
WebSphere Application Server V3.5, V4.0, V5.0, V5.1 and V6.0. Select the
version of WebSphere you want from the following list:
WebSphere Application Server V6.0
To set the following Environment Entries from the administrative console
in WebSphere versions V6.0 and WebSphere V6.0.1, follow these steps:
- Open the Administrative Console.
- Select Servers > Application Servers >
server_name > Java and Process Management > Process
Definition > Environment Entries > New.
- If you are using WebSphere Application Server V6.0.2 or greater,
navigate in the Administrative Console to: Application servers >
server_name > (Expand Java and Process Management) >
Process Definition > Custom Properties
- Add the following Name/Value pairs:
Name: JITC_COMPILEOPT
Value: value
- Make sure that you save your changes to the master configuration and
restart the Application Server.
WebSphere Application Server V5.0 and V5.1
To set the following Environment Entries from the administrative console
in WebSphere versions V5.0 and WebSphere V5.1, follow these steps:
- Open the Administrative Console
- Select Servers > Application Servers >
server_name > Process Definition > Environment
Entries > New.
- Add the following Name/Value pairs:
Name: JITC_COMPILEOPT
Value: value
- Make sure that you save your changes to the master configuration and
restart the Application Server.
WebSphere Application Server V4.0
To set the Environment Entries from startupServer script in WebSphere
V4.0, follow these steps:
- Open the startupServer script and add the following lines:
JITC_COMPILEOPT=value
export JITC_COMPILEOPT
Location of startupServer script:
AIX®
/usr/WebSphere/AppServer/bin/startupServer.sh
HP-UX, Linux®, and Solaris™:
/opt/WebSphere/AppServer/bin/startupServer.sh
Microsoft® Windows®:
In the adminserver.bat file, located in the
install_root\AppServer\bin directory, set the
JITC_COMPILEOPT environment variable:
SET JITC_COMPILEOPT=value
- Apply the change, then stop and restart the WebSphere Application
Server using the adminserver file.
To set the Environment Entries from the Administrative Console in
WebSphere V4.0, follow these steps:
- Select Nodes > node_name > Application
Servers > server_name.
- Click Environment... in the General Pane.
- Add the following Name/Value pairs and click OK button
Name: JITC_COMPILEOPT
Value: value
- Make sure that you save the changes by clicking Apply button
and restart Application Server.
WebSphere Application Server V3.5
To set the following Environment Entries in WebSphere V3.5, follow these
steps:
For Windows platforms:
- Set the JITC_COMPILEOPT environment variable in the
adminserver.bat file, located in the
install_root\AppServer\bin\debug directory:
SET JITC_COMPILEOPT=value
- Apply the change, then stop and restart the WebSphere Application
Server using the adminserver.bat file.
On UNIX® platforms:
Edit install_root/AppServer/bin/startupServer.sh
as follows:
JITC_COMPILEOPT=value
export JITC_COMPILEOPT
JIT compiler options
The basic JIT compile options are:
To disable on-the-fly hot JITC compilation:
JITC_COMPILEOPT=NMMI2JIT
To disable method inlining:
JITC_COMPILEOPT=NINLINING
To disable intermediate code optimizations:
JITC_COMPILEOPT=NQOPTIMIZE
To disable both global and method-local optimizations:
JITC_COMPILEOPT=NALL
To skip using a package, class or method use the following parameters:
COMPILING |
Output which methods are compiled or are skipped while
being compiled |
SKIP |
Skip compiling all methods |
SKIP{P/C}{M} |
Skip the M method from the C class in the P package |
SKIP{P1/C1}{M1}{P2/C2}{M2} |
Skip compiling both P1.C1.M1() and P2.C2.M2() methods |
NALL |
Syntax as with SKIP except that it disables only
optimization of methods. |
You can determine a failing method to skip as a temporary workaround by
having a support representative review the compiling output and the JIT
Problem Determination guide.
These options can be combined:
- On UNIX use : (colon)
- On Windows ; (semicolon)
The C and M can be a wildcard specification. For example:
JITC_COMPILEOPT=
COMPILING:SKIP{P1/*}{*}
{P2/Q2/C2}{M2}:NALL{P3/C3}{*}
This example shows what is compiled, skips everything in package P1 and
the P2.Q2.C2.M2() method, and disables optimization of every method in the
P3.C3 class. |
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|