Subject Disappointed in Interbase (long)
Author Louis van Alphen
Before I step onto my soapbox, let me say that I am an IB die-hard. I have
been using IB since 4.2 and Delphi 2. I have found the tools a bit lacking,
but apart from that, the ease of use with which you can manipulate ans
scale DBs make IB the first choice for me. I have used IB in desktop as
well as large C/S installations.



We have encountered huge problems with using IB in our current project. So
much so that we are considering using something else. What, I don't know
yet. The problems we have encountered are of such a nature that it could
potentially kill a project. If we are going about using IB incorrectly, I
would like to know, and we will mend our ways, but the behaviour that we
have encountered is unacceptable to me. I expect a RDBMS to survive under
these conditions.

Let me paint the picture....

We are using IB5.6. We have a large production system running a
world-leading production facility in South Africa. The customer is the
largest producer of ostrich skins in the world. Our system (on IB) runs
their entire production system. The system pushes probably about 100,000
transactions through the DB per day. up to now, the system has been running
'maintenance-free' for 5 years, bar the few hiccups now and then. Purely
based on this track record, IB has excelled! I developed the current system
largely on my own. I was the only one making DB updates.

Our current project is expanding the system to include ordering, sales,
invoicing, etc. We decided to stick to IB5.6 for now as it is certified,
and it will not require a migration to a new version of IB.

The new project involves a team of 10 developers each developing their part
of the system. Each developer is using IBExpert to do the necessary
metadata changes. These changes include table creation, adding/dropping
columns altering SPs and triggers, etc. In short, we are hammering the DB
with metadata changes. Unfortunately, it seems that IB does not like
this... The typical problems we have encountered include:

- Getting the 'Object in use' message. Then everybody has to log off and we
have to do a backup & restore cycle to be able to use the
index/table/SP/whatever again

- Triggers not firing. Goodness knows why not.

- SP not running correctly. We have had the following problem that really
boggles the mind. We have also repeated this to make sure we are not making
stupid mistakes. We compile a SP sucessfully. If we run it, the old version
still runs. No matter how often we recompile the SP, it still runs a
previous version. Then we all log off, do a Backup & Restore (B&R) and
viola! the problem disappears and the correct version of the SP runs. We
change the SP & compile and same problem happens. And this on the restored
DB! We had to resort to B&R after each SP update & compile session. I can
assure you that this is no fun..!

- Triggers same as SPs.

- Abnormal server terminations

We had to install our new system last week. We had 3 developers on site
making last minute changes. The same problems happened, even with one
person doing metadata changes and continually doing B&Rs. It seems as if
the DB is pretty trashed.... This causes so many problems for us as it
almost made debugging a futile exercise. You never knew what you where
going to get! You can imagine how this can kill a project....

I have to admit that we initially made the connection string mistake, but
we resolved that and did a B&R. We also did copy the DB all over the place
on our network. The machines we are using are Win98SE, NT4 SP6 and Win2K
Beta. If this is part of the problem, I will admit guilt. But why do the
problems prevail even after a B&R and the DB staying on the server?

I would like to know whether we are doing this incorrectly. For our new
project, a completely different one, also IB5.6, we are assigning one
person to do all metadata changes. This is not great, due to obvious
reasons, but we feel safer with this approach.

If anybody can shed some light on why we are having these problems, or how
to go about things correctly, I would appreciate any suggestions. If we can
solve these problems, I'd be more than happy to stay with IB. If we can't,
then I would have to move to a more robust platform for our 'serious' &
business critical applications.



[Non-text portions of this message have been removed]