Subject Re: [ib-support] File system
Author Nataraj S Narayanan
Hi Helen

Thanks for the prompt feed back. Well, it was quite lonely here ,sitting
in the ocean of VB/Oracle/MS-Sql and other M$ freaks ,at the southern tip
of the Asian peninsula. That was before i joined this list.

Few people here have heard of a product named Interbase!

On Fri, 22 Feb 2002, Helen Borrie wrote:

> At 02:07 AM 22-02-02 +0530, Nataraj S Narayanan wrote:
>
> >I have to maintain a 110 old Local IB 4 installations on Win 98/D1/BDE
> >2.5. The medical.gdb is used in multi-user mode (2 systems) inspite of
> >being 'local
> >Interbase'. I am using host file entries for DNS resolution and gave paths
> >in the BDE as hostname:c:\data\medical.gdb.
> >
> >The local 'gurus' tell me that this is a dangerous course to take.
>
>

> If TCP/IP is going to work you need to have each client machine's IDAPI configuration properly set up. I don't know if v.2.x (which is, like Delphi 1, 16-bit) even supports TCP/IP. That said, if it does support TCP/IP, it will be ancient, about 1993-4 vintage. So, cross your fingers...
>
> 1. You need to decide on a server name. It can be anything simple, like IBSERVER.
> 2. In setting up the networking protocols on all machines, set up only TCP/IP and **remove** NetBEUI and IPX/SX. (you can put NetBEUI back later, if the customers need it for something else.)
> 3. You need to know the IP address of the network card on the server machine. If Windows98 won't give it to you, just use 192.12.13.1.
> 4. In the HOSTS file on the server and on each client, make an entry for the server:
>

Well, the situation was like this. I did setup TCP/IP and the bde was
connecting well to IBSERVER:c:\data\medical.gdb ,and the program worked
well only when program in the server machine was closed. As you said,
^^^^
from the server i connected giving c:\data\medical.gdb and in the other
machine bde alias was given IBSERVER:c:\data\medical.gdb. Simultaneos work
was impossible initially.

Later i gave the bde alias in the server machine as
IBSERVER1:c:\data\medical.gdb ,the multi-user mode was enabled somehow
(which ,i have no idea how it worked). IBSERVER1 is the hostname that was
given in the c:\windows\hosts file for the server machine!! (pointing to itself)

>
> If YES, then your best hope is that the developer who wrote your application was 100% faithful to BDE rules and accessed the database ONLY through the alias. You must test this rigorously, because one single local-only access within that application will corrupt data in a potentially unrecoverable way.
>

Well the network worked well for full 2 weeks. Perhaps it uses bde for
every task ?

> >installed networking just the other month. The system crashed after 2
> >weeks giving 'transaction' errors. There were a lots of missing from a
> >detail table inspite of the header record being intact on the master
> >table. But then the setup had'nt a UPS at that time. The file system was
> >of course vfat.
>
> The corruption probably has little or nothing to do with the power supply - which is not a reason to abandon the idea of a UPS. Although InterBase is good about recovering from a crash, the BDE is not. Every kind of abnormal termination from a BDE database application will break something. A database that is being accessed through the BDE **must** have forced (synchronous) writes set true...I think, though, that this happens automatically on Win9x because the platform doesn't support async writes...
>

What about the missing detail records ? The customer had complained about
the missing records a few days before the gdb showed a crash. I wrote a
program in delphi to get a list of mismatched number of detail records
(the invoice master table has a field byname no_of_items ,which records
the number of transaction records). I have got a lengthy list that
contains the reocrds after the date of networking.

> >Now that the cuustomer has setup a UPS 2 days back , the fellow wants me
> >to setup the networking again. But i am apprehe nsive.
>
> Data corruption is almost certainly the result of forcing multi-user use of a local
> connection through shared Windows resources. Corruption on Windows
> servers can also occur if one user connects to the server using [
> c:\data\medical.gdb ] in the string whilst another is connected using [
> c:data\medical.gdb ] or vice versa. (Note the missing backslash after
> the drive designator - Windows allows this but it is death to InterBase
> databases).

Well this particular situation can be almost ruled out. But thanks for
reminding about this.

>
> NTFS is not an option for you. It is only available on an NT server. I can't even recommend replacing the OS on the server with NT Workstation, as Delphi 1 is 16-bit, anyway, and (by my recollection) cannot address the NTFS filesystem.
>
> >The size of gdb file is
> >50 MB. Or is it the problem of DNS - should i have gone for a real DNS
> >server rather than 'hosts' file?
>
> Hmmm...does Win98 have the capability to serve DNS?

When TCP/IP and Netbeui are installed together ,DNS seems to work even
without hosts file.

> I think you are battling against the odds...if you can't get your application to network across TCP/IP then you will have to accept that it cannot be used in anything but a single-user environment.
>

Hmmmm....... i have to think hard.

> Good luck!

I will need it a lot

regards

--
Nataraj S Narayanan
Synergy Info Systems
Kochi,India-683 503
Ph:95 484 557244