[Top] [Previous Page] [Next Page] [Bottom]



Chapter 19. Troubleshooting Applications

Other chapters of this document discuss many diagnostic tools provided by your BEA TUXEDO system: commands and log files that help you monitor a running system, identify potential problems while there is still time to prevent them, and detect error conditions once they have occurred. This chapter provides additional information to help you identify and recover from various system errors.

This chapter discusses the following topics:

Distinguishing Between Types of Failures

The first step in troubleshooting is to determine the area in which the problem has occurred. In most applications, you must consider six possible sources of trouble:

To resolve the trouble in most of these areas, you must work with the appropriate administrator. If, for example, you determine that the trouble is being caused by a networking problem, you must work with the network administrator.

Determining the Cause of an Application Failure

To detect the source of an application failure, complete the following steps.

  1. Check any BEA TUXEDO system warnings and error messages in the user log (ULOG).
  2. Select the messages you think are most likely to reflect the current problem. Note the catalog name and the message number of each of those messages and look them up in the BEA TUXEDO System Message Manual. The document entry provides:
  3. Check any application warnings and error messages in the ULOG.
  4. Check any warnings and errors generated by application servers and clients. Such messages are usually sent to the standard output and standard error files (named, by default stdout and stderr, respectively).
  5. Look for any core dumps in $APPDIR. Use a debugger such as sdb to get a stack trace. If you find core dumps, notify the application developer.
  6. Check your system activity reports (by running the sar(1) command) to determine why your system is not functioning properly. Consider the following possible reasons:

Determining the Cause of a BEA TUXEDO System Failure

To detect the source of a system failure, complete the following steps:

  1. Check any BEA TUXEDO system warnings and error messages in the user log (ULOG):
  2. Select the messages you think are most likely to reflect the current problem. Note the catalog name and message number of each of those messages and look them up in the BEA TUXEDO System Message Manual. The reference manual entry provides the following:
  3. Prepare for debugging by completing the following steps:

Broadcasting Unsolicited Messages

To send an unsolicited message, enter the following command.

broadcast (bcst) [-m machine] [-u usrname] [-c cltname] [text] 

By default, the message is sent to all clients. You have the choice, however, of limiting distribution to one of the following recipients:

The text may not include more than 80 characters. The system sends the message in a buffer of type STRING. This means that the client's unsolicited message handling function (specified by tpsetunsol(0)) must be able to handle a message of this type. The tptypes() function may be useful in this case.

Performing System File Maintenance

This section provides instructions for the following tasks that you may need to perform in the course of maintaining your file system:

Creating a Device List

Complete the following steps to create a device list.

  1. Start a tmadmin session.
  2. Enter the following command.
    crdl [-z devicename] [-b blocks]

Destroying a Device List

To destroy a device list with index devindx, enter the following command.

dsdl [-z devicename] [yes] [devindx]

Reinitializing a Device

To reinitialize a device on a device list, enter the following command.

initdl [-z devicename] [-yes] devindx

Printing the Universal Device List (UDL)

To print a UDL, enter the following command.

lidl

To specify the device from which you want to obtain the UDL, you have a choice of two methods:

Printing VTOC Information

To get information about all VTOC table entries, enter the following command.

livtoc

To specify the device from which you want to obtain the VTOC, you have a choice of two methods:

Repairing Partitioned Networks

A network partition exists if one or more machines cannot access the master machine. As the application administrator, you are responsible for detecting partitions and recovering from them. This section provides instructions for troubleshooting a partition, identifying its cause, and taking action to recover from it.

A network partition may be caused by the following:

The procedure you follow to recover from a partitioned network depends on the cause of the partition. Recovery procedures for these situations are provided in this section.

Detecting Partitioned Networks

There are several ways to detect a network partition:

Checking the ULOG

When things go wrong with the network, BEA TUXEDO system administrative servers start sending messages to the ULOG. If the ULOG is set up over a remote file system, all messages are written to the same log. In such a case you can run the tail(1) command on one file and check the failure messages displayed on the screen.

If, however, the remote file system is using the same network, the remote file system may no longer be available.

Example
151804.gumby!DBBL.28446: ... : ERROR: BBL partitioned, machine=SITE2

Gathering Information about the Network, Server, and Service

Listing 19-1 provides an example of a tmadmin session in which information is being collected about a partitioned network, and a server and a service on that network. Three tmadmin commands are run:

Restoring a Network Connection

This section provides instructions for recovering from transient and severe network failures.

Recovering from Transient Network Failures

Because the BRIDGE tries, automatically, to recover from any transient network failures and reconnects, transient network failures are usually not noticed. If, however, you do need to perform a manual recovery from a transient network failure, complete the following procedure.

  1. On the master machine, start a tmadmin(1) session.
  2. Run the reconnect command (rco), specifying the names of nonpartitioned and partitioned machines.
    rco non-partioned_node1 partioned_node2

Recovering from Severe Network Failures

Perform the following steps to recover from severe network failure.

  1. On the master machine, start a tmadmin session.
  2. Run the pclean command, specifying the name of the partitioned machine.
    pcl partioned_machine
  3. Migrate the application servers or, once the problem has been corrected, reboot the machine.

Restoring Failed Machines

The procedure you follow to restore a failed machine depends on whether that machine was the master machine.

Restoring a Failed Master Machine

