This section describes the kinds of debug data you need to provide based on the problem you are experiencing.
This section contains the following tasks:
To Collect Required Debug Data For Any Directory Proxy Server Problem
To Collect Required Debug Data For Directory Proxy Server Installation Problems
To Collect Required Debug Data For an Unresponsive or Hung Directory Proxy Server Process
To Collect Required Debug Data For a Crashed Directory Proxy Server Process
To Collect Required Debug Data For Directory Proxy Server Console Problems
All problems described in this technical note need basic information collected about when the problem occurred and about the system having the problem. Use this task to collect that basic information.
Note the time or times the problem occurred.
If possible, collect explorer output from SUNWexplo software on the system where the problem occurred.
Provide graphical representation of your deployment.
The graphical representation of your deployment is key to understanding the context of the problem. Show the following in the graphical representation.
All computers involved, with their IP addresses, hostnames, roles in the deployment, operating systems, and versions used.
All other relevant systems, including load balancers, firewalls, and so forth.
Note the operating system version.
uname -a
uname -r
cat /etc/redhat-release
C:\Program Files\Common files\Microsoft Shared\MSInfo\msinfo32.exe /report C:\report.txt
Note the patch level.
showrev -p
swlist
rpm -qa
Already provided in C:\report.txt.
Note the version of Directory Proxy Server.
To determine the version information, use the ldapfwd -v command.
server-root/bin/dps/server/bin/ldapfwd -v
On UNIX and Linux systems, you might see the following error.
ld.so.1: ldapfwd: fatal: libnss3.so: open failed: No such file or directory
If you see the error, set LD_LIBRARY_PATH to include Directory Proxy Server libraries in your load path. For example, if you use sh, use the following command.
export LD_LIBRARY_PATH=server-root/lib
Collect the Directory Proxy Server configuration file generated with the dpsconfig2ldif command.
server-root/bin/dps_utilities/dpsconfig2ldif -t server-root/dps-serverID/etc/tailor.txt -o /tmp/config.ldif
server-root\bin\dps_utilities\dpsconfig2ldif -t server-root\dps-serverID\etc\tailor.txt -o %TEMP%\config.ldif
Collect Directory Proxy Server trace logging information.
Collect Directory Server version information with the nsslapd -V command for directories accessed through the proxy.
server-root/bin/slapd/server/ns-slapd -D instance-dir -V
Collect Directory Server access, errors, and audit logs for directories accessed through the proxy.
When you find more than one log file of each type, collect each of the log files. If possible, provide logs that show server operation before the problem occurred, and also logs written as the problem occurred.
By default, you find these logs in the following locations.
server-root/slapd-serverID/logs/access
server-root/slapd-serverID/logs/errors
server-root/slapd-serverID/logs/audit (if enabled)
If these log files are not in the default locations, examine the Directory Server configuration file, server-root/slapd-serverID/config/dse.ldif, to find the paths to the logs. The paths are specified as the values of attributes nsslapd-accesslog, nsslapd-errorlog, and nsslapd-auditlog.
This procedure describes what data to collect when you cannot complete Directory Proxy Server installation.
If the problem concerns a general installation failure for Java Enterprise System, first check the installation troubleshooting chapter in the Installation Guide for your version of Java Enterprise System.
For compressed archive installations, collect installation output showing system calls.
Reinstall while using the appropriate command for your system from the following list. Collect the output of the command that is displayed during installation.
truss -ealf -rall -wall -vall -o /tmp/install-dps-truss.out ./setup
tusc -v -fealT -rall -wall -o /tmp/install-dps-tusc.out ./setup
strace -fv -o /tmp/install-dps-strace.out ./setup
Use DebugView.
DebugView is available at http://www.sysinternals.com/Utilities/DebugView.html.
For Java Enterprise System installations, collect installation error logs.
The log file is named after the date and time that the installation failed. For example, a log file for an installation that failed on December 16 at 3:32 p.m. would have a name like Java_Enterprise_System*_install.B12161532.
On Solaris systems, installation logs are located under /var/sadm/install/logs.
On Red Hat and HP-UX systems, installation logs are located under /var/opt/sun/install/logs.
On Windows systems, installation logs are located under C:\Documents and Settings\current-user\Local Settings\Temp.
This procedure describes what data to collect when Directory Proxy Server is still running, but is no longer responding to client application requests.
Collect the data describe in this procedure while the server is hanging.
Note the time during which the hang is seen to occur.
Collect information about the port used during the hang.
netstat -an | grep dps-port
On Solaris OS, also collect the output of pfiles pid, where pid is the process ID of the unresponsive server process.
netstat -an
Collect statistics about the system running Directory Proxy Server.
ps -aux | grep server-root
vmstat 5 5
iostat -x
top
uptime
ps -aux | grep server-root
vmstat 5 5
iostat -x
top
sar
ps -aux | grep server-root
vmstat 5 5
top
uptime
sar
Get the process ID using the tlist.exe command, then get process details using the same command.
win-dbg-root\tlist.exe pid
Collect swap information.
swap -l
swapinfo
free
Already provided in C:\report.txt.
On Solaris systems, collect output from pstack and pmap five times, once every ten seconds.
pstack pid
pmap -x pid
Get output showing system calls during the hang, by letting each of the commands listed here run for about a minute, then stopping them by typing Control-C.
truss -ealf -rall -wall -vall -o /tmp/truss.out -p pid
tusc -v -fealT -rall -wall -o /tmp/truss.out -p pid
strace -fv -o /tmp/strace.out -p pid
Use Debug View.
DebugView is available at http://www.sysinternals.com/Utilities/DebugView.html.
Collect core files or crash dumps, and related command output.
When the server is hanging, attempt to get several core files that show the state of the server threads over time. You can do this by generating a core file, changing the name of the core file, waiting 30 seconds to a minute, and generating another core file. Repeat the process at least once to get a minimum of three sets of core files and related data.
cd server-root/bin/dps/server/bin
gcore -o /tmp/dps-core pid
pstack /tmp/dps-core
For each core file on Solaris OS, collect output from the following commands.
cd server-root/bin/dps/server/bin
file core-file
pstack core-file
pmap core-file
pflags core-file
For at least one of the core files on Solaris OS, collect output from the pkg_app script.
./pkg_app.ksh pid core-file
Here, pid is the server process ID number. See To Run the pkg_app Script for instructions on using pkg_app.
cd server-root/bin/dps/server/bin
If you have the patches PHKL_31876 and PHCO_32173 patches installed, generate the core file using the gcore command.
gcore -p pid
Otherwise, use the gdb command to generate the core file.
gdb
(gdb) attach pid
Attaching to process pid
No executable file name was specified
(gdb) dumpcore
Dumping core to the core file core.pid
(gdb) quit
The program is running. Quit anyway (and detach it)? (y or n) y
Detaching from program: , process pid
cd server-root/bin/dps/server/bin
gdb
(gdb) attach pid
Attaching to process pid
No executable file was specified
(gdb) gcore
Saved corefile core.pid
(gdb) backtrace
(gdb) quit
win-dbg-root\tlist.exe
win-dbg-root\adplus.vbs -hang -p pid -o C:\dump-dir
Collect everything in the folder under C:\dump-dir.
This procedure describes what data to collect when a Directory Proxy Server process unexpectedly dies.
Try to restart Directory Proxy Server and record the results.
Include the test case to reproduce the problem.
Collect statistics about the system running Directory Proxy Server.
ps -aux | grep server-root
vmstat 5 5
iostat -x
top
uptime
ps -aux | grep server-root
vmstat 5 5
iostat -x
top
sar
ps -aux | grep server-root
vmstat 5 5
top
uptime
sar
Get the process ID using the tlist.exe command, then get process details using the same command.
win-dbg-root\tlist.exe pid
Collect swap information.
swap -l
swapinfo
free
Already provided in C:\report.txt.
Collect system logs.
/var/adm/messages
/var/log/syslog
/var/adm/syslog/syslog.log
/var/log/messages
/var/log/syslog
Retrieve the Event log files.
From the Control Panel, open the Event Viewer. Select the event log. Then select Action > Save log file as to save the log.
Collect core files.
For instructions on preparing your system to produce core files or crash dumps in the event of a crash, see 1.6 Configuring the Operating System to Generate Core Files.
For each core file on Solaris OS, collect output from the following commands.
cd server-root/bin/dps/server/bin
file core-file
pstack core-file
pmap core-file
pflags core-file
For at least one of the core files on Solaris OS, collect output from the pkg_app script.
./pkg_app.ksh pid core-file
Here, pid is the server process ID number. See To Run the pkg_app Script for instructions on using pkg_app.
This section describes what data to collect when part of the Directory Proxy Server Console fails to comply with what you expect.
Collect screen shots of the affected screen or screens.
The screen shots should show the problem you are experiencing.
Provide step by step instructions for reproducing the problem.
If needed, also provide test case data.
Collect debug traces for Directory Proxy Server Console when you reproduce the problem, saved in a console-debug.txt file.
startconsole -D 9 > console-debug.txt
Collect Administration Server access and error logs.
The access log is server-root/admin-serv/logs/access.
The error log is server-root/admin-serv/logs/error.