What are they?

Expired in-doubt transactions are transactions imported by an incoming call from a remote client, and left in the middle of committing. The final outcome (commit or rollback) needs to come from the remote party and has not yet arrived.

Expired in-doubt transactions happen if:

  • you are doing transactions over remoting AND
  • the transaction outcome of an incoming transactional call cannot be determined (because the remote URL where we check is no longer available or unreachable for too long)

What to do?

With the logcloud, expired in-doubt transactions are handled / retried periodically so normally there is no need to do anything. However, in some cases the situation can be long-lasting (like if the remote application has been closed down for business). You probably don't want that because the database locks for this transaction will still be kept until the in-doubt is resolved.

In that case: contact the remote team and ask them to check the outcome in their transaction logs. Then, update your LogCloud DB tables like this:

If the remote team has outcome COMMITTING

UPDATE COORDINATOR SET STATE = 'COMMITTING' WHERE ID = ...

Otherwise

DELETE FROM COORDINATOR WHERE ID = ...

Heuristics

Alternatively, if the remote team is no longer available or you don't care, feel free to choose either of the above two actions. This is called a 'heuristic' decision on your behalf, and the resulting outcome in your system may not be compatible with what the remote party expected (and they may never find out). So use this at your discretion but beware of the possible consequences. It's probably best to document this kind of decision for archival purposes.

For customers only. Want to try?

Free Trial

Contact Us

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

E info@atomikos.com
E sales@atomikos.com
T +3215613055

Subscribe to our newsletter

Never miss an update

Copyright 2020 Atomikos BVBA | Our Privacy Policy
This website is using cookies. More info. That's Fine