Progress
Database Administration
Guide and Reference


Resolving Limbo Transactions With the Database In Use

Use PROMON to resolve limbo transactions while the database is still in use. You can only run PROMON against a database if a server is running against the database. If no server is running, or if at any point during this procedure PROMON will not run against a database, see the "Resolving Limbo Transactions With the Database Shut Down" section.

Follow these steps to resolve limbo transactions with PROMON:

  1. Determine whether one or more limbo transactions occurred against a database by starting the PROMON database monitor. Enter the following command:
  2. promon db-name 
    

    db-name

    Specifies the database you want to monitor.

    When you enter the PROMON utility, the main menu appears:

                             PROUTIL MONITOR Version 9 
                             Database: /usr/dlc/sports 
                             1.  User Control 
                             2.  Locking and Waiting Statistics 
                             3.  Block Access 
                             4.  Record Locking Table 
                             5.  Activity 
                             6.  Shared Resources 
                             7.  Database Status 
                             8.  Shut Down Database 
                             T.  Transaction Control 
                             L.  Resolve Limbo Transaction 
                             C.  Coordinator Information 
                             M.  Modify Defaults 
                             Q.  Quit 
                             Enter your selection: 
    

  3. Choose option T (Transaction Control). PROUTIL displays a screen similar to this:
  4.                          1.  Display all entries 
                             2.  Match a user number 
                             3.  Match a range of user numbers 
                             Q.  Return to main menu 
                             Enter your selection: 
    

  5. Choose option 1 (Display all entries). PROUTIL displays a screen similar to this:
  6. NOTE: If you run PROMON against a database where no limbo transaction has occurred, PROMON does not display any field information on the Transaction Control screen.

    Take note of any limbo transactions. For example:

    A transaction is in limbo if yes is displayed in the Limbo field. For each limbo transaction, write down the following information:

    • The user number, shown in the Usr field
    • The name of the coordinator database, shown in the Coord field
    • The transaction number of the transaction in the coordinator database, shown in the Crd-task field
    • You need this information to resolve the limbo transaction.

      To resolve limbo transactions, you must consult the coordinator database of each transaction to see if the coordinator committed the transaction. If the coordinator database committed the transaction, you must also commit the transaction on the database where the limbo transaction occurred. If the coordinator did not commit the transaction, you must terminate the transaction on the database where the limbo transaction occurred.

  7. For each limbo transaction, run PROMON against the coordinator database to determine whether the coordinator committed the transaction.
  8. From the PROMON main menu, choose option C (Coordinator Information). PROUTIL displays a screen similar to this:
  9.      PROUTIL MONITOR Version 9 
              Database: /users/sports1 
              Q. Quit 
         Enter the transaction number you want to find out if committed: 
    

    NOTE: If the coordinator database is shut down and you cannot run PROMON against it, you must use the 2PHASE COMMIT qualifier of PROUTIL to determine whether it committed the transaction. For more information, see the "Resolving Limbo Transactions With the Database Shut Down" section.

  10. Enter the transaction number that you recorded from the Crd-task field in Step 3, and press RETURN. PROUTIL displays a message that tells you whether the transaction committed.
  11. NOTE: To commit transactions on a database that is shut down, you must use the 2PHASE RECOVER qualifier of PROUTIL. For more information, see the "Resolving Limbo Transactions With the Database Shut Down" section.

  12. Run PROMON against the database where the limbo transaction occurred to commit or abort each limbo transaction.
  13. From the PROMON main menu, choose option L (Resolve Limbo Transactions). This menu appears:
  14.                     1  Abort a Limbo Transaction 
                        2  Commit a Limbo Transaction 
                        Q  Quit 
                 Enter choice> 
    

  15. To commit the transaction, choose 2 (Commit a Limbo Transaction). PROUTIL prompts you to enter the user number you recorded in Step 3, then press RETURN. PROUTIL displays a message similar to this:
  16. User 1: commit transaction and disconnect. 
    

    To abort the transaction, choose 1 (Abort a Limbo Transaction). PROUTIL prompts you to enter the user number of the transaction you want to abort. Enter the user number, then press RETURN.

Repeat Steps 4 through 9 for all the limbo transactions. After you commit or abort all of the limbo transactions, they are resolved.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095