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

rsvmqtrn -m QMgrName +- -a-b -c -f -r ?RMID Transaction


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