Subject Re: [Firebird-Architect] Re: Is Firebird XA compliant?
Author Paul Beach
> > Ah. The firebird two-phase commit was implemented some time before
> > XA was designed. Jim looked at it a long time ago for Borland
> > and decided that there was some piece of state missing for XA,
> > but that it would be possible to implement the MicroSoft
> > alternative.
>
> That's what I supsected. My conclusion is that although Firebird has
> a 2PC protocol, it is not XA-compliant. I'm a bit worried now about
> the JayBird initiative, because they claim to provide XA semantics
> whereas Jim (or was it Paul?) concluded that this is not possible
> without adding some XA specific logic to the Firebird database engine.

Jim in conjunction with R&D at the time. Although Ann and my memories are
a little hazy on this (I don't still have the original e-mail thread unfortunately).
The main issue investigated was MTS support, with possible XA support for
the various other TP monitors. MTS support being a main priority.

I think that MTS was viable, but XA was more problematic, and neither
option was properly followed up. ISC being subsumed back into Borland
and our R&D budget was not as independent as it used it to be and people
involved left or got pushed elsewhere.

> I'm not claiming to be an expert on this matter, but I in my opinion,
> if you want to provide an XA compliant JDBC driver, you should:
>
> 1. Add the extra logic to the Firebird database engine required to
> make the database XA compliant.
>
> 2. Create a native XA switch that can be plugged into an XA compliant
> transaction manager, such as Tuxedo, and test if it is working.
>
> 3. Update the Firebird communication protocol so that it has verbs
> for all XA verbs specified by the X/Open XA specification (xa_open(),
> xa_close(), xa_start(), xa_end(), xa_prepare(), etc).
>
> 4. Implement the XA compliant JDBC driver. This should be really easy
> because you can simply map all XAResource methods to the XA verbs
> that are already there.

I believe you are corect in your thinking, but I would be interested in Jim's comments.
I would be also interested in hearing from the JayBird developers to see what approach they
are taking re. XA and how what they are doing solves the problem.

<<Any plans in this direction?>>

Not that I am aware of. Its a question of demand. If somebody wants it badly enough
they will either roll their sleeves up and write the code, or pay for the development work.


Paul Beach
Main Tel (UK):+44 (0) 1844 354465
Mobile: (UK): +44 (0) 7764 188603