Javadoc
Now check for any outstanding transactions. If we didn't fail to recover
them, then roll them back - if they'd got through prepare we would have
an entry within the object store.
Rely upon _xaRecoverers being set up properly (via properties).
We cannot just remember the XAResourceRecords we used (if any) to cache
the JDBC connection information and use that since we may never have had
any such records!
IMPORTANT: resourceInitiatedRecovery may rollback transactions which are
inflight: just because we have no entry for a transaction in the object
store does not mean it does not exist - it may be *about* to write its
intentions list. To try to reduce this probability we remember potential
rollback-ees at this scan, and wait for the next scan before actually
rolling them back.
Note we cannot use the method that works with Transactions and
TransactionalObjects, of checking with original process that created the
transaction, because we don't know which process it was.