Try OpenEdge Now
skip to main content
Database Administration
Protecting Your Data : Distributed Transaction Processing : Two-phase commit with ABL clients : Limbo transactions with two-phase commit
 
Limbo transactions with two-phase commit
A limbo transaction occurs when the synchronization between the coordinator database and other two-phase database(s) involved in a distributed transaction is interrupted. If the coordinator database commits or rolls back a transaction, and the other database do not complete their commit or roll back of the transaction, the transaction is in limbo. When a limbo transaction occurs, PROUTIL writes information about the failed transactions to the log (.lg) file and displays one of the following messages:
Part of the distributed transaction might have failed.(2022)
Cannot roll back a limbo transaction.(2030)
The following figure illustrates where messages are displayed.
Figure 28. How PROUTIL processes react to limbo transactions
Limbo transactions can occur without any messages being displayed on screen; for example, if a hardware or software failure occurs while a user is running a PROUTIL application or if a user powers off a client machine. If possible, users on client machines should inform the system administrator when these events occur. If such an event occurs, examine all of the databases that might be involved to determine whether any limbo transactions occurred. You can use PROMON or PROUTIL to examine a database for limbo transactions.
Caution: If an application is performing a distributed transaction when a client machine fails or shuts down, the transaction remains open. If this continues unchecked, the BI files of the databases involved in the transaction could grow to fill the disk, as with any other long-running transaction.