Subject Re: [IBO] Record In Limbo ... what's it mean?
Author olgreyfox15
--- In IBObjects@yahoogroups.com, "Jason Wharton" <supportlist@...> wrote:
>
> > This problem cropped up with a user DB. We're running Firebird 2.1,
> > with an application written in Delphi, using IBObjects as the interface.
> >
> > A table in the user's database (it's a temp table that we empty and
> > fill at program startup) began throwing an error with the following:
> >
> > ISC_ERROR_CODE: 335544459
> > ISC_ERROR_MESSAGE: "record from transaction 690824 is stuck in limbo".
> >
> > To try to figure things out, I went into Database Workbench, and got
> > the same error message (same transaction # also) any time I tried to
> > view the data or run an SQL against the table. I was finally able to
> > clear things by dropping and re-creating the table.
> >
> > NOW ... my REAL question ... if this happens again, is there any
> > facility, either within the Firebird native tools, or in DB Workbench,
> > that I can use to clear the hung record and restore a table to
> > functionality? Preferably without loss of other data...???
>
> I have not encountered this kind of problem before.
> You probably should seek for help on the Firebird support forums.
>
> Let us know what you figure out.
>
> Thanks,
> Jason Wharton
>
********************
Jason,
You might want to check out Helen Borrie's reply to me (the one
previous, dtd 3/3). I think she nailed the possible root cause --
loss of connection during a cross-db transaction. I was using an IBO
Datapump to mass-transfer data from our CONSTITUENT.FDB to
AUCTIONTRACKER.FDB.

Per Helen's recommendation, I used Firebird's GFIX utility from the
command line to commit the limbo record(s) and get the DB functioning
again. This is a bit tedious, as the busted transaction actually
leaves limbo records on both sides; it takes a couple of steps from
the command line to fix ... which means if it happens to a user, I
have to get a backup of the user's data files, work my magic to clear
the limbo records, then send the files back to the user. Not exactly
a happy path.

So ... I'm wondering if there's anything I can do with an IBO object
from Delphi to do what GFIX does??? I'm a bit out of my element, here.

Thanks

Lane Campbell
a/k/a olgreyfox15@...
or olgreyfox@...