Method for determining a state associated with a transaction
View Patent ↗A computer implemented method, apparatus, and computer program product for determining a state associated with a transaction for use with a transactional processing system comprising a transaction coordinator and a plurality of grouped and inter-connected resource managers, the method comprising the steps of: in response to a communications failure between the transaction coordinator and a first resource manager causing a transaction to have an in doubt state, connecting to a second resource manager; in response to the connecting step, sending by the transaction coordinator to the second resource manager, a query requesting data associated with the in doubt transaction; obtaining at the first resource manager, by the second resource manager, a shared lock to data associated with the in doubt transaction; and in response to the obtaining step, collating, by the second resource manager, data associated with the in doubt transaction associated with the first resource manager.
1. A computer implemented method for determining a state associated with a transaction for use with a transactional processing system comprising a transaction coordinator and a plurality of grouped and inter-connected resource managers, the computer implemented method comprising
responsive to a communications failure between the transaction coordinator and a first resource manager causing a transaction to have an in-doubt state, connecting to a second resource manager;
responsive to connecting, sending by the transaction coordinator to the second resource manager, a query requesting data associated with an in-doubt transaction;
determining a size associated with a subset of a first log associated with the first resource manager, and subsequently, obtaining at the first resource manager, by the second resource manager, a shared lock to data associated with the in-doubt transaction, wherein the obtaining further comprises obtaining a shared lock to the subset; and
responsive to obtaining, collating, by the second resource manager, data associated with the in-doubt transaction associated with the first resource manager;
determining whether the size associated with the subset has changed;
responsive to determining that the size has not changed, transmitting the data associated with the in-doubt transaction associated with the first resource manager to the transaction coordinator; and
responsive to determining that the size has changed, re-obtaining a shared lock to the subset;
collating, by the second resource manager, data associated with the in-doubt transaction associated with the first resource manager; and responsively, releasing the shared lock.
2. The computer implemented method as claimed in claim 1 , further:
determining, prior to obtaining, whether the first resource manager is active.
3. The computer implemented method of claim 1 , wherein collating, by the second resource manager, data associated with the in-doubt transaction associated with the first resource manager further comprises:
reading the first log associated with the first resource manager.
4. The computer implemented method of claim 1 , further comprising:
in response to collating, by the second resource manager, data associated with the in-doubt transaction associated with the first resource manager, releasing the shared lock.
5. The computer implemented method of claim 1 , further comprising:
responsive to sending, collating, by the second resource manager, data associated with an in-doubt transaction associated with each other resource manager in the group.
6. The computer implemented method of claim 1 , further comprising:
transmitting collated data associated with one or more in-doubt transactions to the transaction coordinator.
7. The computer implemented method of claim 1 , wherein collating data, by the second resource manager, forms received collated data, further comprising:
using, by the transaction coordinator, the received collated data in order to determine a transaction resolution.
8. A computer implemented method for determining a state associated with a transaction for use with a transactional processing system comprising a transaction coordinator and a plurality of grouped and inter-connected resource managers, the computer implemented method comprising:
responsive to a communications failure between the transaction coordinator and a first resource manager causing a transaction to have an in-doubt state, connecting to a second resource manager;
responsive to connecting, sending by the transaction coordinator to the second resource manager, a query requesting data associated with an in-doubt transaction;
responsive to sending, collating, by the second resource manager, data associated with the in-doubt transaction associated with the second resource manager;
determining a size associated with a subset of a first log associated with the first resource manager, and subsequently, obtaining at the first resource manager, by the second resource manager, a shared lock to data associated with the in-doubt transaction, wherein the obtaining further comprises obtaining a shared lock to the subset; and
responsive to obtaining, collating, by the second resource manager, data associated with the in-doubt transaction associated with the first resource manager.
9. A hardware apparatus for determining a state associated with a transaction comprising a transaction coordinator and a plurality of grouped and inter-connected resource managers, the apparatus comprising:
means, responsive to a communications failure between the transaction coordinator and a first resource manager causing a transaction to have an in-doubt state, for connecting to a second resource manager;
means, responsive to the connection means, for causing the transaction coordinator to send to the second resource manager, a query requesting data associated with the in-doubt transaction;
means for determining a size associated with a subset of a first log associated with the first resource manager;
means for causing the second resource manager, subsequent to determining a size associated with a subset of a first log associated with the first resource manager, to obtain, at the first resource manager, a shared lock to data associated with the in-doubt transaction; and
means, responsive to the obtaining means, for causing the second resource manager to collate data associated with the in-doubt transaction associated with the first resource manager;
means, responsive to determining that the size has not changed for transmitting the data associated with the in-doubt transaction associated with the first resource manager to the transaction coordinator; and
means, responsive to determining that the size has changed for re-obtaining a shared lock to the subset;
means for collating, by the second resource manager, data associated with the in-doubt transaction associated with the first resource manager; and responsively, releasing the shared lock.