Subject Re: XAResource forget issue
Author Ludovic Orban
--- In Firebird-Java@yahoogroups.com, "Roman Rokytskyy"
<rrokytskyy@a...> wrote:
>
> > If an RM that supports 2PC heuristically completes a branch,
>
> As far as I know, we never heuristically complete a branch. Why do
you think
> that we do?
>
> Roman
>

According to the definition of heuristic, it has nothing to do with
the JDBC driver.

A heuristic decision is the fact that the resource unilaterally (ie,
not following TM orders) decided to commit or rollback an in-doubt
transaction. In pure english, somebody used some some kind of console
or maintenance tool to force the DB to commit/rollback an in-doubt
transaction.

Regarding Firebird, you can heurisically commit or rollback limbo
transactions with:

gfix -user <user> -password <pw> <database> -l -prompt

this will show you the list of limbo transaction prompting you to
force a commit/rollback or do nothing.

A TM must be aware of eventual heuristics that happened during a crash
recovery to reconciliate its transaction logs with the actual state of
the resources and decide the final outcome of the global transaction.


Do you need more details ? I'd be pleased to answer questions you may
have on the subject if I can.

Ludovic