rsvmqtrn (resolve transactions)
Resolve in-doubt and heuristically completed transactions
Purpose
The rsvmqtrn command is used to resolve two different transaction states.
- in-doubt transactions
- Use the rsvmqtrn command to commit or back out internally or externally coordinated in-doubt transactions. Note: Use this command only when we are certain that transactions cannot be resolved by the normal protocols. Issuing this command might result in the loss of transactional integrity between resource managers for a distributed transaction.
- heuristically completed transactions
- Use the rsvmqtrn command with the -f parameter for IBM MQ to remove all information about externally coordinated transactions that were previously resolved manually using the rsvmqtrn command, but the resolution has not been acknowledged by the transaction coordinator using the xa-forget command. Transactions that are manually resolved by a resource manager and unacknowledged by the transaction manager, are known as heuristically completed transactions by X/Open. Note: Only use the -f option if the external transaction coordinator is permanently unavailable. The queue manager, as a resource manager, remembers the transactions that are committed or backed out manually by the rsvmqtrn command.
Syntax
Required parameters
- -m QMgrName
- The name of the queue manager.
Attention: The following parameters are mutually exclusive. We must supply the -a parameter on its own, or one of the other parameters together with its transaction number.
Optional parameters
- -a
- The queue manager resolves all internally coordinated, in-doubt transactions (that is, all global units of work).
- -b
- Backs out the named transaction. This flag is valid for externally coordinated transactions (that is, for external units of work) only.
- -c
- Commits the named transaction. This flag is valid for externally coordinated transactions (that is, external units of work) only.
- -f
- Forgets the named heuristically completed transaction. This flag is valid only for externally coordinated transactions (that is, external units of work) that are resolved, but unacknowledged by the transaction coordinator. Note: Use only if the external transaction coordinator is never going to be able to acknowledge the heuristically completed transaction. For example, if the transaction coordinator has been deleted.
- -r RMID
- The participation of the resource manager in the in-doubt transaction can be ignored. This flag is valid for internally coordinated transactions only, and for resource managers that have had their resource manager configuration entries removed from the queue manager configuration information. Note: The queue manager does not call the resource manager. Instead, it marks the participation of the resource manager in the transaction as being complete.
- Transaction
- The transaction number of the transaction being committed or backed out. Use the dspmqtrn command to find the relevant transaction number. This parameter is required with the -b, -c, -f, and -r RMID parameters and must be the last parameter when used.
Return codes
Return code | Description |
---|---|
0 | Successful operation |
26 | Queue manager running as a standby instance. |
32 | Transactions could not be resolved |
34 | Resource manager not recognized |
35 | Resource manager not permanently unavailable |
36 | Invalid arguments supplied |
40 | Queue manager not available |
49 | Queue manager stopping |
58 | Inconsistent use of installations detected |
69 | Storage not available |
71 | Unexpected error |
72 | Queue manager name error |
85 | Transactions not known |
Related commands
Command | Description |
---|---|
dspmqtrn | Display list of prepared transactions |