Performing Heuristic Actions on Transactions

A number of administrative actions can be performed on XA sessions, XA transactions, and local transacted sessions.

These administrative actions are heuristic in that they are unilateral decisions that affect the outcome of transactions. Heuristic administrative actions may break the atomicity of transactions if the administrative action differs from what was chosen by the initial application requests.

You can perform the following administrative tasks on transactions:

Heuristically Committing XA Transactions

You can heuristically commit an XA transaction that has an Idle or Prepared state.

After an XA transaction is successfully committed, it is not automatically freed but will have a heuristically-committed state. A heuristically‑committed XA transaction can then be administratively deleted.

To heuristically commit an XA transaction, enter the following commands:

solace> enable
solace# admin
solace (admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# commit-xa-transaction xid <xid>

Where:

<xid> is the Xid that uniquely identifies the XA transaction. The wildcards “*” or “?” may be used.

Heuristically Rolling Back XA Transactions

You can heuristically rollback an XA transaction that has an Idle or Prepared state. After the XA transaction is successfully rolled back, it is not automatically deleted. However, you can administratively delete the XA transaction.

To heuristically rollback an XA transaction, enter the following commands:

solace> enable
solace# admin
solace (admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# rollback-xa-transaction xid <xid>

Where:

<xid> is the Xid that uniquely identifies the XA transaction. The wildcards “*” or “?” may be used.

Heuristically Deleting XA Transactions

You can heuristically delete an XA transaction that has a Heuristically Completed state (that is, it has been successfully heuristically committed or rolled back).

To heuristically delete an XA transaction, enter the following commands:

solace> enable
solace# admin
solace (admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# delete-xa-transaction xid <xid>

Where:

<xid> is the Xid that uniquely identifies the XA transaction. The wildcards “*” or “?” may be used.

Heuristically Deleting XA Sessions or Transacted Sessions

You can heuristically delete an XA Session that is identified by its name. When an XA Session is deleted, all transactions associated with the XA Session are rolled back and deleted, and the client that is connected to the XA Session is disconnected.

You can also heuristically delete a transacted session (that is, a non-XA, local transaction) that is identified by its name. When a transacted session is deleted, all transactions associated with the transacted session are rolled back and deleted, and the client that is connected to the transacted session is disconnected.

To delete an XA Session or a transacted session, enter the following commands:

solace> enable
solace# admin
solace (admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# delete-transacted-session <name>

Where:

<name> is the name of the XA session or transacted session. The wildcards “*” or “?” may be used.