10 About Oracle Tuxedo Diagnostic Tool

This topic includes the following sections:

10.1 Overview

Diagnostic tool is a Tuxedo command. It provides a convenient way of collecting Tuxedo runtime information, especially when system administrators analyze problems that can only be reproduced in production environment.

10.2 Installation Requirements

To use diagnostic tool, install the commands listed in the following table, depending on your platform, and set them in environment variable PATH .

Platform Commands
Linux cp, file, gdb, gstack, ldd, lsb_release, ps, rm, strace, which
Solaris X86 cp, dbx, dirname, file, ldd, ps, psig, pstack, rm, showrev, truss, uname, which
Solaris Sparc cp, dbx, dirname, file ,ldd, ps, psig, pstack, rm showrev, truss, uname, which
AIX cp, dbx, dirname, file, instfix, ldd, oslevel, procstack, ps, rm, truss, uname, which, grep
HP-UNIX cp, dirname, file, gdb, ldd, lstrace, ps, pstack, rm, uname, which, ldd,gdb,pstack,uname, swlist
Windows DUMPBIN.exe, cbd.exe, systeminfo.exe, windbg.exe

10.3 Using Diagnostic Tool

Diagnostic tool is a Tuxedo command named diagnosetool under TUXDIR/bin.

10.3.1 Setting up Environment Variables

Before using the diagnostic tool, manually fill up diagnoseToolEnvFile file with the following environment variables and put it in TUXDIR/bin directory.
TUXDIR=<Value of Tuxedo Environment Variable TUXDIR>
Absolute pathname of Oracle Tuxedo
APPDIR=<Value of Tuxedo Environment Variable APPDIR>
Absolute pathname of Tuxedo application on the target managed node
TUXCONFIG=<Value of Tuxedo Environment Variable TUXCONFIG>
Absolute pathname of TUXCONFIG file on the target managed node
BDMCIBFUG=<Value of Tuxedo Environment Variable BDMCONFIG>
Absolute pathname of BDMCOBFIG file on the target managed domain
DIAGNOSEROOTDIR=<Value of Environment Variable DIAGNOSEROOTDIR>
Absolute pathname of diagnosetool

Note:

The configuration needs to be done at least one time. All environment variables are indispensable; any configuration change should be manually updated in diagnoseToolEnvFile.

10.3.2 Getting Runtime Information

  • On Unix platforms

    diagnosetool --type <error|crash|hang> [--tmtrace] [--aduitlog] [--ubb] [--dmc] [--core <core_path>] [--pid <Process_number>] [--trace <executable_with_option>]

  • On Windows platforms

    diagnosetool.exe --type <error|crash|hang> [--tmtrace] [--aduitlog] [--ubb] [--dmc] [--core <core_path>] [--pid <Process_number>]

10.4 Diagnostic Tool Options

type <error|crash|hang>

Before using this tool, specify the bug type properly.

  • type error: Program Logical Error
  • type crash: Server/Client Crash
  • type hang: Process Hang

For more information about bug type, see Debug Information.

tmtrace
Turn on TMTRACE and collect the corresponding ULOG file.
aduitlog
Turn on Audit Log and collect the corresponding Audit log if the issue relates to Tuxedo Domain.
ubb
Collect UBBCONFIG
dmc
Collect DMCONFIG.
trace <executable_with_option>
Collect trace from a specific program by executable_with_option.
core <core_path>
This option is used with option type crash to specify the absolute pathname of core file.
pid <process_number>
This option only can be used with option type hang to specify the process ID.

10.5 Debug Information

This topic includes the following sections:

10.5.1 Debug Information Categories

There are three problem types.

  • Server or Client Crash

    If a process crashes and generates a core or dump file, you can use diagnostic tool to get the stack trace written on the file. You can define the problem type as "Server or Client Crash" and get the corresponding information.

  • Server or Client Hang

    If a process enters an endless loop or keeps waiting in a function for a long time, you can use diagnostic tool to figure out what the process is doing. You can define the problem type as "Server or Client Hang" and get the corresponding information.

  • Program Logical Error

    For all other problems, you can define the problem type as "Program Logical Error" and get the corresponding information.

For all other problems, you can define the problem type as "Program Logical Error" and get the corresponding information.

10.5.2 Debug Information for Each Category

You can get different debug information according to different problem types.

  • Program Logical Error
    • Get general information
    • Get system call trace
  • Server or Client Crash
    • Get general information
    • Get the call stack at the moment of server or client crash
    • Get system call trace
  • Server or Client Hang
    • Get general information
    • Get the call stack and truss command output
    • Get system call trace

Note:

Please run diagnostic tool by the same owner during the running process.

The followings are general information.

  • Tuxedo release and patchlev
  • OS information and OS patch information

    Note:

    The information is not supported on Linux systems.
    Open the TMTRACE and get the corresponding ULOG file.

Note:

This action requires you to shut down those Tuxedo servers. You can choose to do it by yourselves or by the diagnostic tools, or choose not to shut down any server, letting the function to be useless.
  • Open the Audit Log for domain cases and get the corresponding Audit log

    Note:

    The action requires you to shut down GWTDOMAIN servers. You can choose to do it by yourselves or by diagnostic tools, or choose not to shut down any server, letting the function to be useless.
  • Get the BB dump
  • You can configure other configuration files, such as $TUXDIR/$APPDIR/ubbconfig and $APPDIR/dmconfig

    Note:

    The information is supposed to be confidential and you can choose not to provide it.
  • Information about all Tuxedo process:
    • Machine ID
    • Group ID
    • Server ID
    • Process ID
    • Program Name
    • Process Status
    • Process Execute Priority
    • Nice

      Note:

      The information is not supported on Windows platforms.
    • Dynamic libraries linked into this process
    • Signal actions and handlers of each process

      Note:

      The information is not supported on Solaris platforms

Under product root directory, log/<year>.<month>.<day>-<hour>.<minute>.<second> sub-directory keeps all debug information and may contain the following files:

baseInfo.txt

It is required. It contains general information.

bbdump

It is required. It is BB dump file.

patchInfo.txt

It contains OS Patch information.

Note:

It is not supported on Linux platforms.
trace-<executeBinaryName>.txt
It contains Get System Call Trace when specific commands are running.

Note:

It is not supported on Windows platforms.

UBBCONFIG

It is UBBCONFIG file, only generated when option UBB is used.

DMCONFIG

It is DMCONFIG file, only generated when option DMC is used.