On 19-7-2016 12:14, [email protected] [firebird-support] wrote: > As I read about 2 phase commits, its about 2 databases. We do not use > more than one
Not really, two-phase commits can also be applied to a single database, single connection. It just means that instead of doing an immediate commit/rollback, you first prepare the transaction (which puts it in 'limbo'), and then commit or rollback. Between the prepare and the commit/rollback you can do other things. For example when participating in a distributed transaction, you get a note from the distributed transaction manager to prepare a commit, you prepare, you then signal to the manager that you are ready to commit, and then wait for the manager to ask you to really commit (all other participating transactions prepared successfully) or rollback (one or more participating transactions failed to prepare). The most common use case is distributed transactions, but nothing prevents you from performing a 2-phase commit without participating in one. So without knowing your application etc, it is impossible to tell what might be causing transactions to go in limbo, except for the theoretical causes. So, what kind of applications do you have, in what language, does it use isc_prepare anywhere, or (for example in Java) an XADataSource? Mark -- Mark Rotteveel
