Software AG Products 10.11 | Administering Integration Server | Using Integration Server to Manage XA Transactions | Overview of XA Transaction Management | How the Integration Server Resolves Uncompleted Transactions
 
How the Integration Server Resolves Uncompleted Transactions
If Integration Server ends abnormally while transactions are in progress, those transactions are uncompleted. When Integration Server restarts, it retrieves a list of uncompleted transactions from the XA recovery store. Based on the last status Integration Server logged for the transactions on the list, Integration Server tries to resolve each transaction, as follows:
If
Integration Server does this
The resources had begun the commit process and at least one resource had committed the transaction
Tries to get the other resources to commit
The resources had finished preparing to commit the transaction but had not begun the commit process
Tells the resources to roll back all preparations for the commit
The resources had begun the commit process but no resource had committed the transaction
Tells the resources to roll back all preparations for the commit
The resources had begun but not completed rolling back the transaction
Tells the resources to roll back all preparations for the commit
Integration Server had not yet asked the resources whether they are prepared to commit the transaction
Forgets the transaction and erases its XID from the XA recovery store
The resources had completed committing or rolling back the transaction
Forgets the transaction and erases its XID from the XA recovery store
If an error occurs while Integration Server is trying to resolve an uncompleted transaction, Integration Server waits a period of time that you specify and then tries again. Integration Server continues trying to resolve the uncompleted transaction until a maximum recovery time that you specify expires. For more information about configuring these values, see Configuring XA Server Parameters.
New XA transactions continue unimpeded during Integration Server's attempts at resolution.
Integration Server cannot resolve all uncompleted transactions. For example, Integration Server cannot resolve a transaction in these cases:
*A resource administrator forced a commit or rollback of a transaction on a resource after Integration Server ended abnormally.
*The transaction includes a 1PC (one-phase commit) resource, and Integration Server stores statuses only for transactions whose participating resources are all XA-enabled.
*Integration Server cannot connect to the resource after repeated attempts within the specified maximum recovery time (for example, because the transaction involves the webMethods Adapter for JDBC and the adapter's connection to the resource does not exist or has been changed).
In such cases, you will have to resolve the uncompleted transaction manually.