Subject Re: [firebird-support] Re: Client gets "I/O error for file {non-shared dir on server}\any.fdb"
Author Helen Borrie
At 02:31 PM 31/03/2005 +0200, Daniel Albuschat wrote:


>\\servername\C:\Program Files\Foo.fdb is a *local* path for FB,

No, it is a remote path for a Named Pipes client attaching to a server that
is *not* local.

>thus
>it will use the locally running firebird server to open a database
>over a network
>connection (which FB is not even aware of, because it's "hidden" by
>the filesystem).

No. A FB server cannot open a database over a network connection. The
database MUST be on physical disk space that is controlled by the same host
machine that hosts the FB server.


>But I thought you couldn't "share" you Program Files dir?

You don't share directories that contain database files.


>servername:C:\Program Files\Foo.fdb is a remote database.

Yes. The same as \\servername\C:\Program Files\Foo.fdb. The difference
between the two is that one is the remote path for a client using the
TCP/IP transport protocol, whereas the other is the remote path for a
client using the Named Pipes transport protocol. Both are absolute path
locations on a server that is remote (physically or logically) from the
connecting client.

>The FB client
>library will connect to the FB server running on the machine "servername"
>via TCP/IP, and this FB server there will open the (from the server's point
>of view) local file C:\Program Files\Foo.fdb.

That is correct, both for Named Pipes and for TCP/IP.


>Ther error description sounds more like some domain/OS user issues, though.

The error description exactly describes what happens when a client tries to
open a connection (whether local or remote) using a path that is
inconsistent with the path that was used by the first client when it
connected. The part of the path that "matters" here is the path as seen
locally by the server machine. Typically, a "good" connection uses the
correct format

C:\Program Files\Foo.fdb

while the connection that is disallowed uses

C:Program Files\Foo.fdb

(notice the missing backslash after C: -- this is allowed by Windows and
forbidden by Firebird if the database file was already opened using the
correct string.)

./heLen