Subject Re: [IBO] Firebird 1.0 - RC1 & IBO
Author Helen Borrie
At 07:54 PM 18-11-01 +0100, Helmut Steinberger wrote:
>"Am Sun, 18 Nov 2001 13:36:21 +0000 (UTC), schrieb rpsb@...
>
> >When I try to execute, I have the error "Invalid Handle"
>
>I just installed firebird and I have the same problem.
>
> >I just want to know if IBO are compatible with FireBird 1.0, and
> >what I must do to solve this problem!
>
>I have the same question. Could anybody help us?
>Must I deinstall firebird and reinstall interbase 6.0?

It seems "invalid file handle" is one of the errors that now occurs (in the RC 1 build only) when you try to make two connections to a database using two different Windows path formats. Once one connection has been made, all connections thereafter have to be in the same path format.

The change was done by Mike Nordell to fix the "path string bug" that corrupts databases. The database file is now opened exclusively as "the file that the first connection opened."

Here is the bug fix entry from the release notes (unfortunately omitted from the currently downloadable version:

SFID 213462.- The 'Path String Bug' on Windows was fixed.
InterBase had a nasty bug which was identifed in IB 5 and ignored in the IB 6 Beta. It corrupts databases in a particularly horrible way.

The correct path in a connection string to a Windows server is

C:\patha\mydatabase.gdb

However, Windows will allow

C:patha\mydatabase.gdb

If two users connect, one using the first syntax and the other using the second, the server gets the wrong messages from Windows and the server thinks the two users are connecting to two different databases. The users' transactions are unaware of one another's work and data become deeply corrupted as a result.

With the fix, the first user's connection establishes an exclusive access lock on the database file, according to the path string through which she connected. Any other user attempting to connect with the alternative path string will see this error:

I/O error for file "C:patha\mydatabase.gdb"
Error while trying to open file
The process cannot access the file because it is being
used by another process. )
-----------------------------
What I think would be useful, would be for those who encounter this problem to provide as much information as possible about the tools they used, and the path strings, so that I can place some sample code in the notes to indicate where people need to tighten things up. At present we are just not getting enough information from people who encounter the problem.

At present, the immediate solution seems to be to restore your database using RC 1 gbak, from a backup that you did with your previous release of gbak (ib 6 or a lower Firebird, as the case may be).

regards,
Helen
All for Open and Open for All
InterBase Developer Initiative ยท http://www.interbase2000.org
_______________________________________________________