The goal of the appserver_8_hang.sh script is to automate the collection of debug data if the Application Server gets into an unresponsive state when running on a Solaris system.
All data generated by the script is compiled under a single tar.gz file named APPSERVD_DATA_ddmmyyhhmmss.tar.gz, where ddmmyyhhmmss is the date and timestamp.
In addition to general debug data, this script gathers data three times on the specific instance (prstat -L -p, pflags, pstack, pmap, pldd, pfiles), separated by the time specified in the variable INTERVAL (see below).
The script also enables you to optionally get:
gcore
Java thread dumps by sending a SIGQUIT signal to the process (note that this output is sent to the Application Server server.log file)
Truss
HTTP 1.0 and 1.1 requests
Java 5–specific information (jps, jinfo, jmap, jstack)
Known limitations:
Only data from DAS instances or specific instances can be gathered.
If there are two or more Application Server domains with the same name running on the same machine, there is no guarantee that the data gathered will correspond to the intended domain.
The following variables must be defined before running the script:
Either domain name, if gathering DAS instance information, or instance name, if gathering non-DAS instance information
Output directory where temporary and final data will be stored
Host name/IP of the interface on which the HTTP requests will be made when using the INTERVAL variable (see below)
HTTP port on which the HTTP requests will be made (see below)
Optionally, you can set the following at run time:
Determines the interval between loops (see above); defaults to 10 seconds
If the app server is running Java 5, choose “yes” to have the script run additional Java 5–specific commands (jps, jinfo, jmap, jstack)
Required if JAVA_5=yes
Determines whether a gcore of the Application Server process will be taken (GCORE="yes") or not (any other value); running the pkg_app.sh script on the generated core file is required if this variable is enabled
Determines whether kill -3 will be run on the Application Server process (to obtain Java thread dump)
Determines whether the Application Server process will be trussed for TRUSS_DURATION; defaults to 30 seconds
Determines whether an HTTP 1.0 request will be made on the Application Server's HTTP interface (DAS_OR_INSTANCE_HTTP_PORT)
Determines whether an HTTP 1.1 request will be made on the Application Server's HTTP interface (DAS_OR_INSTANCE_HTTP_PORT)
The URI used when running the HTTP requests (see above)