Subject RE: [Firebird-Architect] Re: Is Firebird XA compliant?
Author Jim Starkey
At 12:33 PM 3/17/03 -0500, Leyne, Sean (Ext. 225) wrote:

>I thought that limbo transactions were only created as a result of a
>'failure' in a multi-database operation, I was not aware that they could
>be created/enabled by standard db connections.

Nope. The transaction info call can be used to request a transaction id
(or a vector of transaction ids for a multi-database transaction). The
transaction ids can be used to attempt to reconnect to the respective
transactions provided they are still in limbo (limbo is persistent across
server restarts).

If I remember correctly, when I did the trial implementation for MSDTC I
beefed up the implementation with transaction parameter option to mark
the transaction as MSDTC controlled, causing it to log more information
about the limbo transaction (such as database connect strings) to allow
reconnection and resolution within minimal context. It's been a while,
but I think the whole implementation took the better part of an afternoon.

At the time I did the investigation MSDTC was substantially more mature
the XA, which was incomplete and apparently orphaned by its parents.
Obviously this has changed, but I haven't tracked it for a variety of reasons.