Sun GlassFish Enterprise Server v3 Administration Guide

Recovering Transactions

There are some situations where the commit or rollback operations might be interrupted, typically because the server crashed or a resource manager crashed. Crash situations can leave some transactions stranded between steps. Enterprise Server is designed to recover from these failures and complete the transactions upon server startup. If the failed transaction spans multiple servers, the server that started the transaction can contact the other servers to get the outcome of the transaction. If the other servers are unreachable, the transaction uses heuristic decision information to determine the outcome. The transactions are resolved upon server startup.

In a failure situation that is not a crash, you can perform manual recovery as described in the following procedure

ProcedureTo Manually Recover Transactions

Use the recover-transactions subcommand in remote mode to manually recover transactions that were pending when a resource on the server failed. Manual transaction recovery cannot be used to recover transactions after a server crash. Manual operations are intended for the cases when a resource fails unexpectedly, but the server is still running. If the server crashes, only the full startup recovery process can recover transactions that are in doubt.

  1. Ensure that the server is running.

    Remote subcommands require a running server.

  2. Manually recover transactions by using the recover-transactions(1) subcommand.

Example 21–4 Manually Recovering Transactions

This example performs manual recovery of transactions on sampleserver.

asadmin recover-transactions sampleserver
Transaction recovered.

See Also

You can also view the full syntax and options of the subcommand by typing asadmin help recover-transactions at the command line.