Subject Re: [ib-support] Limbo transaction recovery documentation?
Author Paul Reeves
Theo Bebekis wrote:
> Someone in this list responding to
> a message said that is almost distortion to
> start digging at the source code of Interbase
> in order to find some clues and in fact
> developers were using the API for decades
> without the luxury of the source code.

Yes - that was me. I was referring to the DSQL api, which is well
documented and has been widely used for years. In any case the engine
internals are so complex that following the DSQL trail would probably
only sow more confusion.

> I don't think the above is true for all the cases.
> Judging from the Services unit that comes with Delphi,
> and comparing that code to what the documentation says,
> it seems that at least the coder of that Services unit
> is very-very well informed about the internals of the
> engine by a very reliable source. It's not fair.

No - it is not fair. Neither was Borland's decision to can InterBase and
neither was (insert long list of grievances of choice here).

The services api was only introduced with InterBase 6. I would hope that
the developer of the Delphi services unit was well-informed about the
internals as there would have been no documentation available to him at
the time. But as the developer had been hired by Borland he would have
had access to the engine developers, otherwise he would not have been
able to complete his work.

Which documentation set do you have, btw? The widely available beta set
is rather unreliable when it comes to new features. I haven't seen the
official set that ships with the IB6.0 media kit, so I can't comment on
whether it is any better.

> For example, the API guide (page 215) says that
> the cluster isc_spb_tra_id shuld precede a
> limbo transaction ID passed to the service for
> resolving. Well the coder of the unit does not
> follow that instruction. What should I do?

In this instance you probably have to look at the source. The
documentation is incomplete and very few users working at the api level
will have ever tested this part of the services api against the engine.


Paul Reeves
Supporting users of Firebird and InterBase