Before proceeding in problem determination, there are some
initial questions to be answered.
- Have you changed anything recently?
- If you have changed, added, or removed software or hardware just
before the problem occurred, back out the change and see if the problem
persists.
- What else is running on the workstation?
- If you have other software, including a firewall, try switching
it off to see if the problem persists.
- Is the problem reproducible on the same workstation?
- Knowing that this defect occurs every time the described steps
are taken is helpful because it indicates a straightforward programming
error. If the problem occurs at alternate times, or occasionally,
thread interaction and timing problems in general are much more likely.
- Is the problem reproducible on another workstation?
- A problem that is not evident on another workstation might help
you find the cause. A difference in hardware might make the problem
disappear; for example, the number of processors. Also, differences
in the operating system and application software installed might make
a difference to the JVM. For example, the visibility of a race condition
in the JVM or a user Java™ application
might be influenced by the speed at which certain operations are performed
by the system.
- Does the problem occur on multiple platforms?
- If the problem occurs only on one platform, it might be related
to a platform-specific part of the JVM. Alternatively, it might be
related to local code used inside a user application. If the problem
occurs on multiple platforms, the problem might be related to the
user Java application. Alternatively,
it might be related to a cross-platform part of the JVM such as the Java Swing API. Some problems might
be evident only on particular hardware; for example, Intel® 32 bit architecture. A problem on particular
hardware might indicate a JIT problem.
- Can you reproduce the problem with the latest Service Refresh?
- The problem might also have been fixed in a recent service refresh.
Make sure that you are using the latest service refresh for your
environment. Check the latest details on
the product Web site http://www-01.ibm.com/software/webservers/realtime/ or on http://www.ibm.com/developerWorks.
- Are you using a supported Operating System (OS) with the latest
patches installed?
- It is important to use a supported operating
system with the latest patches applied. For example, upgrading system
libraries can solve problems. Later versions of system software can
provide a richer set of diagnostic information. For more information,
see AIX problem determination . Check for latest details on http://www.ibm.com/developerworks.
- Does turning off the JIT or AOT help?
- If turning off the JIT or AOT prevents
the problem, there might be a problem with the JIT or
AOT. The problem can also indicate a race condition in your Java application that surfaces only
in certain conditions. If the problem is intermittent, reducing the
JIT compilation threshold to 0 might help reproduce the problem more
consistently. (See JIT and AOT problem determination.)
- Have you tried reinstalling the JVM or other software and rebuilding
relevant application files?
- Some problems occur from a damaged or incorrect installation of
the JVM or other software. It is also possible that an application
might have inconsistent versions of binary files or packages. Inconsistency
is likely in a development or testing environment and could potentially
be solved by getting a fresh build or installation.
- Is the problem particular to a multiprocessor (or SMP) platform?
If you are working on a multiprocessor platform, does the problem
still exist on a uniprocessor platform?
- This information is valuable to IBM® Service.
- Have you installed the latest patches for other software that
interacts with the JVM? For example, the IBM WebSphere® Application Server
and DB2®.
- The problem might be related to configuration of the JVM in a
larger environment, and might have been solved already in a fix pack.
Is the problem reproducible when the latest patches have been installed?
- Have you enabled core dumps?
- Core dumps are essential to enable IBM Service
to debug a problem. Core dumps are enabled by default for the Java process. See Using dump agents for details.
The operating system settings might also need to be in place to enable
the dump to be generated and to ensure that it is complete. Details of the required settings are contained in AIX problem determination .
- Are you using shared class caches?
- Ensure that the name of the cache does not exceed 53 characters.
- What logging information is available?
- Information about any problems is produced by the JVM. You can enable
more detailed logging, and control where the logging information goes.