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.