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
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.
Ensure that the server is running.
Remote subcommands require a running server.
Manually recover transactions by using the recover-transactions(1) subcommand.
This example performs manual recovery of transactions on sampleserver.
asadmin recover-transactions sampleserver Transaction recovered. |
You can also view the full syntax and options of the subcommand by typing asadmin help recover-transactions at the command line.