|
Problem(Abstract) |
The following information helps determine the failing
class or method of a HotSpot failure on Solaris. The following also
describes how to avoid some of these failures. |
|
|
|
Resolving the
problem |
If you receive multiple HotSpot failures and cannot
determine the cause, try the following actions to provide a workaround:
- Enable PrintCompilation.
- For releases of WebSphere Application Server V5.0:
- In the Administrative Console, navigate to Servers >
Application Servers > server_name.
- In the Additional Properties section, select Process
Definition > Java Virtual Machine > Generic JVM arguments.
- Add the following JVM argument:
- Restart the JVM for the change to take effect.
- For releases of WebSphere Application Server V4.0:
Add the following Java™ virtual machine (JVM) argument.
- For Application Servers:
- In the Administrative Console, select the JVM settings tab of
the Application Server.
- Select Advanced JVM settings > Command line arguments.
- Add the following argument:
- Restart the JVM for the change to take effect.
- For Administrative Server:
- Open the following file:
install_root\bin\admin.configuration |
|
- Find the following line:
com.ibm.ejs.sm.util.process.Nanny.adminServerJvmArgs |
|
- Add the following argument to the line:
- Restart the JVM for the change to take effect.
Note: PrintCompilation writes to the native_stdout (for
version 5.0) and stdout (for version 4.0) file for the JVM,
indicating the class and method that are being HotSpot compiled.
Identifying the method compiled before the crash occurs is often helpful
in providing a workaround to stabilize the JVM.
Example of PrintCompilation output:
java.lang.String::<init> (157
bytes)
java.lang.String::hashCode (60 bytes)
java.util.jar.Attributes::read (256 bytes)
com.ibm.sslite.e::a (691 bytes)
com.ibm.sslite.h::c (428 bytes)
An unexpected exception has been detected in native code outside the
. Unexpected Signal : 11 occurred at PC=0xff330924
Function name=memcpy
Library=/usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1 |
|
|
- Identify the failing class and method compiled prior to the JVM
issuing a HotSpot failure. In the preceding example,
com.ibm.sslite.h::c.
- Configure the HotSpot runtime compiler to skip compilation of this
method by creating a file named .hotspot_compiler and add the
information in the file in the following format:
exclude <package/className>
<methodName> |
|
For example:
exclude com/ibm/sslite/h c |
|
Note: The hotspot_compiler should be copied to the
current working directory. To verify the working directory of the
JVM, perform the following:
- For releases of WebSphere Application Server V5.0, check for
the following in server.xml file:
workingDirectory="${USER_INSTALL_ROOT}" |
|
- For releases of WebSphere Application Server V4.0, check for
the following in a full XML config export:
<working-directory>C:/WebSphere/AppServer/bin
</working-directory> |
|
|
- Confirming the method is skipped from HotSpot compilation. If the
method was skipped correctly, you will see the following information in
the stdout(for version 4.0) or native_stdout(for version
5.0) file:
For the preceding sslite example:
CompilerOracle: exclude
com/ibm/sslite/h c |
|
Note: If the HotSpot failure is avoided, notify Sun Microsystems by
opening a bug report at: http://java.sun.com/cgi-bin/bugreport.cgi |
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|