To restore a failed master machine, complete the following procedure.

  1. Make sure that all IPC resources are removed for the BEA TUXEDO processes that died.
  2. Start a tmadmin session on the ACTING MASTER (SITE2):
    tmadmin
  3. Boot the BBL on the MASTER (SITE1) by entering the following command:
    boot -B SITE1

    The BBL will not boot if you have not executed pclean on SITE1.

  4. Still in tmadmin, start a DBBL running again on the master site (SITE1) by entering the following:
    MASTER
  5. If you have migrated application servers and data off the failed machine, boot them or migrate them back.

Restoring a Failed Nonmaster Machine

To restore a failed nonmaster machine, complete the following procedure.

  1. On the master machine, start a tmadmin session.
  2. Run pclean, specifying the partitioned machine on the command line.
  3. Fix the machine problem.
  4. Restore the failed machine by booting the Bulletin Board Listener (BBL) for it from the master machine.
  5. If you have migrated application servers and data off the failed machine, boot them or migrate them back.

In Listing 19-2, SITE2, a nonmaster machine, is restored.

Listing 19-2 Example of Restoring a Failed Nonmaster Machine


$ tmadmin
tmadmin - Copyright © 1987-1990 AT&T; 1991-1993 USL. All rights reserved

> pclean SITE2
Cleaning the DBBL.

Pausing 10 seconds waiting for system to stabilize.
3 SITE2 servers removed from bulletin board

> boot -B SITE2
Booting admin processes ...

Exec BBL -A :

on SITE2 -> process id=22923 ... Started.
1 process started.
> q

Replacing System Components

To replace BEA TUXEDO system components, complete the following procedure.

  1. Install the BEA TUXEDO system software that is being replaced.
  2. Shut down those parts of the application that will be affected by the changes:
  3. If relevant BEA TUXEDO system header files and static libraries have been replaced, rebuild your application clients and servers.
  4. Reboot the parts of the application that you shut down.

Replacing Application Components

To replace components of your application, complete the following procedure.

  1. Install the application software. This software may consist of application clients, application servers, and various administrative files, such as the FML field tables.
  2. Shut down the application servers being replaced.
  3. If necessary, build the new application servers.
  4. Boot the new application servers.

Cleaning Up and Restarting Servers Manually

By default, the BEA TUXEDO system cleans up resources associated with dead processes (such as queues) and restarts restartable dead servers from the Bulletin Board (BB) at regular intervals during BBL scans. You may, however, request cleaning at other times.

Cleaning Up Resources Associated with Dead Processes

To request an immediate cleanup of resources associated with dead processes, complete the following procedure.

  1. Start a tmadmin session.
  2. Enter bbclean machine.

The bbclean command takes one optional argument: the name of the machine to be cleaned.

If You Specify . . . Then . . .
No machine The resources on the default machine are cleaned.
A machine The resources on that machine are cleaned.
DBBL The resources on the Distinguished Bulletin Board Listener (DBBL) and the Bulletin Boards at all sites are cleaned.

Cleaning Up Resources

To clean up other resources, complete the following procedure.

  1. Start a tmadmin session.
  2. Enter pclean machine.

    Note: You must specify a value for machine; it is a required argument.

    If the Specified Machine Is . . . Then . . .
    Not partitioned pclean will invoke bbclean.
    Partitioned pclean will remove all entries for servers and services from all nonpartitioned Bulletin Boards.

This command is useful for restoring order to a system after partitioning has occurred unexpectedly.

Aborting or Committing Transactions

This section provides instructions for aborting and committing transactions.

Aborting a Transaction

To abort a transaction, enter the following command.

aborttrans (abort) [-yes] [-g groupname] tranindex

This command is useful when the coordinating site is partitioned or when the client terminates before calling a commit or an abort. If the timeout is large, the transaction remains in the transaction table unless it is aborted.

Committing a Transaction

To commit a transaction, enter the following command.

committrans (commit) [-yes] [-g groupname] tranindex

Cautions

Be careful about using this command. The only time you should need to run it is when both of the following conditions apply:

Also, a client may be blocked on tpcommit(), which will be timed out. If you are going to perform an administrative commit, be sure to inform this client.

Recovering from Failures When Transactions Are Used

When the application you are administering includes database transactions, you may need to apply an after-image journal (AIJ) to a restored database following a disk corruption failure. Or you may need to coordinate the timing of this recovery activity with your site's database administrator (DBA). Typically, the database management software automatically performs transaction rollback when an error occurs. When the disk containing database files has become permanently corrupt, however, you or the DBA may need to step in and perform the rollforward operation.

Assume that a disk containing portions of a database is corrupted at 3:00 P.M. on a Wednesday. For this example, assume that a shadow volume does not exist.

  1. Shut down the BEA TUXEDO application. For instructions, see Chapter 4, "Starting and Shutting Down Applications."
  2. Get the last full backup of the database and restore the file. For example, restore the full backup version of the database from last Sunday at 12:01 A.M.
  3. Apply the incremental backup files, such as the incrementals from Monday and Tuesday. For example, assume that this step restores the database up until 11:00 P.M. on Tuesday.
  4. Apply the AIJ, or transaction journal file, that contains the transactions from 11:15 P.M. on Tuesday up to 2:50 P.M. on Wednesday.
  5. Open the database again.
  6. Restart the BEA TUXEDO applications.

Refer to the documentation for the resource manager (database product) for specific instructions on the database rollforward process.



[Top] [Previous Page] [Next Page] [Bottom]